siterest 0.1.0.pre6 → 0.1.0.pre8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +11 -3
- data/Gemfile.lock +46 -17
- data/Rakefile +3 -2
- data/VERSION +1 -1
- data/data/articles/2008-04-24-my-first-blog-post.md +15 -0
- data/data/pages/about-us.md +12 -0
- data/data/pages/contact.md +12 -0
- data/data/pages/home.md +14 -0
- data/data/site.yaml +2 -0
- data/lib/siterest.rb +7 -4
- data/lib/siterest/client.rb +77 -2
- data/lib/siterest/command.rb +86 -1
- data/lib/siterest/page.rb +6 -0
- data/lib/siterest/server.rb +7 -11
- data/lib/siterest/template/filters/core_filters.rb +4 -1
- data/lib/siterest/template/filters/url_filters.rb +6 -7
- data/lib/siterest/template/objects/article.rb +7 -1
- data/lib/siterest/template/objects/page.rb +13 -1
- data/lib/siterest/template/objects/tag.rb +7 -0
- data/lib/siterest/template/paginate.rb +33 -0
- data/lib/upfile.rb +3 -3
- data/siterest.gemspec +98 -56
- data/spec/siterest/page_spec.rb +16 -0
- data/spec/spec_helper.rb +3 -0
- metadata +138 -44
- data/site/data/pages/about-us/something.md +0 -0
data/Gemfile
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
|
+
|
2
3
|
gem 'h2o'
|
3
|
-
gem 'activeresource', '~> 3.0.0
|
4
|
+
gem 'activeresource', '~> 3.0.0'
|
4
5
|
gem 'launchy'
|
5
6
|
gem 'sinatra'
|
6
7
|
gem 'mime-types', :require => 'mime/types'
|
7
8
|
gem 'rest-client'
|
8
9
|
gem 'rdiscount'
|
9
|
-
|
10
|
+
gem 'rspec'
|
11
|
+
|
12
|
+
gem 'will_paginate', '>= 3.0.pre2'
|
13
|
+
# gem 'encoded_attachment', :git => 'http://github.com/nragaz/encoded_attachment.git'
|
14
|
+
|
15
|
+
group :test do
|
16
|
+
gem 'ruby-debug19', :require => 'ruby-debug'
|
17
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,38 +1,67 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activemodel (3.0.
|
5
|
-
activesupport (= 3.0.
|
4
|
+
activemodel (3.0.5)
|
5
|
+
activesupport (= 3.0.5)
|
6
6
|
builder (~> 2.1.2)
|
7
|
-
i18n (~> 0.4
|
8
|
-
activeresource (3.0.
|
9
|
-
activemodel (= 3.0.
|
10
|
-
activesupport (= 3.0.
|
11
|
-
activesupport (3.0.
|
7
|
+
i18n (~> 0.4)
|
8
|
+
activeresource (3.0.5)
|
9
|
+
activemodel (= 3.0.5)
|
10
|
+
activesupport (= 3.0.5)
|
11
|
+
activesupport (3.0.5)
|
12
|
+
archive-tar-minitar (0.5.2)
|
12
13
|
builder (2.1.2)
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
columnize (0.3.2)
|
15
|
+
configuration (1.2.0)
|
16
|
+
diff-lcs (1.1.2)
|
17
|
+
h2o (0.3.1)
|
18
|
+
i18n (0.5.0)
|
19
|
+
launchy (0.4.0)
|
17
20
|
configuration (>= 0.0.5)
|
18
21
|
rake (>= 0.8.1)
|
22
|
+
linecache19 (0.5.11)
|
23
|
+
ruby_core_source (>= 0.1.4)
|
19
24
|
mime-types (1.16)
|
20
|
-
rack (1.2.
|
25
|
+
rack (1.2.2)
|
21
26
|
rake (0.8.7)
|
22
|
-
rdiscount (1.6.
|
23
|
-
rest-client (1.
|
27
|
+
rdiscount (1.6.8)
|
28
|
+
rest-client (1.6.1)
|
24
29
|
mime-types (>= 1.16)
|
25
|
-
|
26
|
-
|
30
|
+
rspec (2.5.0)
|
31
|
+
rspec-core (~> 2.5.0)
|
32
|
+
rspec-expectations (~> 2.5.0)
|
33
|
+
rspec-mocks (~> 2.5.0)
|
34
|
+
rspec-core (2.5.1)
|
35
|
+
rspec-expectations (2.5.0)
|
36
|
+
diff-lcs (~> 1.1.2)
|
37
|
+
rspec-mocks (2.5.0)
|
38
|
+
ruby-debug-base19 (0.11.24)
|
39
|
+
columnize (>= 0.3.1)
|
40
|
+
linecache19 (>= 0.5.11)
|
41
|
+
ruby_core_source (>= 0.1.4)
|
42
|
+
ruby-debug19 (0.11.6)
|
43
|
+
columnize (>= 0.3.1)
|
44
|
+
linecache19 (>= 0.5.11)
|
45
|
+
ruby-debug-base19 (>= 0.11.19)
|
46
|
+
ruby_core_source (0.1.4)
|
47
|
+
archive-tar-minitar (>= 0.5.2)
|
48
|
+
sinatra (1.2.0)
|
49
|
+
rack (~> 1.1)
|
50
|
+
tilt (>= 1.2.2, < 2.0)
|
51
|
+
tilt (1.2.2)
|
52
|
+
will_paginate (3.0.pre2)
|
27
53
|
|
28
54
|
PLATFORMS
|
29
55
|
ruby
|
30
56
|
|
31
57
|
DEPENDENCIES
|
32
|
-
activeresource (~> 3.0.0
|
58
|
+
activeresource (~> 3.0.0)
|
33
59
|
h2o
|
34
60
|
launchy
|
35
61
|
mime-types
|
36
62
|
rdiscount
|
37
63
|
rest-client
|
64
|
+
rspec
|
65
|
+
ruby-debug19
|
38
66
|
sinatra
|
67
|
+
will_paginate (>= 3.0.pre2)
|
data/Rakefile
CHANGED
@@ -8,8 +8,9 @@ begin
|
|
8
8
|
s.email = "taylor.luk@idealian.net"
|
9
9
|
s.homepage = "http://www.siterest.com"
|
10
10
|
s.authors = ["Taylor luk"]
|
11
|
-
s.add_dependency 'h2o'
|
12
|
-
s.add_dependency '
|
11
|
+
s.add_dependency 'h2o', '~> 0.3'
|
12
|
+
s.add_dependency 'will_paginate', '~> 3.0.pre2'
|
13
|
+
s.add_dependency 'activeresource', '~> 3.0.0'
|
13
14
|
s.add_dependency 'launchy'
|
14
15
|
s.add_dependency 'sinatra'
|
15
16
|
s.add_dependency 'rest-client'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.0.
|
1
|
+
0.1.0.pre8
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
title: This is my first blog post about this issue
|
3
|
+
excerpt: What every happens already happened, why are you so mad at yourself.
|
4
|
+
tags: [something, else]
|
5
|
+
---
|
6
|
+
|
7
|
+
Hello world
|
8
|
+
----
|
9
|
+
|
10
|
+
What every you do and don't panic
|
11
|
+
|
12
|
+
|
13
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
14
|
+
|
15
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
title: About us
|
3
|
+
tags: [one, two]
|
4
|
+
---
|
5
|
+
|
6
|
+
We are idealian
|
7
|
+
---
|
8
|
+
|
9
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
10
|
+
|
11
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
12
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
title: Contact us
|
3
|
+
---
|
4
|
+
|
5
|
+
contact us
|
6
|
+
---
|
7
|
+
|
8
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
9
|
+
|
10
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
11
|
+
|
12
|
+
email
|
data/data/pages/home.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
---
|
2
|
+
title: Welcome to my website
|
3
|
+
tags: one, two
|
4
|
+
---
|
5
|
+
|
6
|
+
Welcome
|
7
|
+
---
|
8
|
+
|
9
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
10
|
+
|
11
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
12
|
+
|
13
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
14
|
+
|
data/data/site.yaml
ADDED
data/lib/siterest.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require "rubygems"
|
1
|
+
#require "rubygems"
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
#require "bundler"
|
4
|
+
#Bundler.setup
|
5
5
|
|
6
6
|
require 'yaml'
|
7
7
|
require 'h2o'
|
@@ -11,6 +11,7 @@ require 'rest_client'
|
|
11
11
|
require 'yaml'
|
12
12
|
require 'rdiscount'
|
13
13
|
require 'ostruct'
|
14
|
+
require 'rspec'
|
14
15
|
|
15
16
|
module Siterest
|
16
17
|
|
@@ -23,10 +24,12 @@ module Siterest
|
|
23
24
|
autoload :User, 'siterest/user'
|
24
25
|
autoload :Site, 'siterest/site'
|
25
26
|
|
27
|
+
require 'siterest/template/paginate'
|
26
28
|
# load template api
|
27
29
|
require 'siterest/template/objects/site'
|
28
30
|
require 'siterest/template/objects/page'
|
29
31
|
require 'siterest/template/objects/article'
|
32
|
+
require 'siterest/template/objects/tag'
|
30
33
|
|
31
34
|
# load filters
|
32
35
|
require 'siterest/template/filters/core_filters'
|
@@ -53,4 +56,4 @@ module Siterest
|
|
53
56
|
"#{self.url}/sites/:subdomain"
|
54
57
|
end
|
55
58
|
|
56
|
-
end
|
59
|
+
end
|
data/lib/siterest/client.rb
CHANGED
@@ -84,7 +84,31 @@ module Siterest
|
|
84
84
|
require 'siterest/asset'
|
85
85
|
|
86
86
|
Dir.glob("assets/*/*").each do |filename|
|
87
|
+
|
88
|
+
puts "processing #{filename}..."
|
89
|
+
|
90
|
+
existing = Asset.first(:params => {
|
91
|
+
:subdomain => site, :search => {:data_file_name_eq => File.basename(filename)}
|
92
|
+
})
|
93
|
+
|
94
|
+
if existing
|
95
|
+
existing.data = open(filename)
|
96
|
+
existing.save
|
97
|
+
else
|
98
|
+
Asset.create(:data => open(filename), :subdomain => site, :layout => true)
|
99
|
+
end
|
100
|
+
|
101
|
+
puts "#{existing ? 'Updated' : 'Created'} #{filename}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def push_stylesheets(site)
|
106
|
+
require 'siterest/asset'
|
87
107
|
|
108
|
+
Dir.glob("assets/stylesheets/*").each do |filename|
|
109
|
+
|
110
|
+
puts "processing #{filename}..."
|
111
|
+
|
88
112
|
existing = Asset.first(:params => {
|
89
113
|
:subdomain => site, :search => {:data_file_name_eq => File.basename(filename)}
|
90
114
|
})
|
@@ -100,9 +124,60 @@ module Siterest
|
|
100
124
|
end
|
101
125
|
end
|
102
126
|
|
103
|
-
def
|
104
|
-
|
127
|
+
def push_javascripts(site)
|
128
|
+
require 'siterest/asset'
|
129
|
+
|
130
|
+
Dir.glob("assets/javascripts/*").each do |filename|
|
131
|
+
|
132
|
+
puts "processing #{filename}..."
|
133
|
+
|
134
|
+
existing = Asset.first(:params => {
|
135
|
+
:subdomain => site, :search => {:data_file_name_eq => File.basename(filename)}
|
136
|
+
})
|
137
|
+
|
138
|
+
if existing
|
139
|
+
existing.data = open(filename)
|
140
|
+
existing.save
|
141
|
+
else
|
142
|
+
Asset.create(:data => open(filename), :subdomain => site, :layout => true)
|
143
|
+
end
|
144
|
+
|
145
|
+
puts "#{existing ? 'Updated' : 'Created'} #{filename}"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
def push_pages(site)
|
150
|
+
pages = Page.all
|
151
|
+
debugger
|
152
|
+
pages.each do |p|
|
153
|
+
puts "processing #{p.title}..."
|
154
|
+
|
155
|
+
existing = Page.first(:params => {
|
156
|
+
:subdomain => site, :search => {:permalink_eq => p.permalink}
|
157
|
+
})
|
158
|
+
|
159
|
+
data = {
|
160
|
+
:title => p.title,
|
161
|
+
:body => p.body_source,
|
162
|
+
:template => p.template,
|
163
|
+
:tag_list => p.tags,
|
164
|
+
:subdomain => site,
|
165
|
+
:status => "published"
|
166
|
+
}
|
167
|
+
|
168
|
+
if existing
|
169
|
+
existing.update_attributes(data)
|
170
|
+
else
|
171
|
+
Page.create(data)
|
172
|
+
end
|
173
|
+
|
174
|
+
puts "#{existing ? 'Updated' : 'Created'} #{filename}"
|
175
|
+
end
|
105
176
|
end
|
177
|
+
|
178
|
+
# def request_path
|
179
|
+
#
|
180
|
+
# end
|
106
181
|
|
107
182
|
private
|
108
183
|
def templates_path
|
data/lib/siterest/command.rb
CHANGED
@@ -41,7 +41,7 @@ module Siterest
|
|
41
41
|
put "API token: ", false
|
42
42
|
token = input.gets.chomp
|
43
43
|
|
44
|
-
put "Server (default:
|
44
|
+
put "Server (default: https://api.siterest.com): ", false
|
45
45
|
server = input.gets.chomp
|
46
46
|
|
47
47
|
server = server == '' ? 'https://api.siterest.com' : server
|
@@ -82,6 +82,91 @@ module Siterest
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
def push_templates
|
86
|
+
site = self.args.shift
|
87
|
+
|
88
|
+
put "Are you sure you want to overwrite your site design template(type in yes)"
|
89
|
+
|
90
|
+
put "[yes|no]: ", false
|
91
|
+
answer = input.gets.chomp
|
92
|
+
|
93
|
+
if answer == 'yes'
|
94
|
+
put "Pushing templates..."
|
95
|
+
|
96
|
+
client.push_templates(site)
|
97
|
+
else
|
98
|
+
put 'May be next time'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def push_assets
|
103
|
+
site = self.args.shift
|
104
|
+
|
105
|
+
put "Are you sure you want to overwrite your site assets(type in yes)"
|
106
|
+
|
107
|
+
put "[yes|no]: ", false
|
108
|
+
answer = input.gets.chomp
|
109
|
+
|
110
|
+
if answer == 'yes'
|
111
|
+
put "Pushing assets..."
|
112
|
+
|
113
|
+
client.push_assets(site)
|
114
|
+
else
|
115
|
+
put 'May be next time'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def push_stylesheets
|
120
|
+
site = self.args.shift
|
121
|
+
|
122
|
+
put "Are you sure you want to overwrite your site assets/stylesheets (type in yes)"
|
123
|
+
|
124
|
+
put "[yes|no]: ", false
|
125
|
+
answer = input.gets.chomp
|
126
|
+
|
127
|
+
if answer == 'yes'
|
128
|
+
put "Pushing assets/stylesheets..."
|
129
|
+
|
130
|
+
client.push_stylesheets(site)
|
131
|
+
else
|
132
|
+
put 'May be next time'
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def push_javascripts
|
137
|
+
site = self.args.shift
|
138
|
+
|
139
|
+
put "Are you sure you want to overwrite your site assets/javascripts (type in yes)"
|
140
|
+
|
141
|
+
put "[yes|no]: ", false
|
142
|
+
answer = input.gets.chomp
|
143
|
+
|
144
|
+
if answer == 'yes'
|
145
|
+
put "Pushing assets/javascripts..."
|
146
|
+
|
147
|
+
client.push_javascripts(site)
|
148
|
+
else
|
149
|
+
put 'May be next time'
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
def push_pages
|
154
|
+
site = self.args.shift
|
155
|
+
|
156
|
+
put "Are you sure you want to overwrite your site data/pages (type in yes)"
|
157
|
+
|
158
|
+
put "[yes|no]: ", false
|
159
|
+
answer = input.gets.chomp
|
160
|
+
|
161
|
+
if answer == 'yes'
|
162
|
+
put "Pushing data/page"
|
163
|
+
|
164
|
+
client.push_pages(site)
|
165
|
+
else
|
166
|
+
put 'May be next time'
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
85
170
|
def help
|
86
171
|
put <<-TEXT
|
87
172
|
|
data/lib/siterest/server.rb
CHANGED
@@ -2,11 +2,6 @@ require 'rubygems'
|
|
2
2
|
require 'sinatra/base'
|
3
3
|
require 'cgi'
|
4
4
|
|
5
|
-
# require 'h2o'
|
6
|
-
# require 'yaml'
|
7
|
-
# require 'rdiscount'
|
8
|
-
# require 'ostruct'
|
9
|
-
|
10
5
|
module Siterest
|
11
6
|
class Server < Sinatra::Base
|
12
7
|
set :public, 'assets'
|
@@ -15,8 +10,8 @@ module Siterest
|
|
15
10
|
render_h2o 'home.html', :page => Page.find('home')
|
16
11
|
end
|
17
12
|
|
18
|
-
get %r{/(news|blog)} do
|
19
|
-
render_h2o 'list.html', :collection => Article.all
|
13
|
+
get %r{/(news|blog)$} do
|
14
|
+
render_h2o 'list.html', :collection => Article.all.paginate(:page => params[:page])
|
20
15
|
end
|
21
16
|
|
22
17
|
get %r{^/(\d{4})(?:/(\d{2}))$} do
|
@@ -36,15 +31,16 @@ module Siterest
|
|
36
31
|
a.tags.include?(params[:tag])
|
37
32
|
end
|
38
33
|
|
39
|
-
render_h2o 'list.html', :collection => results
|
34
|
+
render_h2o 'list.html', :collection => results.paginate(:page => params[:page])
|
40
35
|
end
|
41
36
|
|
42
37
|
get '/:year/:month/:permalink' do
|
43
38
|
render_h2o 'article.html', :page => Article.find(request.path_info[1..-1])
|
44
39
|
end
|
45
40
|
|
46
|
-
get '
|
47
|
-
|
41
|
+
get '/*' do
|
42
|
+
page = Page.find(*params[:splat])
|
43
|
+
render_h2o page.template, :page => page
|
48
44
|
end
|
49
45
|
end
|
50
46
|
end
|
@@ -53,6 +49,6 @@ def render_h2o(template, context = {})
|
|
53
49
|
global = {
|
54
50
|
:site => Site.new(YAML.load_file('data/site.yaml'))
|
55
51
|
}
|
56
|
-
template = H2o::Template.new(
|
52
|
+
template = H2o::Template.new(template, :searchpath => 'templates/')
|
57
53
|
template.render global.merge(context)
|
58
54
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module CoreFilters
|
2
|
-
|
2
|
+
require "active_support/inflector"
|
3
3
|
# String filters
|
4
4
|
def upper string
|
5
5
|
string.to_s.upcase
|
@@ -43,6 +43,9 @@ module CoreFilters
|
|
43
43
|
end
|
44
44
|
|
45
45
|
#String Filters
|
46
|
+
def slugify(string)
|
47
|
+
ActiveSupport::Inflector.parameterize(string) unless string.nil?
|
48
|
+
end
|
46
49
|
# def raw(stringish)
|
47
50
|
# stringish.to_s.html_safe
|
48
51
|
# end
|
@@ -47,6 +47,7 @@ module UrlFilters
|
|
47
47
|
"<a #{html_attr_for(attributes)}>#{anchor}</a>"
|
48
48
|
end
|
49
49
|
|
50
|
+
|
50
51
|
# Paginate collection
|
51
52
|
# * <tt>:previous_label</tt> -- default: "« Previous" (this parameter is called <tt>:prev_label</tt> in versions <b>2.3.2</b> and older!)
|
52
53
|
# * <tt>:next_label</tt> -- default: "Next »"
|
@@ -57,7 +58,10 @@ module UrlFilters
|
|
57
58
|
#
|
58
59
|
def paginate(collection, options = {})
|
59
60
|
options[:request_uri] = @context.resolve(:request_uri)
|
60
|
-
|
61
|
+
options[:per_page] = 5
|
62
|
+
|
63
|
+
renderer = Object.new.send(:extend, WillPaginate::ViewHelpers::H2oCompatible)
|
64
|
+
renderer.will_paginate(collection, options)
|
61
65
|
end
|
62
66
|
|
63
67
|
private
|
@@ -74,9 +78,4 @@ module UrlFilters
|
|
74
78
|
end
|
75
79
|
|
76
80
|
H2o::Filters << self
|
77
|
-
end
|
78
|
-
#
|
79
|
-
# class Paginator
|
80
|
-
# include ActionView::Helpers::TagHelper
|
81
|
-
# include WillPaginate::H2oCompatible::ViewHelpers
|
82
|
-
# end
|
81
|
+
end
|
@@ -1,7 +1,13 @@
|
|
1
1
|
|
2
2
|
class Article < OpenStruct
|
3
|
-
h2o_expose :title, :body, :excerpt, :author_name, :url, :permalink, :created_at, :published_at
|
3
|
+
h2o_expose :title, :body, :excerpt, :author_name, :url, :permalink, :created_at, :published_at, :tags
|
4
4
|
|
5
|
+
def tags
|
6
|
+
@table[:tags].map do |tag|
|
7
|
+
Tag.new(:name => tag)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
5
11
|
def self.all
|
6
12
|
Dir.glob("data/articles/*.md").map do |path|
|
7
13
|
build(path)
|
@@ -1,5 +1,9 @@
|
|
1
1
|
class Page < OpenStruct
|
2
|
-
h2o_expose :title, :body, :url, :permalink, :created_at, :published_at, :children
|
2
|
+
h2o_expose :title, :body, :url, :permalink, :created_at, :published_at, :children, :template
|
3
|
+
|
4
|
+
def template
|
5
|
+
@table[:template] || 'page.html'
|
6
|
+
end
|
3
7
|
|
4
8
|
def self.all
|
5
9
|
cache = {}
|
@@ -50,6 +54,11 @@ class Page < OpenStruct
|
|
50
54
|
|
51
55
|
def self.build_content(filename)
|
52
56
|
source = File.read(filename)
|
57
|
+
|
58
|
+
if "1.9".respond_to? :encode
|
59
|
+
source = source.force_encoding('binary')
|
60
|
+
end
|
61
|
+
|
53
62
|
meta, content = source.split(/---\n(.+?)---/sm)[1,2]
|
54
63
|
|
55
64
|
if meta
|
@@ -59,7 +68,10 @@ class Page < OpenStruct
|
|
59
68
|
end
|
60
69
|
|
61
70
|
attributes.merge(
|
71
|
+
'body_source' => content,
|
62
72
|
'body' => content && RDiscount.new(content).to_html,
|
73
|
+
'status' => 'published',
|
74
|
+
'tag_list' => attributes['tags'],
|
63
75
|
'published_at' => attributes['published_at'] || File.mtime(filename)
|
64
76
|
)
|
65
77
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'will_paginate/view_helpers/link_renderer'
|
2
|
+
require 'will_paginate/view_helpers/base'
|
3
|
+
|
4
|
+
module WillPaginate
|
5
|
+
module ViewHelpers
|
6
|
+
module H2oCompatible
|
7
|
+
include WillPaginate::ViewHelpers::Base
|
8
|
+
|
9
|
+
def will_paginate(collection, options = {})
|
10
|
+
options[:renderer] = H2oLinkRenderer
|
11
|
+
super(collection, options)
|
12
|
+
end
|
13
|
+
|
14
|
+
class H2oLinkRenderer < ::WillPaginate::ViewHelpers::LinkRenderer
|
15
|
+
def url(page)
|
16
|
+
request_uri = @options[:request_uri]
|
17
|
+
uri = URI.parse(request_uri)
|
18
|
+
params = Rack::Utils.parse_query(uri.query)
|
19
|
+
|
20
|
+
if page > 1
|
21
|
+
params['page'] = page
|
22
|
+
else
|
23
|
+
params.delete('page')
|
24
|
+
return uri.path if params.empty?
|
25
|
+
end
|
26
|
+
uri.query = Rack::Utils.build_query(params)
|
27
|
+
uri.to_s
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
data/lib/upfile.rb
CHANGED
@@ -16,10 +16,10 @@ module Upfile
|
|
16
16
|
when "csv", "xml", "css" then "text/#{type}"
|
17
17
|
else
|
18
18
|
# On BSDs, `file` doesn't give a result code of 1 if the file doesn't exist.
|
19
|
-
content_type =
|
20
|
-
content_type = "application/x-#{type}" if content_type.match(/\(.*?\)/)
|
21
|
-
content_type
|
19
|
+
content_type = `file --mime --brief #{self.path}`.split(';').first
|
22
20
|
end
|
21
|
+
rescue
|
22
|
+
'application/octet-stream'
|
23
23
|
end
|
24
24
|
|
25
25
|
# Returns the file's normal name.
|
data/siterest.gemspec
CHANGED
@@ -1,89 +1,121 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{siterest}
|
8
|
-
s.version = "0.1.0.
|
8
|
+
s.version = "0.1.0.pre8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Taylor luk"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-14}
|
13
13
|
s.default_executable = %q{siterest}
|
14
14
|
s.description = %q{Simple content service}
|
15
15
|
s.email = %q{taylor.luk@idealian.net}
|
16
16
|
s.executables = ["siterest"]
|
17
17
|
s.files = [
|
18
18
|
"Gemfile",
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
19
|
+
"Gemfile.lock",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION",
|
22
|
+
"bin/siterest",
|
23
|
+
"config.ru",
|
24
|
+
"data/articles/2008-04-24-my-first-blog-post.md",
|
25
|
+
"data/pages/about-us.md",
|
26
|
+
"data/pages/contact.md",
|
27
|
+
"data/pages/home.md",
|
28
|
+
"data/site.yaml",
|
29
|
+
"lib/encoded_attachment/.gitignore",
|
30
|
+
"lib/encoded_attachment/Gemfile",
|
31
|
+
"lib/encoded_attachment/LICENSE",
|
32
|
+
"lib/encoded_attachment/README.md",
|
33
|
+
"lib/encoded_attachment/Rakefile",
|
34
|
+
"lib/encoded_attachment/encoded_attachment.gemspec",
|
35
|
+
"lib/encoded_attachment/lib/activerecord/base.rb",
|
36
|
+
"lib/encoded_attachment/lib/activeresource/base.rb",
|
37
|
+
"lib/encoded_attachment/lib/activeresource/connection.rb",
|
38
|
+
"lib/encoded_attachment/lib/encoded_attachment.rb",
|
39
|
+
"lib/encoded_attachment/lib/encoded_attachment/version.rb",
|
40
|
+
"lib/encoded_attachment/test/active_record_test.rb",
|
41
|
+
"lib/encoded_attachment/test/active_resource_test.rb",
|
42
|
+
"lib/encoded_attachment/test/avatars/.gitignore",
|
43
|
+
"lib/encoded_attachment/test/config/database.yml",
|
44
|
+
"lib/encoded_attachment/test/config/schema.rb",
|
45
|
+
"lib/encoded_attachment/test/fixtures/kitten.jpg",
|
46
|
+
"lib/encoded_attachment/test/fixtures/tapir.jpg",
|
47
|
+
"lib/encoded_attachment/test/test_helper.rb",
|
48
|
+
"lib/siterest.rb",
|
49
|
+
"lib/siterest/asset.rb",
|
50
|
+
"lib/siterest/client.rb",
|
51
|
+
"lib/siterest/command.rb",
|
52
|
+
"lib/siterest/page.rb",
|
53
|
+
"lib/siterest/server.rb",
|
54
|
+
"lib/siterest/site.rb",
|
55
|
+
"lib/siterest/template.rb",
|
56
|
+
"lib/siterest/template/filters/core_filters.rb",
|
57
|
+
"lib/siterest/template/filters/datetime_filters.rb",
|
58
|
+
"lib/siterest/template/filters/url_filters.rb",
|
59
|
+
"lib/siterest/template/objects/article.rb",
|
60
|
+
"lib/siterest/template/objects/page.rb",
|
61
|
+
"lib/siterest/template/objects/site.rb",
|
62
|
+
"lib/siterest/template/objects/tag.rb",
|
63
|
+
"lib/siterest/template/paginate.rb",
|
64
|
+
"lib/siterest/user.rb",
|
65
|
+
"lib/upfile.rb",
|
66
|
+
"pkg/siterest-0.1.0.pre7.gem",
|
67
|
+
"readme.md",
|
68
|
+
"site/data/articles/2008-04-24-my-first-blog-post.md",
|
69
|
+
"site/data/pages/about-us.md",
|
70
|
+
"site/data/pages/contact.md",
|
71
|
+
"site/data/pages/home.md",
|
72
|
+
"site/data/site.yaml",
|
73
|
+
"siterest.gemspec",
|
74
|
+
"spec/siterest/page_spec.rb",
|
75
|
+
"spec/spec_helper.rb"
|
66
76
|
]
|
67
77
|
s.homepage = %q{http://www.siterest.com}
|
68
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
69
78
|
s.require_paths = ["lib"]
|
70
|
-
s.rubygems_version = %q{1.
|
79
|
+
s.rubygems_version = %q{1.5.0}
|
71
80
|
s.summary = %q{Siterest client}
|
81
|
+
s.test_files = [
|
82
|
+
"spec/siterest/page_spec.rb",
|
83
|
+
"spec/spec_helper.rb"
|
84
|
+
]
|
72
85
|
|
73
86
|
if s.respond_to? :specification_version then
|
74
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
75
87
|
s.specification_version = 3
|
76
88
|
|
77
89
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
78
90
|
s.add_runtime_dependency(%q<h2o>, [">= 0"])
|
79
|
-
s.add_runtime_dependency(%q<activeresource>, ["~> 3.0.0
|
91
|
+
s.add_runtime_dependency(%q<activeresource>, ["~> 3.0.0"])
|
92
|
+
s.add_runtime_dependency(%q<launchy>, [">= 0"])
|
93
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
94
|
+
s.add_runtime_dependency(%q<mime-types>, [">= 0"])
|
95
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
96
|
+
s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
|
97
|
+
s.add_runtime_dependency(%q<rspec>, [">= 0"])
|
98
|
+
s.add_runtime_dependency(%q<will_paginate>, [">= 3.0.pre2"])
|
99
|
+
s.add_runtime_dependency(%q<h2o>, ["~> 0.3"])
|
100
|
+
s.add_runtime_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
|
101
|
+
s.add_runtime_dependency(%q<activeresource>, ["~> 3.0.0"])
|
80
102
|
s.add_runtime_dependency(%q<launchy>, [">= 0"])
|
81
103
|
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
82
104
|
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
83
105
|
s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
|
84
106
|
else
|
85
107
|
s.add_dependency(%q<h2o>, [">= 0"])
|
86
|
-
s.add_dependency(%q<activeresource>, ["~> 3.0.0
|
108
|
+
s.add_dependency(%q<activeresource>, ["~> 3.0.0"])
|
109
|
+
s.add_dependency(%q<launchy>, [">= 0"])
|
110
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
111
|
+
s.add_dependency(%q<mime-types>, [">= 0"])
|
112
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
113
|
+
s.add_dependency(%q<rdiscount>, [">= 0"])
|
114
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
115
|
+
s.add_dependency(%q<will_paginate>, [">= 3.0.pre2"])
|
116
|
+
s.add_dependency(%q<h2o>, ["~> 0.3"])
|
117
|
+
s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
|
118
|
+
s.add_dependency(%q<activeresource>, ["~> 3.0.0"])
|
87
119
|
s.add_dependency(%q<launchy>, [">= 0"])
|
88
120
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
89
121
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
@@ -91,7 +123,17 @@ Gem::Specification.new do |s|
|
|
91
123
|
end
|
92
124
|
else
|
93
125
|
s.add_dependency(%q<h2o>, [">= 0"])
|
94
|
-
s.add_dependency(%q<activeresource>, ["~> 3.0.0
|
126
|
+
s.add_dependency(%q<activeresource>, ["~> 3.0.0"])
|
127
|
+
s.add_dependency(%q<launchy>, [">= 0"])
|
128
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
129
|
+
s.add_dependency(%q<mime-types>, [">= 0"])
|
130
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
131
|
+
s.add_dependency(%q<rdiscount>, [">= 0"])
|
132
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
133
|
+
s.add_dependency(%q<will_paginate>, [">= 3.0.pre2"])
|
134
|
+
s.add_dependency(%q<h2o>, ["~> 0.3"])
|
135
|
+
s.add_dependency(%q<will_paginate>, ["~> 3.0.pre2"])
|
136
|
+
s.add_dependency(%q<activeresource>, ["~> 3.0.0"])
|
95
137
|
s.add_dependency(%q<launchy>, [">= 0"])
|
96
138
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
97
139
|
s.add_dependency(%q<rest-client>, [">= 0"])
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Siterest::Page do
|
4
|
+
it "does something" do
|
5
|
+
client = Siterest::Client.new
|
6
|
+
|
7
|
+
client.push_pages("unione")
|
8
|
+
# @pages = Siterest::Page.all(:params => {:subdomain => "test"})
|
9
|
+
# existing = Siterest::Page.first(:params => {
|
10
|
+
# :subdomain => "test", :search => {:permalink_eq => "about"}
|
11
|
+
# })
|
12
|
+
# puts existing.title
|
13
|
+
# Dir.chdir('./site')
|
14
|
+
# pages = Page.all
|
15
|
+
end
|
16
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: siterest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- pre6
|
10
|
-
version: 0.1.0.pre6
|
4
|
+
prerelease: 6
|
5
|
+
version: 0.1.0.pre8
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Taylor luk
|
@@ -15,90 +10,185 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
13
|
+
date: 2011-05-03 00:00:00 +10:00
|
19
14
|
default_executable: siterest
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
17
|
name: h2o
|
23
|
-
prerelease: false
|
24
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
19
|
none: false
|
26
20
|
requirements:
|
27
21
|
- - ">="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
segments:
|
30
|
-
- 0
|
31
23
|
version: "0"
|
32
24
|
type: :runtime
|
25
|
+
prerelease: false
|
33
26
|
version_requirements: *id001
|
34
27
|
- !ruby/object:Gem::Dependency
|
35
28
|
name: activeresource
|
36
|
-
prerelease: false
|
37
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
30
|
none: false
|
39
31
|
requirements:
|
40
32
|
- - ~>
|
41
33
|
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
- 3
|
44
|
-
- 0
|
45
|
-
- 0
|
46
|
-
- beta4
|
47
|
-
version: 3.0.0.beta4
|
34
|
+
version: 3.0.0
|
48
35
|
type: :runtime
|
36
|
+
prerelease: false
|
49
37
|
version_requirements: *id002
|
50
38
|
- !ruby/object:Gem::Dependency
|
51
39
|
name: launchy
|
52
|
-
prerelease: false
|
53
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
41
|
none: false
|
55
42
|
requirements:
|
56
43
|
- - ">="
|
57
44
|
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 0
|
60
45
|
version: "0"
|
61
46
|
type: :runtime
|
47
|
+
prerelease: false
|
62
48
|
version_requirements: *id003
|
63
49
|
- !ruby/object:Gem::Dependency
|
64
50
|
name: sinatra
|
65
|
-
prerelease: false
|
66
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
52
|
none: false
|
68
53
|
requirements:
|
69
54
|
- - ">="
|
70
55
|
- !ruby/object:Gem::Version
|
71
|
-
segments:
|
72
|
-
- 0
|
73
56
|
version: "0"
|
74
57
|
type: :runtime
|
58
|
+
prerelease: false
|
75
59
|
version_requirements: *id004
|
76
60
|
- !ruby/object:Gem::Dependency
|
77
|
-
name:
|
78
|
-
prerelease: false
|
61
|
+
name: mime-types
|
79
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
80
63
|
none: false
|
81
64
|
requirements:
|
82
65
|
- - ">="
|
83
66
|
- !ruby/object:Gem::Version
|
84
|
-
segments:
|
85
|
-
- 0
|
86
67
|
version: "0"
|
87
68
|
type: :runtime
|
69
|
+
prerelease: false
|
88
70
|
version_requirements: *id005
|
89
71
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
91
|
-
prerelease: false
|
72
|
+
name: rest-client
|
92
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
93
74
|
none: false
|
94
75
|
requirements:
|
95
76
|
- - ">="
|
96
77
|
- !ruby/object:Gem::Version
|
97
|
-
segments:
|
98
|
-
- 0
|
99
78
|
version: "0"
|
100
79
|
type: :runtime
|
80
|
+
prerelease: false
|
101
81
|
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rdiscount
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: "0"
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *id007
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rspec
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: "0"
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: *id008
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: will_paginate
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 3.0.pre2
|
112
|
+
type: :runtime
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: *id009
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: h2o
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: "0.3"
|
123
|
+
type: :runtime
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: *id010
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: will_paginate
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 3.0.pre2
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: *id011
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: activeresource
|
139
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ~>
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 3.0.0
|
145
|
+
type: :runtime
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: *id012
|
148
|
+
- !ruby/object:Gem::Dependency
|
149
|
+
name: launchy
|
150
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: "0"
|
156
|
+
type: :runtime
|
157
|
+
prerelease: false
|
158
|
+
version_requirements: *id013
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: sinatra
|
161
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: "0"
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: *id014
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: rest-client
|
172
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: "0"
|
178
|
+
type: :runtime
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: *id015
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rdiscount
|
183
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: "0"
|
189
|
+
type: :runtime
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: *id016
|
102
192
|
description: Simple content service
|
103
193
|
email: taylor.luk@idealian.net
|
104
194
|
executables:
|
@@ -114,6 +204,11 @@ files:
|
|
114
204
|
- VERSION
|
115
205
|
- bin/siterest
|
116
206
|
- config.ru
|
207
|
+
- data/articles/2008-04-24-my-first-blog-post.md
|
208
|
+
- data/pages/about-us.md
|
209
|
+
- data/pages/contact.md
|
210
|
+
- data/pages/home.md
|
211
|
+
- data/site.yaml
|
117
212
|
- lib/encoded_attachment/.gitignore
|
118
213
|
- lib/encoded_attachment/Gemfile
|
119
214
|
- lib/encoded_attachment/LICENSE
|
@@ -137,6 +232,7 @@ files:
|
|
137
232
|
- lib/siterest/asset.rb
|
138
233
|
- lib/siterest/client.rb
|
139
234
|
- lib/siterest/command.rb
|
235
|
+
- lib/siterest/page.rb
|
140
236
|
- lib/siterest/server.rb
|
141
237
|
- lib/siterest/site.rb
|
142
238
|
- lib/siterest/template.rb
|
@@ -146,23 +242,26 @@ files:
|
|
146
242
|
- lib/siterest/template/objects/article.rb
|
147
243
|
- lib/siterest/template/objects/page.rb
|
148
244
|
- lib/siterest/template/objects/site.rb
|
245
|
+
- lib/siterest/template/objects/tag.rb
|
246
|
+
- lib/siterest/template/paginate.rb
|
149
247
|
- lib/siterest/user.rb
|
150
248
|
- lib/upfile.rb
|
151
249
|
- readme.md
|
152
250
|
- site/data/articles/2008-04-24-my-first-blog-post.md
|
153
251
|
- site/data/pages/about-us.md
|
154
|
-
- site/data/pages/about-us/something.md
|
155
252
|
- site/data/pages/contact.md
|
156
253
|
- site/data/pages/home.md
|
157
254
|
- site/data/site.yaml
|
158
255
|
- siterest.gemspec
|
256
|
+
- spec/siterest/page_spec.rb
|
257
|
+
- spec/spec_helper.rb
|
159
258
|
has_rdoc: true
|
160
259
|
homepage: http://www.siterest.com
|
161
260
|
licenses: []
|
162
261
|
|
163
262
|
post_install_message:
|
164
|
-
rdoc_options:
|
165
|
-
|
263
|
+
rdoc_options: []
|
264
|
+
|
166
265
|
require_paths:
|
167
266
|
- lib
|
168
267
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -170,25 +269,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
269
|
requirements:
|
171
270
|
- - ">="
|
172
271
|
- !ruby/object:Gem::Version
|
173
|
-
segments:
|
174
|
-
- 0
|
175
272
|
version: "0"
|
176
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
274
|
none: false
|
178
275
|
requirements:
|
179
276
|
- - ">"
|
180
277
|
- !ruby/object:Gem::Version
|
181
|
-
segments:
|
182
|
-
- 1
|
183
|
-
- 3
|
184
|
-
- 1
|
185
278
|
version: 1.3.1
|
186
279
|
requirements: []
|
187
280
|
|
188
281
|
rubyforge_project:
|
189
|
-
rubygems_version: 1.
|
282
|
+
rubygems_version: 1.5.0
|
190
283
|
signing_key:
|
191
284
|
specification_version: 3
|
192
285
|
summary: Siterest client
|
193
|
-
test_files:
|
194
|
-
|
286
|
+
test_files:
|
287
|
+
- spec/siterest/page_spec.rb
|
288
|
+
- spec/spec_helper.rb
|
File without changes
|