orthorings 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|