orthorings 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +1 -3
- data/VERSION +1 -1
- data/app/controllers/orthor_content_controller.rb +2 -0
- data/lib/orthor/category.rb +4 -0
- data/lib/orthor/object.rb +4 -0
- data/lib/orthor/page.rb +4 -0
- data/lib/orthor/static_page.rb +5 -1
- data/lib/orthor_helper.rb +4 -0
- data/lib/orthorings.rb +8 -5
- data/lib/sinatra/orthor.rb +3 -1
- data/orthorings.gemspec +2 -2
- data/spec/orthor/templates_spec.rb +9 -2
- data/spec/resources/homepage.json +1 -1
- data/spec/resources/latest-news-items.json +1 -1
- data/spec/resources/news.json +1 -1
- metadata +3 -3
data/README.markdown
CHANGED
@@ -9,8 +9,6 @@ The 2 main things you can do with Orthorings are:
|
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
12
|
-
As a gem
|
13
|
-
|
14
12
|
gem install orthorings
|
15
13
|
|
16
14
|
## Configuration
|
@@ -125,7 +123,7 @@ Other attributes that will be present on a per item specific basis are the names
|
|
125
123
|
{{Markdown body}}
|
126
124
|
|
127
125
|
|
128
|
-
## Example Usage
|
126
|
+
## Example Usage
|
129
127
|
|
130
128
|
In all the methods below, if you don't provide a template name, you will get the parsed JSON array/hash back.
|
131
129
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
@@ -5,6 +5,7 @@ class OrthorContentController < ApplicationController
|
|
5
5
|
if params[:id]
|
6
6
|
resource = Orthor::Site.find_resource_by_page_path(request.request_uri, params[:id])
|
7
7
|
@orthor_content = Orthorings.content(params[:id], (resource.page_template || resource.template))
|
8
|
+
@orthor_page_title = Orthorings.content(id)["Title"]
|
8
9
|
else
|
9
10
|
resource = Orthor::Site.find_resource_by_path(request.request_uri)
|
10
11
|
@orthor_content = resource.content
|
@@ -17,6 +18,7 @@ class OrthorContentController < ApplicationController
|
|
17
18
|
@meta_keywords = resource.keywords
|
18
19
|
@meta_description = resource.description
|
19
20
|
@orthor_feeds = resource.respond_to?(:feeds) ? resource.feeds : []
|
21
|
+
@orthor_page_title ||= resource.title
|
20
22
|
|
21
23
|
render :action => (resource.view || "orthor_content"), :layout => Orthor::Site.layout.to_s
|
22
24
|
end
|
data/lib/orthor/category.rb
CHANGED
data/lib/orthor/object.rb
CHANGED
data/lib/orthor/page.rb
CHANGED
data/lib/orthor/static_page.rb
CHANGED
@@ -4,7 +4,7 @@ module Orthor
|
|
4
4
|
include Orthor::MetaData
|
5
5
|
|
6
6
|
attr_accessor :path
|
7
|
-
dsl_accessor :view, :controller
|
7
|
+
dsl_accessor :view, :name, :controller
|
8
8
|
|
9
9
|
def initialize(path, options = {})
|
10
10
|
@path = path
|
@@ -13,6 +13,10 @@ module Orthor
|
|
13
13
|
options.each { |key, val| send(key, val) }
|
14
14
|
end
|
15
15
|
|
16
|
+
def title
|
17
|
+
name
|
18
|
+
end
|
19
|
+
|
16
20
|
def path_name
|
17
21
|
@path.gsub("/", " ").strip.gsub(/[^a-z0-9]+/i, '_')
|
18
22
|
end
|
data/lib/orthor_helper.rb
CHANGED
data/lib/orthorings.rb
CHANGED
@@ -107,13 +107,17 @@ class Orthorings
|
|
107
107
|
end
|
108
108
|
json.collect do |c|
|
109
109
|
c.inject(template) do |html, (key, val)|
|
110
|
-
|
111
|
-
if html.include?("{{#{key}.blurb}}")
|
110
|
+
if val.is_a?(String) && html.include?("{{#{key}.blurb}}")
|
112
111
|
val = "#{val.to_s.gsub(/<\/?[^>]*>/, "")[0..150]}..."
|
113
112
|
key = "#{key}.blurb"
|
114
|
-
end
|
115
113
|
|
116
|
-
|
114
|
+
html = html.gsub("{{#{key}}}", val.to_s)
|
115
|
+
elsif val.is_a?(Hash) && html.include?("{{#{key}.")
|
116
|
+
# we've got something like Author.Email
|
117
|
+
html = val.inject(html) { |h, (k, v)| h = h.gsub("{{#{key}.#{k}}}", v) }
|
118
|
+
else
|
119
|
+
html = html.gsub("{{#{key}}}", val.to_s)
|
120
|
+
end
|
117
121
|
end
|
118
122
|
end.join("")
|
119
123
|
rescue => e
|
@@ -123,4 +127,3 @@ class Orthorings
|
|
123
127
|
end
|
124
128
|
end
|
125
129
|
|
126
|
-
|
data/lib/sinatra/orthor.rb
CHANGED
@@ -9,6 +9,7 @@ module Sinatra
|
|
9
9
|
@meta_keywords = resource.keywords
|
10
10
|
@meta_description = resource.description
|
11
11
|
@orthor_feeds = resource.respond_to?(:feeds) ? resource.feeds : []
|
12
|
+
@orthor_page_title = resource.title
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
@@ -20,8 +21,9 @@ module Sinatra
|
|
20
21
|
::Orthor::Site.resources.each do |resource|
|
21
22
|
if resource.is_a?(::Orthor::Category) && !resource.page_path.nil?
|
22
23
|
get resource.page_path do |id|
|
23
|
-
@orthor_content = orthor_content(id, (resource.page_template || resource.template))
|
24
24
|
handle_request(resource)
|
25
|
+
@orthor_content = orthor_content(id, (resource.page_template || resource.template))
|
26
|
+
@orthor_page_title = orthor_content(id)["Title"]
|
25
27
|
erb (resource.view || "orthor_content").to_sym, { :layout => ::Orthor::Site.layout }
|
26
28
|
end
|
27
29
|
end
|
data/orthorings.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{orthorings}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Anthony Langhorne"]
|
12
|
-
s.date = %q{2010-06-
|
12
|
+
s.date = %q{2010-06-09}
|
13
13
|
s.email = %q{anthony@orthor.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -25,9 +25,16 @@ describe Orthor::Templates do
|
|
25
25
|
describe "should use custom {{}} replacement for rendering" do
|
26
26
|
before(:all) do
|
27
27
|
Orthor::Templates.define do
|
28
|
-
template :basic, %!<h2>{{
|
29
|
-
template :brief, %!<h2>{{
|
28
|
+
template :basic, %!<h2>{{Title}}</h2><div class="content">{{Content}}</div>!
|
29
|
+
template :brief, %!<h2>{{Title}}</h2>!
|
30
30
|
template :blurb, %!<div>{{Content.blurb}}</div>!
|
31
|
+
template :user, %!<div>{{Creator.Email}}</div><div>{{Creator.First name}} {{Creator.Last name}}</div>!
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "users" do
|
36
|
+
it "should replace user.email" do
|
37
|
+
Orthorings.content("homepage", :user).should == "<div>demo@orthor.com</div><div>Bob Demo</div>"
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
@@ -1 +1 @@
|
|
1
|
-
{"type":"content","public_id":"what-is-orthor","category":{"public_id":"content-pages","link":"http://content.orthor.com/orthor-demo/categories/content-pages.json","
|
1
|
+
{"type":"content","public_id":"what-is-orthor","category":{"public_id":"content-pages","link":"http://content.orthor.com/orthor-demo/categories/content-pages.json","Title":"Content Pages"},"Content":"<h2>So what is Orthor really??</h2>","template":"Text Block","created_at":"April 06, 2010","Updater":{"email":"demo@orthor.com","firstname":"Bob","lastname":"Demo"},"updated_at":"April 26, 2010","Creator":{"Email":"demo@orthor.com","First name":"Bob","Last name":"Demo"},"Title":"What is Orthor"}
|
@@ -1 +1 @@
|
|
1
|
-
[{"type":"content","public_id":"user-manual-updated","Content":"The User Manual has recently had a big overhaul with increased documentation for lots of Orthor's great features, including Content Queries, RSS Feeds, Custom CSS and more!","url":"http://www.orthor.com/manual","created_at":"April 06, 2010","template":"Brief News Item","
|
1
|
+
[{"type":"content","public_id":"user-manual-updated","Content":"The User Manual has recently had a big overhaul with increased documentation for lots of Orthor's great features, including Content Queries, RSS Feeds, Custom CSS and more!","url":"http://www.orthor.com/manual","created_at":"April 06, 2010","template":"Brief News Item","Title":"User Manual updated","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}},{"type":"content","public_id":"account-event-tracking","Content":"All accounts now have access to event tracking, use this to gain a snapshot of what everyone in your account has been doing, for example, what were the latest items to get published, edited, created etc. Login to check it out.","url":"http://www.orthor.com/login","created_at":"April 06, 2010","template":"Brief News Item","Title":"Account event tracking","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}},{"type":"content","public_id":"tutorials-have-been-updated","Content":"We've recently made the tutorials section of the site public, stay tuned for some more language examples + increased detail of the existing languages. ","url":"http://www.orthor.com/tutorials","created_at":"April 06, 2010","template":"Brief News Item","Title":"Tutorials have been updated","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}}]
|
data/spec/resources/news.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"type":"category","public_id":"news","children":[{"public_id":"media-releases","link":"http://content.orthor.com/orthor-demo/categories/media-releases.json","
|
1
|
+
{"type":"category","public_id":"news","children":[{"public_id":"media-releases","link":"http://content.orthor.com/orthor-demo/categories/media-releases.json","Title":"Media Releases"},{"public_id":"quarterly-results","link":"http://content.orthor.com/orthor-demo/categories/quarterly-results.json","Title":"Quarterly Results"}],"link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News","content":[{"type":"content","public_id":"user-manual-updated","Content":"The User Manual has recently had a big overhaul with increased documentation for lots of Orthor's great features, including Content Queries, RSS Feeds, Custom CSS and more!","url":"http://www.orthor.com/manual","created_at":"April 06, 2010","template":"Brief News Item","Title":"User Manual updated","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}},{"type":"content","public_id":"account-event-tracking","Content":"All accounts now have access to event tracking, use this to gain a snapshot of what everyone in your account has been doing, for example, what were the latest items to get published, edited, created etc. Login to check it out.","url":"http://www.orthor.com/login","created_at":"April 06, 2010","template":"Brief News Item","Title":"Account event tracking","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}},{"type":"content","public_id":"tutorials-have-been-updated","Content":"We've recently made the tutorials section of the site public, stay tuned for some more language examples + increased detail of the existing languages. ","url":"http://www.orthor.com/tutorials","created_at":"April 06, 2010","template":"Brief News Item","Title":"Tutorials have been updated","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}},{"type":"content","public_id":"content-queries-have-landed-in-orthor","Content":"Content Queries are a powerful way to query all of your content at once. Some examples uses of content queries: Latest news items, Products on Sale or Featured Media releases.\r\n","url":"http://www.orthor.com/manual/content_queries","created_at":"April 04, 2010","template":"Brief News Item","Title":"Content Queries have landed in Orthor","category":{"public_id":"news","link":"http://content.orthor.com/orthor-demo/categories/news.json","Title":"News"},"updater":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"},"updated_at":"April 06, 2010","author":{"firstname":"demo","lastname":"demo","email":"demo@orthor.com"}}]}
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 1
|
9
|
+
version: 0.4.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Anthony Langhorne
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-09 00:00:00 +10:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|