deas 0.23.4 → 0.24.0
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/deas/runner.rb +2 -1
- data/lib/deas/sinatra_runner.rb +10 -2
- data/lib/deas/template.rb +3 -0
- data/lib/deas/test_runner.rb +9 -8
- data/lib/deas/version.rb +1 -1
- data/lib/deas/view_handler.rb +1 -0
- data/test/support/fake_sinatra_call.rb +16 -8
- data/test/support/routes.rb +8 -0
- data/test/support/view_handlers.rb +8 -0
- data/test/system/rack_tests.rb +7 -0
- data/test/unit/runner_tests.rb +18 -21
- data/test/unit/sinatra_runner_tests.rb +26 -21
- data/test/unit/test_runner_tests.rb +21 -6
- data/test/unit/view_handler_tests.rb +9 -3
- metadata +27 -27
data/lib/deas/runner.rb
CHANGED
@@ -2,7 +2,7 @@ module Deas
|
|
2
2
|
|
3
3
|
class Runner
|
4
4
|
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :handler_class, :handler
|
6
6
|
attr_reader :request, :response, :params, :logger, :session
|
7
7
|
|
8
8
|
def initialize(handler_class)
|
@@ -16,6 +16,7 @@ module Deas
|
|
16
16
|
def status(*args); raise NotImplementedError; end
|
17
17
|
def headers(*args); raise NotImplementedError; end
|
18
18
|
def render(*args); raise NotImplementedError; end
|
19
|
+
def partial(*args); raise NotImplementedError; end
|
19
20
|
def send_file(*args); raise NotImplementedError; end
|
20
21
|
|
21
22
|
end
|
data/lib/deas/sinatra_runner.rb
CHANGED
@@ -9,14 +9,18 @@ module Deas
|
|
9
9
|
self.new(*args).run
|
10
10
|
end
|
11
11
|
|
12
|
+
attr_reader :app_settings
|
13
|
+
|
12
14
|
def initialize(handler_class, sinatra_call)
|
13
15
|
@sinatra_call = sinatra_call
|
14
16
|
@app_settings = @sinatra_call.settings
|
15
|
-
|
16
|
-
@params = normalize_params(@sinatra_call.params)
|
17
|
+
|
17
18
|
@request = @sinatra_call.request
|
18
19
|
@response = @sinatra_call.response
|
20
|
+
@params = normalize_params(@sinatra_call.params)
|
21
|
+
@logger = @sinatra_call.settings.logger
|
19
22
|
@session = @sinatra_call.session
|
23
|
+
|
20
24
|
super(handler_class)
|
21
25
|
end
|
22
26
|
|
@@ -67,6 +71,10 @@ module Deas
|
|
67
71
|
Deas::Template.new(@sinatra_call, template_name, options).render(&block)
|
68
72
|
end
|
69
73
|
|
74
|
+
def partial(partial_name, locals = nil)
|
75
|
+
Deas::Template::Partial.new(@sinatra_call, partial_name, locals).render
|
76
|
+
end
|
77
|
+
|
70
78
|
def send_file(*args, &block)
|
71
79
|
@sinatra_call.send_file(*args, &block)
|
72
80
|
end
|
data/lib/deas/template.rb
CHANGED
@@ -40,7 +40,9 @@ module Deas
|
|
40
40
|
end
|
41
41
|
|
42
42
|
class Scope
|
43
|
+
|
43
44
|
attr_reader :sinatra_call
|
45
|
+
|
44
46
|
def initialize(sinatra_call)
|
45
47
|
@sinatra_call = sinatra_call
|
46
48
|
end
|
@@ -71,6 +73,7 @@ module Deas
|
|
71
73
|
self.sinatra_call == other_scope.sinatra_call
|
72
74
|
self.class.included_modules == other_scope.class.included_modules
|
73
75
|
end
|
76
|
+
|
74
77
|
end
|
75
78
|
|
76
79
|
class Partial < Template
|
data/lib/deas/test_runner.rb
CHANGED
@@ -6,15 +6,16 @@ module Deas
|
|
6
6
|
|
7
7
|
class TestRunner < Runner
|
8
8
|
|
9
|
-
attr_reader :
|
9
|
+
attr_reader :app_settings, :return_value
|
10
10
|
|
11
11
|
def initialize(handler_class, args = nil)
|
12
12
|
args = (args || {}).dup
|
13
13
|
@app_settings = OpenStruct.new(args.delete(:app_settings))
|
14
|
-
|
15
|
-
@params = normalize_params(args.delete(:params) || {})
|
14
|
+
|
16
15
|
@request = args.delete(:request)
|
17
16
|
@response = args.delete(:response)
|
17
|
+
@params = normalize_params(args.delete(:params) || {})
|
18
|
+
@logger = args.delete(:logger) || Deas::NullLogger.new
|
18
19
|
@session = args.delete(:session)
|
19
20
|
|
20
21
|
super(handler_class)
|
@@ -54,31 +55,31 @@ module Deas
|
|
54
55
|
def content_type(value, opts={})
|
55
56
|
ContentTypeArgs.new(value, opts)
|
56
57
|
end
|
57
|
-
|
58
58
|
ContentTypeArgs = Struct.new(:value, :opts)
|
59
59
|
|
60
60
|
def status(value)
|
61
61
|
StatusArgs.new(value)
|
62
62
|
end
|
63
|
-
|
64
63
|
StatusArgs = Struct.new(:value)
|
65
64
|
|
66
65
|
def headers(value)
|
67
66
|
HeadersArgs.new(value)
|
68
67
|
end
|
69
|
-
|
70
68
|
HeadersArgs = Struct.new(:value)
|
71
69
|
|
72
70
|
def render(template_name, options = nil, &block)
|
73
71
|
RenderArgs.new(template_name, options, block)
|
74
72
|
end
|
75
|
-
|
76
73
|
RenderArgs = Struct.new(:template_name, :options, :block)
|
77
74
|
|
75
|
+
def partial(partial_name, locals = nil)
|
76
|
+
PartialArgs.new(partial_name, locals)
|
77
|
+
end
|
78
|
+
PartialArgs = Struct.new(:partial_name, :locals)
|
79
|
+
|
78
80
|
def send_file(file_path, options = nil, &block)
|
79
81
|
SendFileArgs.new(file_path, options, block)
|
80
82
|
end
|
81
|
-
|
82
83
|
SendFileArgs = Struct.new(:file_path, :options, :block)
|
83
84
|
|
84
85
|
private
|
data/lib/deas/version.rb
CHANGED
data/lib/deas/view_handler.rb
CHANGED
@@ -54,6 +54,7 @@ module Deas
|
|
54
54
|
def headers(*args); @deas_runner.headers(*args); end
|
55
55
|
|
56
56
|
def render(*args, &block); @deas_runner.render(*args, &block); end
|
57
|
+
def partial(*args, &block); @deas_runner.partial(*args, &block); end
|
57
58
|
def send_file(*args, &block); @deas_runner.send_file(*args, &block); end
|
58
59
|
|
59
60
|
def app_settings; @deas_runner.app_settings; end
|
@@ -9,15 +9,16 @@ class FakeSinatraCall
|
|
9
9
|
attr_accessor :request, :response, :params, :settings, :session, :logger
|
10
10
|
|
11
11
|
def initialize(settings={})
|
12
|
-
@request = FakeRequest.new('GET','/something', {}, OpenStruct.new)
|
13
|
-
@params = @request.params
|
14
|
-
@session = @request.session
|
15
|
-
@response = FakeResponse.new
|
16
|
-
@logger = Deas::NullLogger.new
|
17
12
|
@settings = OpenStruct.new(settings.merge({
|
18
13
|
:deas_template_scope => Deas::Template::Scope,
|
19
14
|
:deas_default_charset => 'utf-8'
|
20
15
|
}))
|
16
|
+
|
17
|
+
@request = FakeRequest.new('GET','/something', {}, OpenStruct.new)
|
18
|
+
@response = FakeResponse.new
|
19
|
+
@params = @request.params
|
20
|
+
@logger = Deas::NullLogger.new
|
21
|
+
@session = @request.session
|
21
22
|
end
|
22
23
|
|
23
24
|
def halt(*args)
|
@@ -33,9 +34,6 @@ class FakeSinatraCall
|
|
33
34
|
def headers(*args); args; end
|
34
35
|
|
35
36
|
# return the template name for each nested calls
|
36
|
-
|
37
|
-
RenderArgs = Struct.new(:template_name, :opts, :block_call_result)
|
38
|
-
|
39
37
|
def erb(template_name, opts, &block)
|
40
38
|
if block
|
41
39
|
RenderArgs.new(template_name, opts, block.call)
|
@@ -43,6 +41,16 @@ class FakeSinatraCall
|
|
43
41
|
RenderArgs.new(template_name, opts, nil)
|
44
42
|
end
|
45
43
|
end
|
44
|
+
RenderArgs = Struct.new(:template_name, :opts, :block_call_result)
|
45
|
+
|
46
|
+
def send_file(file_path, opts, &block)
|
47
|
+
if block
|
48
|
+
SendFileArgs.new(file_path, opts, block.call)
|
49
|
+
else
|
50
|
+
SendFileArgs.new(file_path, opts, nil)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
SendFileArgs = Struct.new(:file_path, :options, :block_call_result)
|
46
54
|
|
47
55
|
end
|
48
56
|
|
data/test/support/routes.rb
CHANGED
@@ -37,6 +37,7 @@ class DeasTestServer
|
|
37
37
|
get '/haml_with_layout', 'HamlWithLayoutHandler'
|
38
38
|
get '/with_haml_layout', 'WithHamlLayoutHandler'
|
39
39
|
get '/haml_with_haml_layout', 'HamlWithHamlLayoutHandler'
|
40
|
+
get '/partial.html', 'PartialHandler'
|
40
41
|
|
41
42
|
get '/handler/tests.json', 'HandlerTestsHandler'
|
42
43
|
|
@@ -194,6 +195,13 @@ class HamlWithHamlLayoutHandler
|
|
194
195
|
|
195
196
|
end
|
196
197
|
|
198
|
+
class PartialHandler
|
199
|
+
include Deas::ViewHandler
|
200
|
+
|
201
|
+
def run!; partial 'info', :info => 'some-info'; end
|
202
|
+
|
203
|
+
end
|
204
|
+
|
197
205
|
class RedirectHandler
|
198
206
|
include Deas::ViewHandler
|
199
207
|
|
data/test/system/rack_tests.rb
CHANGED
@@ -96,6 +96,13 @@ module Deas
|
|
96
96
|
assert_equal expected_body, last_response.body
|
97
97
|
end
|
98
98
|
|
99
|
+
should "render partial templates" do
|
100
|
+
get '/partial.html'
|
101
|
+
expected_body = "Stuff: some-info\n"
|
102
|
+
assert_equal 200, last_response.status
|
103
|
+
assert_equal expected_body, last_response.body
|
104
|
+
end
|
105
|
+
|
99
106
|
should "return a 302 redirecting to the expected locations" do
|
100
107
|
get '/redirect'
|
101
108
|
expected_location = 'http://google.com'
|
data/test/unit/runner_tests.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'assert'
|
2
|
-
require 'test/support/view_handlers'
|
3
2
|
require 'deas/runner'
|
4
3
|
|
4
|
+
require 'test/support/view_handlers'
|
5
|
+
|
5
6
|
class Deas::Runner
|
6
7
|
|
7
8
|
class BaseTests < Assert::Context
|
@@ -11,37 +12,33 @@ class Deas::Runner
|
|
11
12
|
end
|
12
13
|
subject{ @runner }
|
13
14
|
|
14
|
-
should
|
15
|
+
should have_readers :handler_class, :handler
|
15
16
|
should have_readers :request, :response, :params, :logger, :session
|
16
|
-
should have_imeths :halt, :redirect, :content_type, :status
|
17
|
-
should have_imeths :render, :send_file
|
17
|
+
should have_imeths :halt, :redirect, :content_type, :status, :headers
|
18
|
+
should have_imeths :render, :partial, :send_file
|
18
19
|
|
19
|
-
should "
|
20
|
-
|
20
|
+
should "know its handler and handler class" do
|
21
|
+
assert_equal TestViewHandler, subject.handler_class
|
22
|
+
assert_instance_of subject.handler_class, subject.handler
|
21
23
|
end
|
22
24
|
|
23
|
-
should "
|
24
|
-
|
25
|
+
should "not set any settings" do
|
26
|
+
assert_nil subject.request
|
27
|
+
assert_nil subject.response
|
28
|
+
assert_nil subject.params
|
29
|
+
assert_nil subject.logger
|
30
|
+
assert_nil subject.session
|
25
31
|
end
|
26
32
|
|
27
|
-
should "
|
33
|
+
should "not implement any actions" do
|
34
|
+
assert_raises(NotImplementedError){ subject.halt }
|
28
35
|
assert_raises(NotImplementedError){ subject.redirect }
|
29
|
-
end
|
30
|
-
|
31
|
-
should "raise NotImplementedError with #content_type" do
|
32
36
|
assert_raises(NotImplementedError){ subject.content_type }
|
33
|
-
end
|
34
|
-
|
35
|
-
should "raise NotImplementedError with #status" do
|
36
37
|
assert_raises(NotImplementedError){ subject.status }
|
37
|
-
end
|
38
|
-
|
39
|
-
should "raise NotImplementedError with #headers" do
|
40
38
|
assert_raises(NotImplementedError){ subject.headers }
|
41
|
-
end
|
42
|
-
|
43
|
-
should "raise NotImplementedError with #render" do
|
44
39
|
assert_raises(NotImplementedError){ subject.render }
|
40
|
+
assert_raises(NotImplementedError){ subject.partial }
|
41
|
+
assert_raises(NotImplementedError){ subject.send_file }
|
45
42
|
end
|
46
43
|
|
47
44
|
end
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'assert'
|
2
|
+
require 'deas/sinatra_runner'
|
3
|
+
|
2
4
|
require 'test/support/fake_sinatra_call'
|
3
5
|
require 'test/support/view_handlers'
|
4
6
|
require 'deas/template'
|
5
|
-
require 'deas/sinatra_runner'
|
6
7
|
|
7
8
|
class Deas::SinatraRunner
|
8
9
|
|
@@ -14,35 +15,23 @@ class Deas::SinatraRunner
|
|
14
15
|
end
|
15
16
|
subject{ @runner }
|
16
17
|
|
17
|
-
should
|
18
|
-
should have_imeths :
|
18
|
+
should have_readers :app_settings
|
19
|
+
should have_imeths :run
|
19
20
|
|
20
|
-
should "
|
21
|
+
should "get its settings from the sinatra call" do
|
21
22
|
assert_equal @fake_sinatra_call.request, subject.request
|
22
|
-
end
|
23
|
-
|
24
|
-
should "return the sinatra_call's response with #response" do
|
25
23
|
assert_equal @fake_sinatra_call.response, subject.response
|
26
|
-
end
|
27
|
-
|
28
|
-
should "return the sinatra_call's params with #params" do
|
29
24
|
assert_equal @fake_sinatra_call.params, subject.params
|
30
|
-
end
|
31
|
-
|
32
|
-
should "return the sinatra_call's session with #session" do
|
33
|
-
assert_equal @fake_sinatra_call.session, subject.session
|
34
|
-
end
|
35
|
-
|
36
|
-
should "return the sinatra_call's settings logger with #logger" do
|
37
25
|
assert_equal @fake_sinatra_call.settings.deas_logger, subject.logger
|
26
|
+
assert_equal @fake_sinatra_call.session, subject.session
|
38
27
|
end
|
39
28
|
|
40
|
-
should "call the sinatra_call's halt with
|
29
|
+
should "call the sinatra_call's halt with" do
|
41
30
|
return_value = catch(:halt){ subject.halt('test') }
|
42
31
|
assert_equal [ 'test' ], return_value
|
43
32
|
end
|
44
33
|
|
45
|
-
should "call the sinatra_call's redirect method with
|
34
|
+
should "call the sinatra_call's redirect method with" do
|
46
35
|
return_value = catch(:halt){ subject.redirect('http://google.com') }
|
47
36
|
expected = [ 302, { 'Location' => 'http://google.com' } ]
|
48
37
|
|
@@ -61,7 +50,7 @@ class Deas::SinatraRunner
|
|
61
50
|
assert_equal [422], subject.status(422)
|
62
51
|
end
|
63
52
|
|
64
|
-
should "call the sinatra_call's
|
53
|
+
should "call the sinatra_call's headers to set the response headers" do
|
65
54
|
exp_headers = {
|
66
55
|
'a-header' => 'some value',
|
67
56
|
'other' => 'other'
|
@@ -69,7 +58,7 @@ class Deas::SinatraRunner
|
|
69
58
|
assert_equal [exp_headers], subject.headers(exp_headers)
|
70
59
|
end
|
71
60
|
|
72
|
-
should "render the template with a :view local and the handler layouts
|
61
|
+
should "render the template with a :view local and the handler layouts" do
|
73
62
|
exp_handler = FlagViewHandler.new(subject)
|
74
63
|
exp_layouts = FlagViewHandler.layouts
|
75
64
|
exp_result = Deas::Template.new(@fake_sinatra_call, 'index', {
|
@@ -80,6 +69,22 @@ class Deas::SinatraRunner
|
|
80
69
|
assert_equal exp_result, subject.render('index')
|
81
70
|
end
|
82
71
|
|
72
|
+
should "render partials with locals" do
|
73
|
+
exp_result = Deas::Template::Partial.new(@fake_sinatra_call, 'info', {
|
74
|
+
:some => 'locals'
|
75
|
+
}).render
|
76
|
+
|
77
|
+
assert_equal exp_result, subject.partial('info', :some => 'locals')
|
78
|
+
end
|
79
|
+
|
80
|
+
should "call the sinatra_call's send_file to set the send files" do
|
81
|
+
block_called = false
|
82
|
+
args = subject.send_file('a/file', {:some => 'opts'}, &proc{ block_called = true })
|
83
|
+
assert_equal 'a/file', args.file_path
|
84
|
+
assert_equal({:some => 'opts'}, args.options)
|
85
|
+
assert_true block_called
|
86
|
+
end
|
87
|
+
|
83
88
|
end
|
84
89
|
|
85
90
|
class RunTests < UnitTests
|
@@ -2,6 +2,7 @@ require 'assert'
|
|
2
2
|
require 'deas/test_runner'
|
3
3
|
|
4
4
|
require 'rack/test'
|
5
|
+
require 'deas/runner'
|
5
6
|
require 'test/support/view_handlers'
|
6
7
|
|
7
8
|
class Deas::TestRunner
|
@@ -13,18 +14,22 @@ class Deas::TestRunner
|
|
13
14
|
end
|
14
15
|
subject{ @runner }
|
15
16
|
|
16
|
-
should have_readers :
|
17
|
+
should have_readers :app_settings, :return_value
|
18
|
+
should have_imeths :run
|
17
19
|
|
18
|
-
should "
|
19
|
-
|
20
|
+
should "be a Runner" do
|
21
|
+
assert subject.class < Deas::Runner
|
20
22
|
end
|
21
23
|
|
22
|
-
should "
|
24
|
+
should "know its app_settings" do
|
23
25
|
assert_kind_of OpenStruct, subject.app_settings
|
24
|
-
|
25
|
-
|
26
|
+
end
|
27
|
+
|
28
|
+
should "default its settings" do
|
26
29
|
assert_nil subject.request
|
27
30
|
assert_nil subject.response
|
31
|
+
assert_equal Hash.new, subject.params
|
32
|
+
assert_kind_of Deas::NullLogger, subject.logger
|
28
33
|
assert_nil subject.session
|
29
34
|
end
|
30
35
|
|
@@ -94,6 +99,16 @@ class Deas::TestRunner
|
|
94
99
|
assert_equal 'some/template', value.template_name
|
95
100
|
end
|
96
101
|
|
102
|
+
should "build partial args if partial is called" do
|
103
|
+
value = subject.partial 'some/partial', :some => 'locals'
|
104
|
+
assert_kind_of PartialArgs, value
|
105
|
+
[:partial_name, :locals].each do |meth|
|
106
|
+
assert_respond_to meth, value
|
107
|
+
end
|
108
|
+
assert_equal 'some/partial', value.partial_name
|
109
|
+
assert_equal({:some => 'locals'}, value.locals)
|
110
|
+
end
|
111
|
+
|
97
112
|
should "build send file args if send file is called" do
|
98
113
|
value = subject.send_file 'some/file/path'
|
99
114
|
assert_kind_of SendFileArgs, value
|
@@ -23,17 +23,23 @@ module Deas::ViewHandler
|
|
23
23
|
should have_cmeths :before_run, :prepend_before_run, :before_run_callbacks
|
24
24
|
should have_cmeths :after_run, :prepend_after_run, :after_run_callbacks
|
25
25
|
|
26
|
-
should "
|
26
|
+
should "complain if run! is not overwritten" do
|
27
27
|
assert_raises(NotImplementedError){ subject.run! }
|
28
28
|
end
|
29
29
|
|
30
|
-
should "
|
30
|
+
should "render templates" do
|
31
31
|
render_args = test_runner(RenderViewHandler).run
|
32
32
|
assert_equal "my_template", render_args.template_name
|
33
33
|
assert_equal({ :some => :option }, render_args.options)
|
34
34
|
end
|
35
35
|
|
36
|
-
should "
|
36
|
+
should "render partial templates" do
|
37
|
+
partial_args = test_runner(PartialViewHandler).run
|
38
|
+
assert_equal "my_partial", partial_args.partial_name
|
39
|
+
assert_equal({:some => 'locals'}, partial_args.locals)
|
40
|
+
end
|
41
|
+
|
42
|
+
should "send files" do
|
37
43
|
send_file_args = test_runner(SendFileViewHandler).run
|
38
44
|
assert_equal "my_file.txt", send_file_args.file_path
|
39
45
|
assert_equal({ :some => :option }, send_file_args.options)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 127
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 24
|
9
|
+
- 0
|
10
|
+
version: 0.24.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,11 +16,9 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2014-
|
19
|
+
date: 2014-06-24 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
24
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
@@ -39,11 +37,11 @@ dependencies:
|
|
39
37
|
- 1
|
40
38
|
- 4
|
41
39
|
version: 1.1.4
|
42
|
-
|
40
|
+
type: :runtime
|
43
41
|
name: ns-options
|
44
|
-
|
42
|
+
version_requirements: *id001
|
45
43
|
prerelease: false
|
46
|
-
|
44
|
+
- !ruby/object:Gem::Dependency
|
47
45
|
requirement: &id002 !ruby/object:Gem::Requirement
|
48
46
|
none: false
|
49
47
|
requirements:
|
@@ -54,11 +52,11 @@ dependencies:
|
|
54
52
|
- 1
|
55
53
|
- 5
|
56
54
|
version: "1.5"
|
57
|
-
|
55
|
+
type: :runtime
|
58
56
|
name: rack
|
59
|
-
|
57
|
+
version_requirements: *id002
|
60
58
|
prerelease: false
|
61
|
-
|
59
|
+
- !ruby/object:Gem::Dependency
|
62
60
|
requirement: &id003 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
62
|
requirements:
|
@@ -69,11 +67,11 @@ dependencies:
|
|
69
67
|
- 1
|
70
68
|
- 4
|
71
69
|
version: "1.4"
|
72
|
-
|
70
|
+
type: :runtime
|
73
71
|
name: sinatra
|
74
|
-
|
72
|
+
version_requirements: *id003
|
75
73
|
prerelease: false
|
76
|
-
|
74
|
+
- !ruby/object:Gem::Dependency
|
77
75
|
requirement: &id004 !ruby/object:Gem::Requirement
|
78
76
|
none: false
|
79
77
|
requirements:
|
@@ -84,11 +82,11 @@ dependencies:
|
|
84
82
|
- 2
|
85
83
|
- 8
|
86
84
|
version: "2.8"
|
87
|
-
|
85
|
+
type: :development
|
88
86
|
name: assert
|
89
|
-
|
87
|
+
version_requirements: *id004
|
90
88
|
prerelease: false
|
91
|
-
|
89
|
+
- !ruby/object:Gem::Dependency
|
92
90
|
requirement: &id005 !ruby/object:Gem::Requirement
|
93
91
|
none: false
|
94
92
|
requirements:
|
@@ -98,11 +96,11 @@ dependencies:
|
|
98
96
|
segments:
|
99
97
|
- 0
|
100
98
|
version: "0"
|
101
|
-
|
99
|
+
type: :development
|
102
100
|
name: assert-mocha
|
103
|
-
|
101
|
+
version_requirements: *id005
|
104
102
|
prerelease: false
|
105
|
-
|
103
|
+
- !ruby/object:Gem::Dependency
|
106
104
|
requirement: &id006 !ruby/object:Gem::Requirement
|
107
105
|
none: false
|
108
106
|
requirements:
|
@@ -112,11 +110,11 @@ dependencies:
|
|
112
110
|
segments:
|
113
111
|
- 0
|
114
112
|
version: "0"
|
115
|
-
|
113
|
+
type: :development
|
116
114
|
name: assert-rack-test
|
117
|
-
|
115
|
+
version_requirements: *id006
|
118
116
|
prerelease: false
|
119
|
-
|
117
|
+
- !ruby/object:Gem::Dependency
|
120
118
|
requirement: &id007 !ruby/object:Gem::Requirement
|
121
119
|
none: false
|
122
120
|
requirements:
|
@@ -126,8 +124,10 @@ dependencies:
|
|
126
124
|
segments:
|
127
125
|
- 0
|
128
126
|
version: "0"
|
129
|
-
|
127
|
+
type: :development
|
130
128
|
name: haml
|
129
|
+
version_requirements: *id007
|
130
|
+
prerelease: false
|
131
131
|
description: Handler-based web framework powered by Sinatra
|
132
132
|
email:
|
133
133
|
- kelly@kellyredding.com
|
@@ -234,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
234
|
requirements: []
|
235
235
|
|
236
236
|
rubyforge_project:
|
237
|
-
rubygems_version: 1.8.
|
237
|
+
rubygems_version: 1.8.25
|
238
238
|
signing_key:
|
239
239
|
specification_version: 3
|
240
240
|
summary: Handler-based web framework powered by Sinatra
|