renee-core 0.3.11 → 0.4.0.pre1
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/lib/{renee_core.rb → renee/core.rb} +20 -13
- data/lib/{renee_core → renee/core}/chaining.rb +17 -15
- data/lib/{renee_core → renee/core}/env_accessors.rb +3 -3
- data/lib/{renee_core → renee/core}/exceptions.rb +0 -0
- data/lib/{renee_core → renee/core}/matcher.rb +0 -0
- data/lib/renee/core/plugins.rb +31 -0
- data/lib/{renee_core → renee/core}/rack_interaction.rb +0 -0
- data/lib/renee/core/request_context.rb +56 -0
- data/lib/{renee_core → renee/core}/responding.rb +3 -1
- data/lib/{renee_core → renee/core}/response.rb +0 -0
- data/lib/{renee_core → renee/core}/routing.rb +98 -101
- data/lib/{renee_core → renee/core}/transform.rb +0 -0
- data/test/{chaining_test.rb → renee-core/chaining_test.rb} +3 -3
- data/test/{env_accessors_test.rb → renee-core/env_accessors_test.rb} +1 -1
- data/test/{include_test.rb → renee-core/include_test.rb} +0 -0
- data/test/renee-core/request_context_test.rb +70 -0
- data/test/{responding_test.rb → renee-core/responding_test.rb} +0 -0
- data/test/{routing_test.rb → renee-core/routing_test.rb} +39 -82
- data/test/renee-core/test_helper.rb +4 -0
- data/test/{variable_type_test.rb → renee-core/variable_type_test.rb} +0 -0
- data/test/test_helper.rb +70 -4
- metadata +88 -129
- data/.yardopts +0 -6
- data/README.md +0 -242
- data/Rakefile +0 -13
- data/lib/renee_core/request_context.rb +0 -25
- data/lib/renee_core/url_generation.rb +0 -108
- data/lib/renee_core/version.rb +0 -6
- data/renee-core.gemspec +0 -26
- data/test/url_generation_test.rb +0 -66
File without changes
|
@@ -6,9 +6,9 @@ describe "Route chaining" do
|
|
6
6
|
type = { 'Content-Type' => 'text/plain' }
|
7
7
|
mock_app do
|
8
8
|
path('/').get { halt [200,type,['foo']] }
|
9
|
-
path('bar').put { halt [200,type,['bar']] }
|
10
|
-
path('bar').var.put { |id| halt [200,type,[id]] }
|
11
|
-
path('bar').var.get.halt { |id| "wow, nice to meet you " }
|
9
|
+
continue_routing.path('bar').put { halt [200,type,['bar']] }
|
10
|
+
continue_routing.path('bar').var.put { |id| halt [200,type,[id]] }
|
11
|
+
continue_routing.path('bar').var.get.halt { |id| "wow, nice to meet you " }
|
12
12
|
end
|
13
13
|
get '/'
|
14
14
|
assert_equal 200, response.status
|
@@ -18,7 +18,7 @@ describe Renee::Core::EnvAccessors do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should raise when you try to access weird env keys" do
|
21
|
-
assert_raises(Renee::Core::EnvAccessors::
|
21
|
+
assert_raises(Renee::Core::EnvAccessors::InvalidEnvNameError) {
|
22
22
|
@app = Renee.core {
|
23
23
|
self.test_test = 'hello'
|
24
24
|
}.setup {
|
File without changes
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.expand_path('../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class AddHelloThereMiddleware
|
4
|
+
def initialize(app)
|
5
|
+
@app = app
|
6
|
+
end
|
7
|
+
|
8
|
+
def call(env)
|
9
|
+
if env['hello']
|
10
|
+
env['hello'] << "there"
|
11
|
+
else
|
12
|
+
env['hello'] = 'hello'
|
13
|
+
end
|
14
|
+
@app.call(env)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class AddWhatsThatMiddleware
|
19
|
+
def initialize(app)
|
20
|
+
@app = app
|
21
|
+
end
|
22
|
+
|
23
|
+
def call(env)
|
24
|
+
if env['hello']
|
25
|
+
env['hello'] << "that"
|
26
|
+
else
|
27
|
+
env['hello'] = 'whats'
|
28
|
+
end
|
29
|
+
@app.call(env)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "Route::Core::RequestContext#use" do
|
34
|
+
it "should allow the inclusion of arbitrary middlewares" do
|
35
|
+
type = { 'Content-Type' => 'text/plain' }
|
36
|
+
@app = Renee.core {
|
37
|
+
halt env['hello']
|
38
|
+
}.setup {
|
39
|
+
use AddHelloThereMiddleware
|
40
|
+
}
|
41
|
+
get '/'
|
42
|
+
assert_equal 200, response.status
|
43
|
+
assert_equal 'hello', response.body
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should call middlewares in sequence (1)" do
|
47
|
+
type = { 'Content-Type' => 'text/plain' }
|
48
|
+
@app = Renee.core {
|
49
|
+
halt env['hello']
|
50
|
+
}.setup {
|
51
|
+
use AddHelloThereMiddleware
|
52
|
+
use AddWhatsThatMiddleware
|
53
|
+
}
|
54
|
+
get '/'
|
55
|
+
assert_equal 200, response.status
|
56
|
+
assert_equal 'hellothat', response.body
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should call middlewares in sequence (2)" do
|
60
|
+
@app = Renee.core {
|
61
|
+
halt env['hello']
|
62
|
+
}.setup {
|
63
|
+
use AddWhatsThatMiddleware
|
64
|
+
use AddHelloThereMiddleware
|
65
|
+
}
|
66
|
+
get '/'
|
67
|
+
assert_equal 200, response.status
|
68
|
+
assert_equal 'whatsthere', response.body
|
69
|
+
end
|
70
|
+
end
|
File without changes
|
@@ -40,66 +40,6 @@ describe Renee::Core::Routing do
|
|
40
40
|
assert_equal 'posted', response.body
|
41
41
|
end
|
42
42
|
|
43
|
-
it "accepts a query string" do
|
44
|
-
type = { 'Content-Type' => 'text/plain' }
|
45
|
-
mock_app do
|
46
|
-
path('test') { get { halt [200, type, [env['QUERY_STRING']]] } }
|
47
|
-
|
48
|
-
path 'foo' do
|
49
|
-
query_string 'bar' do
|
50
|
-
get { halt [200,type,['bar']] }
|
51
|
-
end
|
52
|
-
|
53
|
-
query_string 'foo=bar' do
|
54
|
-
post { halt [200,type,['foo']] }
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
get '/test?bar'
|
60
|
-
assert_equal 200, response.status
|
61
|
-
assert_equal 'bar', response.body
|
62
|
-
get '/foo?bar'
|
63
|
-
assert_equal 200, response.status
|
64
|
-
assert_equal 'bar', response.body
|
65
|
-
post '/foo?foo=bar'
|
66
|
-
assert_equal 200, response.status
|
67
|
-
assert_equal 'foo', response.body
|
68
|
-
end
|
69
|
-
|
70
|
-
it "accepts a set of query params (as hash)" do
|
71
|
-
mock_app do
|
72
|
-
path 'test' do
|
73
|
-
query :foo => :integer do |h|
|
74
|
-
halt "foo is #{h[:foo].inspect}"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
get '/test?foo=123'
|
80
|
-
assert_equal 200, response.status
|
81
|
-
assert_equal 'foo is 123', response.body
|
82
|
-
get '/test?foo=bar'
|
83
|
-
assert_equal 404, response.status
|
84
|
-
end
|
85
|
-
|
86
|
-
it "accepts a set of query params (as an array)" do
|
87
|
-
mock_app do
|
88
|
-
path 'test' do
|
89
|
-
query :foo do |var|
|
90
|
-
case var
|
91
|
-
when 'bar' then halt 200
|
92
|
-
when 'bar2' then halt 500
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
get '/test?foo=bar'
|
98
|
-
assert_equal 200, response.status
|
99
|
-
get '/test?foo=bar2'
|
100
|
-
assert_equal 500, response.status
|
101
|
-
end
|
102
|
-
|
103
43
|
describe "with trailing slashes" do
|
104
44
|
it "should ignore trailing slashes normally" do
|
105
45
|
type = { 'Content-Type' => 'text/plain' }
|
@@ -212,6 +152,25 @@ describe Renee::Core::Routing do
|
|
212
152
|
assert_equal '7', response.body
|
213
153
|
end
|
214
154
|
|
155
|
+
it "can take an optional variable" do
|
156
|
+
type = { 'Content-Type' => 'text/plain' }
|
157
|
+
mock_app do
|
158
|
+
path 'add' do
|
159
|
+
var(:integer).optional(:integer) do |a, b|
|
160
|
+
b ||= a
|
161
|
+
halt [200, type, ["#{a + b}"]]
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
get '/add/3/4'
|
167
|
+
assert_equal 200, response.status
|
168
|
+
assert_equal '7', response.body
|
169
|
+
get '/add/3'
|
170
|
+
assert_equal 200, response.status
|
171
|
+
assert_equal '6', response.body
|
172
|
+
end
|
173
|
+
|
215
174
|
it "allows arbitrary ranges of values" do
|
216
175
|
type = { 'Content-Type' => 'text/plain' }
|
217
176
|
mock_app do
|
@@ -297,16 +256,12 @@ describe Renee::Core::Routing do
|
|
297
256
|
it "should match an extension" do
|
298
257
|
type = { 'Content-Type' => 'text/plain' }
|
299
258
|
mock_app do
|
300
|
-
path
|
301
|
-
extension
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
end
|
307
|
-
|
308
|
-
no_extension do
|
309
|
-
halt [200, type, ['test nope']]
|
259
|
+
path('/test').get do
|
260
|
+
case extension
|
261
|
+
when 'html' then halt [200, type, ['test html']]
|
262
|
+
when 'json' then halt [200, type, ['test json']]
|
263
|
+
when nil then halt [200, type, ['test nope']]
|
264
|
+
else halt [406, type, ['unknown']]
|
310
265
|
end
|
311
266
|
end
|
312
267
|
|
@@ -321,20 +276,16 @@ describe Renee::Core::Routing do
|
|
321
276
|
assert_equal 200, response.status
|
322
277
|
assert_equal 'test json', response.body
|
323
278
|
get '/test.xml'
|
324
|
-
assert_equal
|
279
|
+
assert_equal 406, response.status
|
325
280
|
end
|
326
281
|
|
327
282
|
it "should match an extension when there is a non-specific variable before" do
|
328
283
|
mock_app do
|
329
284
|
var do |id|
|
330
|
-
extension
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
halt "xml #{id}"
|
335
|
-
end
|
336
|
-
no_extension do
|
337
|
-
halt "none #{id}"
|
285
|
+
case extension
|
286
|
+
when 'html' then halt "html #{id}"
|
287
|
+
when 'xml' then halt "xml #{id}"
|
288
|
+
when nil then halt "none #{id}"
|
338
289
|
end
|
339
290
|
end
|
340
291
|
end
|
@@ -478,9 +429,15 @@ describe Renee::Core::Routing do
|
|
478
429
|
assert_equal 'hiya', response.body
|
479
430
|
end
|
480
431
|
|
481
|
-
it "should
|
482
|
-
|
483
|
-
|
432
|
+
it "should raise if you fail to halt" do
|
433
|
+
type = { 'Content-Type' => 'text/plain' }
|
434
|
+
mock_app do
|
435
|
+
get { }
|
436
|
+
halt :ok
|
437
|
+
end
|
438
|
+
|
439
|
+
get '/'
|
440
|
+
assert_equal 404, response.status
|
484
441
|
end
|
485
442
|
end
|
486
443
|
end
|
File without changes
|
data/test/test_helper.rb
CHANGED
@@ -1,4 +1,70 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'minitest'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
gem 'rack-test'
|
5
|
+
require 'rack/test'
|
6
|
+
|
7
|
+
class ColoredIO
|
8
|
+
ESC = "\e["
|
9
|
+
NND = "#{ESC}0m"
|
10
|
+
|
11
|
+
def initialize(io)
|
12
|
+
@io = io
|
13
|
+
end
|
14
|
+
|
15
|
+
def print(o)
|
16
|
+
case o
|
17
|
+
when "."
|
18
|
+
@io.send(:print, "#{ESC}32m#{o}#{NND}")
|
19
|
+
when "E"
|
20
|
+
@io.send(:print, "#{ESC}33m#{o}#{NND}")
|
21
|
+
when "F"
|
22
|
+
@io.send(:print, "#{ESC}31m#{o}#{NND}")
|
23
|
+
else
|
24
|
+
@io.send(:print, o)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def puts(*o)
|
29
|
+
super
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
|
34
|
+
|
35
|
+
## TEST HELPERS
|
36
|
+
class MiniTest::Spec
|
37
|
+
include Rack::Test::Methods
|
38
|
+
|
39
|
+
# Sets up a Sinatra::Base subclass defined with the block
|
40
|
+
# given. Used in setup or individual spec methods to establish
|
41
|
+
# the application.
|
42
|
+
def mock_app(&block)
|
43
|
+
path = default_views_path
|
44
|
+
@app = Renee.core(&block).setup {
|
45
|
+
views_path(path) if respond_to?(:views_path)
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def default_views_path
|
50
|
+
File.dirname(__FILE__) + "/views"
|
51
|
+
end
|
52
|
+
|
53
|
+
def app
|
54
|
+
Rack::Lint.new(@app)
|
55
|
+
end
|
56
|
+
|
57
|
+
alias :response :last_response
|
58
|
+
|
59
|
+
# create_view :index, "test", :haml
|
60
|
+
def create_view(name, content, engine=:erb)
|
61
|
+
FileUtils.mkdir_p(default_views_path)
|
62
|
+
file = File.join(default_views_path, name.to_s + ".#{engine}")
|
63
|
+
File.open(file, 'w') { |io| io.write content }
|
64
|
+
end
|
65
|
+
|
66
|
+
# Removes the view folder after the test
|
67
|
+
def remove_views
|
68
|
+
FileUtils.rm_rf(File.dirname(__FILE__) + "/views")
|
69
|
+
end
|
70
|
+
end
|
metadata
CHANGED
@@ -1,179 +1,138 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: renee-core
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 11
|
10
|
-
version: 0.3.11
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0.pre1
|
5
|
+
prerelease: 6
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Josh Hull
|
14
9
|
- Nathan Esquenazi
|
15
10
|
- Arthur Chiu
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
date: 2012-01-23 00:00:00.000000000Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rack
|
18
|
+
requirement: &70111991759760 !ruby/object:Gem::Requirement
|
24
19
|
none: false
|
25
|
-
requirements:
|
20
|
+
requirements:
|
26
21
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 27
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 3
|
32
|
-
- 0
|
22
|
+
- !ruby/object:Gem::Version
|
33
23
|
version: 1.3.0
|
34
|
-
requirement: *id001
|
35
24
|
type: :runtime
|
36
25
|
prerelease: false
|
37
|
-
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
|
26
|
+
version_requirements: *70111991759760
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: &70111991759260 !ruby/object:Gem::Requirement
|
40
30
|
none: false
|
41
|
-
requirements:
|
31
|
+
requirements:
|
42
32
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 21
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 6
|
48
|
-
- 1
|
33
|
+
- !ruby/object:Gem::Version
|
49
34
|
version: 2.6.1
|
50
|
-
requirement: *id002
|
51
35
|
type: :development
|
52
36
|
prerelease: false
|
53
|
-
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
|
37
|
+
version_requirements: *70111991759260
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: bundler
|
40
|
+
requirement: &70111991758860 !ruby/object:Gem::Requirement
|
56
41
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
version: "0"
|
64
|
-
requirement: *id003
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
65
46
|
type: :development
|
66
47
|
prerelease: false
|
67
|
-
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
|
48
|
+
version_requirements: *70111991758860
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rack-test
|
51
|
+
requirement: &70111991758280 !ruby/object:Gem::Requirement
|
70
52
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 11
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
- 5
|
78
|
-
- 0
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
79
56
|
version: 0.5.0
|
80
|
-
requirement: *id004
|
81
57
|
type: :development
|
82
58
|
prerelease: false
|
83
|
-
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
|
59
|
+
version_requirements: *70111991758280
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rake
|
62
|
+
requirement: &70111991757700 !ruby/object:Gem::Requirement
|
86
63
|
none: false
|
87
|
-
requirements:
|
88
|
-
- -
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
|
91
|
-
segments:
|
92
|
-
- 0
|
93
|
-
- 8
|
94
|
-
- 7
|
95
|
-
version: 0.8.7
|
96
|
-
requirement: *id005
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
97
68
|
type: :development
|
98
69
|
prerelease: false
|
99
|
-
|
70
|
+
version_requirements: *70111991757700
|
100
71
|
description: The super-friendly rack helpers.
|
101
|
-
email:
|
72
|
+
email:
|
102
73
|
- joshbuddy@gmail.com
|
103
74
|
- nesquena@gmail.com
|
104
75
|
- mr.arthur.chiu@gmail.com
|
105
76
|
executables: []
|
106
|
-
|
107
77
|
extensions: []
|
108
|
-
|
109
78
|
extra_rdoc_files: []
|
110
|
-
|
111
|
-
|
112
|
-
- .
|
113
|
-
-
|
114
|
-
-
|
115
|
-
- lib/
|
116
|
-
- lib/
|
117
|
-
- lib/
|
118
|
-
- lib/
|
119
|
-
- lib/
|
120
|
-
- lib/
|
121
|
-
- lib/
|
122
|
-
- lib/
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
- renee-core.
|
129
|
-
- test/
|
130
|
-
- test/
|
131
|
-
- test/include_test.rb
|
132
|
-
- test/responding_test.rb
|
133
|
-
- test/routing_test.rb
|
79
|
+
files:
|
80
|
+
- lib/renee/core.rb
|
81
|
+
- lib/renee/core/chaining.rb
|
82
|
+
- lib/renee/core/env_accessors.rb
|
83
|
+
- lib/renee/core/exceptions.rb
|
84
|
+
- lib/renee/core/matcher.rb
|
85
|
+
- lib/renee/core/plugins.rb
|
86
|
+
- lib/renee/core/rack_interaction.rb
|
87
|
+
- lib/renee/core/request_context.rb
|
88
|
+
- lib/renee/core/responding.rb
|
89
|
+
- lib/renee/core/response.rb
|
90
|
+
- lib/renee/core/routing.rb
|
91
|
+
- lib/renee/core/transform.rb
|
92
|
+
- test/renee-core/chaining_test.rb
|
93
|
+
- test/renee-core/env_accessors_test.rb
|
94
|
+
- test/renee-core/include_test.rb
|
95
|
+
- test/renee-core/request_context_test.rb
|
96
|
+
- test/renee-core/responding_test.rb
|
97
|
+
- test/renee-core/routing_test.rb
|
98
|
+
- test/renee-core/test_helper.rb
|
99
|
+
- test/renee-core/variable_type_test.rb
|
134
100
|
- test/test_helper.rb
|
135
|
-
- test/url_generation_test.rb
|
136
|
-
- test/variable_type_test.rb
|
137
101
|
homepage: http://reneerb.com
|
138
102
|
licenses: []
|
139
|
-
|
140
103
|
post_install_message:
|
141
104
|
rdoc_options: []
|
142
|
-
|
143
|
-
require_paths:
|
105
|
+
require_paths:
|
144
106
|
- lib
|
145
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
108
|
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
|
151
|
-
segments:
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
segments:
|
152
114
|
- 0
|
153
|
-
|
154
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
hash: -4060874974939787425
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
117
|
none: false
|
156
|
-
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
segments:
|
161
|
-
- 0
|
162
|
-
version: "0"
|
118
|
+
requirements:
|
119
|
+
- - ! '>'
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 1.3.1
|
163
122
|
requirements: []
|
164
|
-
|
165
|
-
|
166
|
-
rubygems_version: 1.8.10
|
123
|
+
rubyforge_project: renee-core
|
124
|
+
rubygems_version: 1.8.15
|
167
125
|
signing_key:
|
168
126
|
specification_version: 3
|
169
127
|
summary: The super-friendly rack helpers
|
170
|
-
test_files:
|
171
|
-
- test/chaining_test.rb
|
172
|
-
- test/env_accessors_test.rb
|
173
|
-
- test/include_test.rb
|
174
|
-
- test/
|
175
|
-
- test/
|
128
|
+
test_files:
|
129
|
+
- test/renee-core/chaining_test.rb
|
130
|
+
- test/renee-core/env_accessors_test.rb
|
131
|
+
- test/renee-core/include_test.rb
|
132
|
+
- test/renee-core/request_context_test.rb
|
133
|
+
- test/renee-core/responding_test.rb
|
134
|
+
- test/renee-core/routing_test.rb
|
135
|
+
- test/renee-core/test_helper.rb
|
136
|
+
- test/renee-core/variable_type_test.rb
|
176
137
|
- test/test_helper.rb
|
177
|
-
- test/url_generation_test.rb
|
178
|
-
- test/variable_type_test.rb
|
179
138
|
has_rdoc:
|