zorglub 0.0.6 → 0.0.7
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/Changelog +13 -4
- data/Gemfile.lock +3 -3
- data/README.md +2 -4
- data/example/sample.ru +1 -1
- data/lib/zorglub/node.rb +75 -75
- data/lib/zorglub.rb +4 -1
- data/spec/node_spec.rb +31 -2
- data/spec/spec_helper.rb +9 -4
- data/zorglub.gemspec +5 -1
- metadata +38 -14
- data/lib/version.rb +0 -10
data/Changelog
CHANGED
@@ -1,12 +1,21 @@
|
|
1
|
+
2013-02-01 Jérémy Zurcher <jeremy@asynk.ch>
|
2
|
+
* release 0.0.7
|
3
|
+
* zorglub.rb swallows version.rb
|
4
|
+
* before_all and after_all accept parameter or proc
|
5
|
+
* use instance variables instead of @options hash
|
6
|
+
* add optional cache_lifetime to static pages
|
7
|
+
* add firs parameter env to Node#partial
|
8
|
+
* allow by passing hooks in partials
|
9
|
+
|
1
10
|
2013-01-08 Jérémy Zurcher <jeremy@asynk.ch>
|
2
|
-
* release 0.6
|
11
|
+
* release 0.0.6
|
3
12
|
* add sass engine
|
4
13
|
* use Bundler
|
5
14
|
* enable travis
|
6
15
|
* fix and rename inherited_vars in cli_vals
|
7
16
|
|
8
17
|
2012-01-17 Jérémy Zurcher <jeremy@asynk.ch>
|
9
|
-
* release 0.5
|
18
|
+
* release 0.0.5
|
10
19
|
* Node code cleanup
|
11
20
|
* class and method level directives are now view!, layout!, no_layout!, ...
|
12
21
|
* add view_base_path! and layout_base_path!
|
@@ -15,7 +24,7 @@
|
|
15
24
|
* Zorglub::App swallows Zorglub::Config
|
16
25
|
|
17
26
|
2012-01-05 Jérémy Zurcher <jeremy@asynk.ch>
|
18
|
-
* release 0.3 and 0.4
|
27
|
+
* release 0.0.3 and 0.0.4
|
19
28
|
* haml, file engines
|
20
29
|
* view/layout extention overriding at methode level
|
21
30
|
* optional engine cache
|
@@ -23,7 +32,7 @@
|
|
23
32
|
* optional static page generation/cache
|
24
33
|
|
25
34
|
2012-01-04 Jérémy Zurcher <jeremy@asynk.ch>
|
26
|
-
* release 0.2
|
35
|
+
* release 0.0.2
|
27
36
|
* lots of code cleanup
|
28
37
|
* replace Helpers Module with Node#inherited_var Node@inherited_vars
|
29
38
|
* rewrite session so it is compatible with Rack SessionHash
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
zorglub (0.0.
|
4
|
+
zorglub (0.0.7)
|
5
5
|
rack
|
6
6
|
|
7
7
|
GEM
|
@@ -9,7 +9,7 @@ GEM
|
|
9
9
|
specs:
|
10
10
|
diff-lcs (1.1.3)
|
11
11
|
haml (3.1.7)
|
12
|
-
rack (1.
|
12
|
+
rack (1.5.1)
|
13
13
|
rake (10.0.3)
|
14
14
|
rspec (2.12.0)
|
15
15
|
rspec-core (~> 2.12.0)
|
@@ -18,7 +18,7 @@ GEM
|
|
18
18
|
rspec-core (2.12.2)
|
19
19
|
rspec-expectations (2.12.1)
|
20
20
|
diff-lcs (~> 1.1.3)
|
21
|
-
rspec-mocks (2.12.
|
21
|
+
rspec-mocks (2.12.2)
|
22
22
|
sass (3.2.5)
|
23
23
|
|
24
24
|
PLATFORMS
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# zorglub
|
2
2
|
by Jérémy Zurcher
|
3
3
|
http://asynk.ch
|
4
|
+
[](http://travis-ci.org/jeremyz/zorglub)
|
5
|
+
[](http://badge.fury.io/rb/zorglub)
|
4
6
|
|
5
7
|
## DESCRIPTION:
|
6
8
|
|
@@ -17,10 +19,6 @@ a nano web application framework based on [rack](http://rack.rubyforge.org/)
|
|
17
19
|
* class level inherited variables
|
18
20
|
* session
|
19
21
|
|
20
|
-
## STATUS:
|
21
|
-
|
22
|
-
[](http://travis-ci.org/jeremyz/zorglub)
|
23
|
-
|
24
22
|
## SYNOPSIS:
|
25
23
|
|
26
24
|
For a simple test application run:
|
data/example/sample.ru
CHANGED
@@ -89,7 +89,7 @@ class Node2 < Zorglub::Node
|
|
89
89
|
end
|
90
90
|
#
|
91
91
|
def meth1 *args
|
92
|
-
more = Node2.partial :meth0, *args
|
92
|
+
more = Node2.partial response.env, :meth0, *args
|
93
93
|
"<title>Node2:meth1</title><b>partial</b><br/>#{more}<br/><b>done</b><br/><a href=#{Node0.r}>back</a>"
|
94
94
|
end
|
95
95
|
end
|
data/lib/zorglub/node.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# -*- coding: UTF-8 -*-
|
2
2
|
#
|
3
|
+
require 'fileutils'
|
4
|
+
#
|
3
5
|
module Zorglub
|
4
6
|
#
|
5
7
|
class Node
|
@@ -10,7 +12,7 @@ module Zorglub
|
|
10
12
|
#
|
11
13
|
class << self
|
12
14
|
#
|
13
|
-
attr_reader :static
|
15
|
+
attr_reader :static, :cache_lifetime
|
14
16
|
#
|
15
17
|
def engine! engine
|
16
18
|
@engine = engine
|
@@ -34,8 +36,9 @@ module Zorglub
|
|
34
36
|
@layout
|
35
37
|
end
|
36
38
|
#
|
37
|
-
def static! val
|
39
|
+
def static! val, lifetime=0
|
38
40
|
@static = ( (val==true or val==false) ? val : false )
|
41
|
+
@cache_lifetime = lifetime
|
39
42
|
end
|
40
43
|
#
|
41
44
|
def layout_base_path! path
|
@@ -58,11 +61,7 @@ module Zorglub
|
|
58
61
|
# instance level engine, layout, view, static configuration
|
59
62
|
#
|
60
63
|
def engine! engine
|
61
|
-
@
|
62
|
-
end
|
63
|
-
#
|
64
|
-
def engine
|
65
|
-
@options[:engine]
|
64
|
+
@engine = engine
|
66
65
|
end
|
67
66
|
#
|
68
67
|
def no_layout!
|
@@ -70,38 +69,39 @@ module Zorglub
|
|
70
69
|
end
|
71
70
|
#
|
72
71
|
def layout! layout
|
73
|
-
@
|
72
|
+
@layout = layout
|
74
73
|
end
|
75
74
|
#
|
76
75
|
def layout
|
77
|
-
return
|
78
|
-
File.join(self.class.layout_base_path, @
|
76
|
+
return nil if @layout.nil?
|
77
|
+
File.join(self.class.layout_base_path, @layout)+ext
|
79
78
|
end
|
80
79
|
#
|
81
80
|
def view! view
|
82
|
-
@
|
81
|
+
@view = view
|
83
82
|
end
|
84
83
|
#
|
85
84
|
def view
|
86
|
-
return
|
87
|
-
File.join(self.class.view_base_path, @
|
85
|
+
return nil if @view.nil?
|
86
|
+
File.join(self.class.view_base_path, @view)+ext
|
88
87
|
end
|
89
88
|
#
|
90
|
-
def static! val
|
91
|
-
@
|
89
|
+
def static! val, lifetime=0
|
90
|
+
@static = ( (val==true or val==false) ? val : false )
|
91
|
+
@cache_lifetime = lifetime
|
92
92
|
end
|
93
93
|
#
|
94
94
|
def static
|
95
|
-
return nil if not @
|
96
|
-
File.join(app.static_base_path, @
|
95
|
+
return nil if not @static or @view.nil?
|
96
|
+
File.join(app.static_base_path, @view)+ext
|
97
97
|
end
|
98
98
|
#
|
99
99
|
def ext! ext
|
100
|
-
@
|
100
|
+
@ext = ( (ext.nil? or ext.empty?) ? nil : (ext[0]=='.' ? (ext.length==1 ? nil : ext) : '.'+ext) )
|
101
101
|
end
|
102
102
|
#
|
103
103
|
def ext
|
104
|
-
@
|
104
|
+
@ext || ''
|
105
105
|
end
|
106
106
|
#
|
107
107
|
# class level basic node functions
|
@@ -127,16 +127,12 @@ module Zorglub
|
|
127
127
|
self.class.app
|
128
128
|
end
|
129
129
|
#
|
130
|
-
def args
|
131
|
-
@options[:args]
|
132
|
-
end
|
133
|
-
#
|
134
130
|
def map
|
135
131
|
self.class.r
|
136
132
|
end
|
137
133
|
#
|
138
134
|
def r *args
|
139
|
-
File.join map, (args.empty? ?
|
135
|
+
File.join map, (args.empty? ? meth : args.map { |x| x.to_s } )
|
140
136
|
end
|
141
137
|
#
|
142
138
|
def html
|
@@ -167,7 +163,7 @@ module Zorglub
|
|
167
163
|
attr_reader :cli_vals
|
168
164
|
#
|
169
165
|
def cli_val sym, *args
|
170
|
-
vals = @cli_vals[sym] ||=[]
|
166
|
+
vals = @cli_vals[sym] ||= []
|
171
167
|
unless args.empty?
|
172
168
|
vals.concat args
|
173
169
|
vals.uniq!
|
@@ -178,7 +174,7 @@ module Zorglub
|
|
178
174
|
end
|
179
175
|
#
|
180
176
|
def cli_val sym, *args
|
181
|
-
vals = @cli_vals[sym] ||=[]
|
177
|
+
vals = @cli_vals[sym] ||= []
|
182
178
|
unless args.empty?
|
183
179
|
vals.concat args
|
184
180
|
vals.uniq!
|
@@ -196,8 +192,8 @@ module Zorglub
|
|
196
192
|
@cli_vals[:before_all].each do |blk| blk.call obj end
|
197
193
|
end
|
198
194
|
#
|
199
|
-
def before_all &blk
|
200
|
-
@cli_vals[:before_all]<< blk
|
195
|
+
def before_all meth=nil, &blk
|
196
|
+
@cli_vals[:before_all]<< ( meth.nil? ? blk : meth )
|
201
197
|
@cli_vals[:before_all].uniq!
|
202
198
|
end
|
203
199
|
#
|
@@ -205,8 +201,8 @@ module Zorglub
|
|
205
201
|
@cli_vals[:after_all].each do |blk| blk.call obj end
|
206
202
|
end
|
207
203
|
#
|
208
|
-
def after_all &blk
|
209
|
-
@cli_vals[:after_all]<< blk
|
204
|
+
def after_all meth=nil, &blk
|
205
|
+
@cli_vals[:after_all]<< ( meth.nil? ? blk : meth )
|
210
206
|
@cli_vals[:after_all].uniq!
|
211
207
|
end
|
212
208
|
#
|
@@ -217,107 +213,111 @@ module Zorglub
|
|
217
213
|
class << self
|
218
214
|
#
|
219
215
|
def inherited sub
|
220
|
-
sub.engine! engine||(self==Zorglub::Node ? UNDEFINED : nil )
|
221
|
-
sub.layout! layout||(self==Zorglub::Node ? UNDEFINED : nil )
|
216
|
+
sub.engine! ( engine || (self==Zorglub::Node ? UNDEFINED : nil ) )
|
217
|
+
sub.layout! ( layout || (self==Zorglub::Node ? UNDEFINED : nil ) )
|
222
218
|
sub.instance_variable_set :@cli_vals, {}
|
223
219
|
@cli_vals.each do |s,v| sub.cli_val s, *v end
|
224
220
|
end
|
225
221
|
#
|
226
222
|
def call env
|
227
|
-
meth, *args = env['PATH_INFO'].sub(
|
228
|
-
meth||= 'index'
|
229
|
-
|
230
|
-
node = self.new env,
|
223
|
+
meth, *args = env['PATH_INFO'].sub(/^\/+/,'').split(/\//)
|
224
|
+
meth ||= 'index'
|
225
|
+
$stderr << "=> #{meth}(#{args.join ','})\n" if app.opt :debug
|
226
|
+
node = self.new env, meth, args
|
231
227
|
return error_404 node if not node.respond_to? meth
|
232
228
|
node.realize!
|
233
229
|
end
|
234
230
|
#
|
235
|
-
def partial meth, *args
|
236
|
-
node = self.new
|
231
|
+
def partial env, meth, *args
|
232
|
+
node = self.new env, meth.to_s, args, true
|
237
233
|
return error_404 node if not node.respond_to? meth
|
238
|
-
node.feed!
|
234
|
+
node.feed! env[:no_hooks]
|
239
235
|
node.content
|
240
236
|
end
|
241
237
|
#
|
242
238
|
def error_404 node
|
243
|
-
|
239
|
+
$stderr << " !! method not found\n" if app.opt :debug
|
244
240
|
resp = node.response
|
245
241
|
resp.status = 404
|
246
242
|
resp['Content-Type'] = 'text/plain'
|
247
|
-
resp.write "%s mapped at %p can't respond to : %p" % [ node.class.name, node.map, node.
|
243
|
+
resp.write "%s mapped at %p can't respond to : %p" % [ node.class.name, node.map, node.meth ]
|
248
244
|
resp
|
249
245
|
end
|
250
246
|
#
|
251
247
|
end
|
252
248
|
#
|
253
|
-
attr_reader :
|
249
|
+
attr_reader :request, :response, :content, :mime, :state, :engine, :meth, :args
|
254
250
|
#
|
255
|
-
def initialize env,
|
256
|
-
@
|
257
|
-
@
|
251
|
+
def initialize env, meth, args, partial=false
|
252
|
+
@meth = meth
|
253
|
+
@args = args
|
254
|
+
@partial = partial
|
258
255
|
@request = Rack::Request.new env
|
259
256
|
@response = Rack::Response.new
|
260
257
|
@cli_vals ={}
|
258
|
+
@debug = app.opt :debug
|
259
|
+
@engine = self.class.engine
|
260
|
+
@layout = ( partial ? nil : self.class.layout )
|
261
|
+
@view = r(meth)
|
262
|
+
@static = self.class.static
|
263
|
+
@cache_lifetime = self.class.cache_lifetime
|
261
264
|
self.class.cli_vals.each do |s,v| cli_val s, *v end
|
262
265
|
end
|
263
266
|
#
|
264
|
-
def state state=nil
|
265
|
-
@options[:state] = state unless state.nil?
|
266
|
-
@options[:state]
|
267
|
-
end
|
268
|
-
#
|
269
267
|
def realize!
|
270
268
|
catch(:stop_realize) {
|
271
269
|
feed!
|
272
270
|
response.write @content
|
273
|
-
response.header['Content-Type'] = @mime||'text/html'
|
271
|
+
response.header['Content-Type'] = ( @mime || 'text/html' )
|
274
272
|
response.finish
|
275
273
|
response
|
276
274
|
}
|
277
275
|
end
|
278
276
|
#
|
279
|
-
def feed!
|
280
|
-
state :pre_cb
|
281
|
-
self.class.call_before_hooks self
|
282
|
-
state :meth
|
283
|
-
@content = self.send @
|
277
|
+
def feed! no_hooks=false
|
278
|
+
@state = :pre_cb
|
279
|
+
self.class.call_before_hooks self unless no_hooks
|
280
|
+
@state = :meth
|
281
|
+
@content = self.send @meth, *@args
|
284
282
|
static_path = static
|
285
283
|
if static_path.nil?
|
286
284
|
compile_page!
|
287
285
|
else
|
288
286
|
static_page! static_path
|
289
287
|
end
|
290
|
-
state :post_cb
|
291
|
-
self.class.call_after_hooks self
|
292
|
-
state :finished
|
288
|
+
@state = :post_cb
|
289
|
+
self.class.call_after_hooks self unless no_hooks
|
290
|
+
@state = :finished
|
293
291
|
return @content, @mime
|
294
292
|
end
|
295
293
|
#
|
296
294
|
def static_page! path
|
297
|
-
if
|
298
|
-
|
299
|
-
Dir.mkdir app.static_base_path
|
300
|
-
Dir.mkdir File.dirname path
|
301
|
-
File.open(path, 'w') {|f| f.write("@mime:"+@mime+"\n"); f.write(@content); }
|
302
|
-
puts " * cache file created : #{path}" if app.opt :debug
|
303
|
-
else
|
304
|
-
puts " * use cache file : #{path}" if app.opt :debug
|
295
|
+
if File.exists?(path) and ( @cache_lifetime.nil? or @cache_lifetime==0 or ( (Time.now-File.stat(path).mtime) < @cache_lifetime ) )
|
296
|
+
$stderr << " * use cache file : #{path}\n" if @debug
|
305
297
|
content = File.open(path, 'r') {|f| f.read }
|
306
298
|
@content = content.sub /^@mime:(.*)\n/,''
|
307
299
|
@mime = $1
|
300
|
+
else
|
301
|
+
compile_page!
|
302
|
+
FileUtils.mkdir_p File.dirname(path)
|
303
|
+
File.open(path, 'w') {|f| f.write("@mime:"+@mime+"\n"); f.write(@content); }
|
304
|
+
$stderr << " * cache file created : #{path}\n" if @debug
|
308
305
|
end
|
309
306
|
end
|
310
307
|
#
|
311
308
|
def compile_page!
|
312
|
-
e, @
|
313
|
-
v, l
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
309
|
+
e, @ext = app.engine_proc_ext @engine, @ext
|
310
|
+
v, l = view, layout
|
311
|
+
if @debug
|
312
|
+
$stderr << " * "+(e ? 'use engine' : 'no engine ')+" : "+(e ? e.to_s : '')+"\n"
|
313
|
+
$stderr << " * "+((l and File.exists?(l)) ? 'use layout' : 'no layout ')+" : "+(l ? l : '')+"\n"
|
314
|
+
$stderr << " * "+((v and File.exists?(v)) ? 'use view ' : 'no view ')+" : "+(v ? v : '')+"\n"
|
315
|
+
end
|
316
|
+
@state = ( @partial ? :partial : :view )
|
317
|
+
@content, mime = e.call v, self if e and v and File.exists? v
|
318
318
|
@mime = mime unless mime.nil?
|
319
|
-
state :layout
|
320
|
-
@content, mime = e.call l, self if e and File.exists? l
|
319
|
+
@state = :layout
|
320
|
+
@content, mime = e.call l, self if e and l and File.exists? l
|
321
321
|
@mime = mime unless mime.nil?
|
322
322
|
end
|
323
323
|
#
|
data/lib/zorglub.rb
CHANGED
data/spec/node_spec.rb
CHANGED
@@ -167,11 +167,27 @@ describe Zorglub do
|
|
167
167
|
end
|
168
168
|
#
|
169
169
|
it "partial should render correctly" do
|
170
|
-
Node0.partial(
|
170
|
+
Node0.partial({},:do_partial, 1, 2).should == 'partial_content'
|
171
171
|
end
|
172
172
|
#
|
173
173
|
it "method level view should work" do
|
174
|
-
Node0.partial(
|
174
|
+
Node0.partial({},:other_view).should == 'partial_content'
|
175
|
+
end
|
176
|
+
#
|
177
|
+
it "partial with hooks should be default" do
|
178
|
+
Node3.before = 0
|
179
|
+
Node3.after = 0
|
180
|
+
Node3.partial({},:do_partial,1,2).should == 'partial_content'
|
181
|
+
Node3.before.should == 1
|
182
|
+
Node3.after.should == 1
|
183
|
+
end
|
184
|
+
#
|
185
|
+
it "partial without hooks should work" do
|
186
|
+
Node3.before = 0
|
187
|
+
Node3.after = 0
|
188
|
+
Node3.partial({:no_hooks=>true},:do_partial,1,2).should == 'partial_content'
|
189
|
+
Node3.before.should == 0
|
190
|
+
Node3.after.should == 0
|
175
191
|
end
|
176
192
|
#
|
177
193
|
it "static pages should be generated" do
|
@@ -187,6 +203,14 @@ describe Zorglub do
|
|
187
203
|
r = Node6.my_call '/no_static'
|
188
204
|
r.body[0].should == 'VAL 4'
|
189
205
|
r.header['Content-type'].should == 'text/static'
|
206
|
+
r = Node6.my_call '/do_static'
|
207
|
+
r.body[0].should == 'VAL 1'
|
208
|
+
r.header['Content-type'].should == 'text/static'
|
209
|
+
Node6.static! true, 0.000001
|
210
|
+
sleep 0.0001
|
211
|
+
r = Node6.my_call '/do_static'
|
212
|
+
r.body[0].should == 'VAL 6'
|
213
|
+
r.header['Content-type'].should == 'text/static'
|
190
214
|
end
|
191
215
|
#
|
192
216
|
it "redirect should work" do
|
@@ -261,6 +285,11 @@ describe Zorglub do
|
|
261
285
|
h[:layout].should == File.join(Node7.app.opt(:root), 'alt','layout','default')
|
262
286
|
end
|
263
287
|
#
|
288
|
+
it "debug out should work" do
|
289
|
+
APP.opt! :debug, true
|
290
|
+
Node0.my_call '/hello'
|
291
|
+
end
|
292
|
+
#
|
264
293
|
end
|
265
294
|
#
|
266
295
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -103,18 +103,23 @@ class Node3 < Zorglub::Node
|
|
103
103
|
@after=0
|
104
104
|
class << self
|
105
105
|
attr_accessor :before, :after
|
106
|
+
def post obj
|
107
|
+
@after +=1
|
108
|
+
end
|
106
109
|
end
|
107
110
|
before_all do |node|
|
108
111
|
Node3.before +=1
|
109
112
|
end
|
110
|
-
after_all
|
111
|
-
Node3.after +=1
|
112
|
-
end
|
113
|
+
after_all Node3.method(:post)
|
113
114
|
layout! 'layout-2'
|
114
115
|
engine! 'engine-2'
|
115
116
|
def index
|
116
117
|
(Node3.before-Node3.after).should == 1
|
117
118
|
end
|
119
|
+
def do_partial a1, a2
|
120
|
+
view! Node0.r('do_partial')
|
121
|
+
engine! 'real'
|
122
|
+
end
|
118
123
|
end
|
119
124
|
#
|
120
125
|
class Node8 < Node3
|
@@ -151,7 +156,7 @@ class Node6 < Zorglub::Node
|
|
151
156
|
attr_accessor :static_cpt
|
152
157
|
end
|
153
158
|
attr_reader :value
|
154
|
-
static! true
|
159
|
+
static! true, 5
|
155
160
|
def no_static
|
156
161
|
static! false
|
157
162
|
engine! 'static'
|
data/zorglub.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zorglub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01
|
12
|
+
date: 2013-02-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rake
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: haml
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: sass
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
description: This is a very stripped down version of innate.
|
70
95
|
email:
|
71
96
|
- jeremy@asynk.ch
|
@@ -89,7 +114,6 @@ files:
|
|
89
114
|
- example/view/url1/index.haml
|
90
115
|
- example/view/url1/meth0.haml
|
91
116
|
- example/view/url3/index.haml
|
92
|
-
- lib/version.rb
|
93
117
|
- lib/zorglub.rb
|
94
118
|
- lib/zorglub/app.rb
|
95
119
|
- lib/zorglub/engines/file.rb
|
@@ -132,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
156
|
version: '0'
|
133
157
|
requirements: []
|
134
158
|
rubyforge_project:
|
135
|
-
rubygems_version: 1.8.
|
159
|
+
rubygems_version: 1.8.23
|
136
160
|
signing_key:
|
137
161
|
specification_version: 3
|
138
162
|
summary: a nano web application framework based on rack
|