deas 0.28.0 → 0.29.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/route.rb +8 -8
- data/lib/deas/runner.rb +5 -0
- data/lib/deas/template_engine.rb +7 -7
- data/lib/deas/template_source.rb +11 -10
- data/lib/deas/test_runner.rb +8 -1
- data/lib/deas/version.rb +1 -1
- data/test/support/test_layout1.test +0 -0
- data/test/support/test_layout2.test +0 -0
- data/test/support/view_handlers.rb +5 -3
- data/test/unit/route_tests.rb +16 -16
- data/test/unit/runner_tests.rb +1 -6
- data/test/unit/template_engine_tests.rb +9 -13
- data/test/unit/template_source_tests.rb +50 -46
- data/test/unit/test_runner_tests.rb +23 -8
- metadata +8 -4
data/lib/deas/route.rb
CHANGED
@@ -16,14 +16,14 @@ module Deas
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def run(sinatra_call)
|
19
|
-
runner =
|
20
|
-
:sinatra_call
|
21
|
-
:request
|
22
|
-
:response
|
23
|
-
:session
|
24
|
-
:params
|
25
|
-
:logger
|
26
|
-
:router
|
19
|
+
runner = SinatraRunner.new(self.handler_class, {
|
20
|
+
:sinatra_call => sinatra_call,
|
21
|
+
:request => sinatra_call.request,
|
22
|
+
:response => sinatra_call.response,
|
23
|
+
:session => sinatra_call.session,
|
24
|
+
:params => sinatra_call.params,
|
25
|
+
:logger => sinatra_call.settings.logger,
|
26
|
+
:router => sinatra_call.settings.router,
|
27
27
|
:template_source => sinatra_call.settings.template_source
|
28
28
|
})
|
29
29
|
|
data/lib/deas/runner.rb
CHANGED
data/lib/deas/template_engine.rb
CHANGED
@@ -13,15 +13,15 @@ module Deas
|
|
13
13
|
@logger = @opts['logger'] || Deas::NullLogger.new
|
14
14
|
end
|
15
15
|
|
16
|
-
def render(template_name, view_handler, locals)
|
16
|
+
def render(template_name, view_handler, locals, &content)
|
17
17
|
raise NotImplementedError
|
18
18
|
end
|
19
19
|
|
20
|
-
def partial(template_name, locals)
|
20
|
+
def partial(template_name, locals, &content)
|
21
21
|
raise NotImplementedError
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def compile(template_name, compiled_content)
|
25
25
|
raise NotImplementedError
|
26
26
|
end
|
27
27
|
|
@@ -29,7 +29,7 @@ module Deas
|
|
29
29
|
|
30
30
|
class NullTemplateEngine < TemplateEngine
|
31
31
|
|
32
|
-
def render(template_name, view_handler, locals)
|
32
|
+
def render(template_name, view_handler, locals, &content)
|
33
33
|
template_file = self.source_path.join(template_name).to_s
|
34
34
|
unless File.exists?(template_file)
|
35
35
|
raise ArgumentError, "template file `#{template_file}` does not exist"
|
@@ -37,12 +37,12 @@ module Deas
|
|
37
37
|
File.read(template_file)
|
38
38
|
end
|
39
39
|
|
40
|
-
def partial(template_name, locals)
|
40
|
+
def partial(template_name, locals, &content)
|
41
41
|
render(template_name, nil, locals)
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
45
|
-
|
44
|
+
def compile(template_name, compiled_content)
|
45
|
+
compiled_content # no-op, pass-thru - just return the given content
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
data/lib/deas/template_source.rb
CHANGED
@@ -14,8 +14,9 @@ module Deas
|
|
14
14
|
def initialize(path, logger = nil)
|
15
15
|
@path = path.to_s
|
16
16
|
@default_opts = {
|
17
|
-
'source_path'
|
18
|
-
'logger'
|
17
|
+
'source_path' => @path,
|
18
|
+
'logger' => logger || Deas::NullLogger.new,
|
19
|
+
'deas_template_source' => self
|
19
20
|
}
|
20
21
|
@engines = Hash.new{ |h,k| Deas::NullTemplateEngine.new(@default_opts) }
|
21
22
|
end
|
@@ -33,16 +34,16 @@ module Deas
|
|
33
34
|
@engines.keys.include?(get_template_ext(template_name))
|
34
35
|
end
|
35
36
|
|
36
|
-
def render(template_name, view_handler, locals)
|
37
|
-
|
37
|
+
def render(template_name, view_handler, locals, &content)
|
38
|
+
[ view_handler.class.layouts,
|
39
|
+
template_name
|
40
|
+
].flatten.reverse.inject(content) do |render_proc, name|
|
41
|
+
proc{ get_engine(name).render(name, view_handler, locals, &render_proc) }
|
42
|
+
end.call
|
38
43
|
end
|
39
44
|
|
40
|
-
def partial(template_name, locals)
|
41
|
-
get_engine(template_name).partial(template_name, locals)
|
42
|
-
end
|
43
|
-
|
44
|
-
def capture_partial(template_name, locals, &content)
|
45
|
-
get_engine(template_name).capture_partial(template_name, locals, &content)
|
45
|
+
def partial(template_name, locals, &content)
|
46
|
+
get_engine(template_name).partial(template_name, locals, &content)
|
46
47
|
end
|
47
48
|
|
48
49
|
private
|
data/lib/deas/test_runner.rb
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
require 'rack/multipart'
|
2
2
|
require 'deas/router'
|
3
3
|
require 'deas/runner'
|
4
|
+
require 'deas/view_handler'
|
4
5
|
|
5
6
|
module Deas
|
6
7
|
|
8
|
+
InvalidServiceHandlerError = Class.new(StandardError)
|
9
|
+
|
7
10
|
class TestRunner < Runner
|
8
11
|
|
9
12
|
attr_reader :return_value
|
10
13
|
|
11
14
|
def initialize(handler_class, args = nil)
|
12
|
-
|
15
|
+
if !handler_class.include?(Deas::ViewHandler)
|
16
|
+
raise InvalidServiceHandlerError, "#{handler_class.inspect} is not a"\
|
17
|
+
" Deas::ServiceHandler"
|
18
|
+
end
|
13
19
|
|
20
|
+
args = (args || {}).dup
|
14
21
|
super(handler_class, {
|
15
22
|
:request => args.delete(:request),
|
16
23
|
:response => args.delete(:response),
|
data/lib/deas/version.rb
CHANGED
File without changes
|
File without changes
|
@@ -8,11 +8,13 @@ end
|
|
8
8
|
class TestRunnerViewHandler
|
9
9
|
include Deas::ViewHandler
|
10
10
|
|
11
|
+
attr_reader :before_called, :init_called
|
11
12
|
attr_accessor :custom_value
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
end
|
14
|
+
before{ @before_called = true }
|
15
|
+
|
16
|
+
def init!; @init_called = true; end
|
17
|
+
def run!; 'run has run'; end
|
16
18
|
|
17
19
|
end
|
18
20
|
|
data/test/unit/route_tests.rb
CHANGED
@@ -59,13 +59,13 @@ class Deas::Route
|
|
59
59
|
assert_equal subject.handler_class, @runner_spy.handler_class
|
60
60
|
|
61
61
|
exp_args = {
|
62
|
-
:sinatra_call
|
63
|
-
:request
|
64
|
-
:response
|
65
|
-
:session
|
66
|
-
:params
|
67
|
-
:logger
|
68
|
-
:router
|
62
|
+
:sinatra_call => @fake_sinatra_call,
|
63
|
+
:request => @fake_sinatra_call.request,
|
64
|
+
:response => @fake_sinatra_call.response,
|
65
|
+
:session => @fake_sinatra_call.session,
|
66
|
+
:params => @fake_sinatra_call.params,
|
67
|
+
:logger => @fake_sinatra_call.settings.logger,
|
68
|
+
:router => @fake_sinatra_call.settings.router,
|
69
69
|
:template_source => @fake_sinatra_call.settings.template_source
|
70
70
|
}
|
71
71
|
assert_equal exp_args, @runner_spy.args
|
@@ -98,8 +98,8 @@ class Deas::Route
|
|
98
98
|
attr_reader :run_called
|
99
99
|
attr_reader :handler_class, :args
|
100
100
|
attr_reader :sinatra_call
|
101
|
-
attr_reader :request, :response, :params
|
102
|
-
attr_reader :logger, :router, :
|
101
|
+
attr_reader :request, :response, :session, :params
|
102
|
+
attr_reader :logger, :router, :template_source
|
103
103
|
|
104
104
|
def initialize
|
105
105
|
@run_called = false
|
@@ -108,13 +108,13 @@ class Deas::Route
|
|
108
108
|
def build(handler_class, args)
|
109
109
|
@handler_class, @args = handler_class, args
|
110
110
|
|
111
|
-
@sinatra_call
|
112
|
-
@request
|
113
|
-
@response
|
114
|
-
@session
|
115
|
-
@params
|
116
|
-
@logger
|
117
|
-
@router
|
111
|
+
@sinatra_call = args[:sinatra_call]
|
112
|
+
@request = args[:request]
|
113
|
+
@response = args[:response]
|
114
|
+
@session = args[:session]
|
115
|
+
@params = args[:params]
|
116
|
+
@logger = args[:logger]
|
117
|
+
@router = args[:router]
|
118
118
|
@template_source = args[:template_source]
|
119
119
|
end
|
120
120
|
|
data/test/unit/runner_tests.rb
CHANGED
@@ -38,17 +38,12 @@ class Deas::Runner
|
|
38
38
|
assert_nil subject.request
|
39
39
|
assert_nil subject.response
|
40
40
|
assert_nil subject.session
|
41
|
-
|
41
|
+
assert_equal ::Hash.new, subject.params
|
42
42
|
assert_kind_of Deas::NullLogger, subject.logger
|
43
43
|
assert_kind_of Deas::Router, subject.router
|
44
44
|
assert_kind_of Deas::NullTemplateSource, subject.template_source
|
45
45
|
end
|
46
46
|
|
47
|
-
should "default its params" do
|
48
|
-
runner = @runner_class.new(TestRunnerViewHandler)
|
49
|
-
assert_equal ::Hash.new, runner.params
|
50
|
-
end
|
51
|
-
|
52
47
|
should "not implement any actions" do
|
53
48
|
assert_raises(NotImplementedError){ subject.halt }
|
54
49
|
assert_raises(NotImplementedError){ subject.redirect }
|
@@ -20,7 +20,7 @@ class Deas::TemplateEngine
|
|
20
20
|
subject{ @engine }
|
21
21
|
|
22
22
|
should have_readers :source_path, :logger, :opts
|
23
|
-
should have_imeths :render, :partial, :
|
23
|
+
should have_imeths :render, :partial, :compile
|
24
24
|
|
25
25
|
should "default its source path" do
|
26
26
|
assert_equal Pathname.new(nil.to_s), subject.source_path
|
@@ -35,7 +35,7 @@ class Deas::TemplateEngine
|
|
35
35
|
assert_instance_of Deas::NullLogger, subject.logger
|
36
36
|
end
|
37
37
|
|
38
|
-
should "allow custom
|
38
|
+
should "allow custom loggers" do
|
39
39
|
logger = 'a-logger'
|
40
40
|
engine = Deas::TemplateEngine.new('logger' => logger)
|
41
41
|
assert_equal logger, engine.logger
|
@@ -63,9 +63,9 @@ class Deas::TemplateEngine
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
-
should "raise NotImplementedError on `
|
66
|
+
should "raise NotImplementedError on `compile`" do
|
67
67
|
assert_raises NotImplementedError do
|
68
|
-
subject.
|
68
|
+
subject.compile(@template_name, Factory.text)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -97,12 +97,6 @@ class Deas::TemplateEngine
|
|
97
97
|
assert_equal exp, subject.partial(exists_file, @l)
|
98
98
|
end
|
99
99
|
|
100
|
-
should "call `render` to implement its `capture_partial` method" do
|
101
|
-
exists_file = 'test/support/template.json'
|
102
|
-
exp = subject.render(exists_file, nil, @l)
|
103
|
-
assert_equal exp, subject.capture_partial(exists_file, @l, &@c)
|
104
|
-
end
|
105
|
-
|
106
100
|
should "complain if given a path that does not exist in its source path" do
|
107
101
|
no_exists_file = '/does/not/exists'
|
108
102
|
assert_raises ArgumentError do
|
@@ -111,9 +105,11 @@ class Deas::TemplateEngine
|
|
111
105
|
assert_raises ArgumentError do
|
112
106
|
subject.partial(no_exists_file, @l)
|
113
107
|
end
|
114
|
-
|
115
|
-
|
116
|
-
|
108
|
+
end
|
109
|
+
|
110
|
+
should "return any given content with its `compile` method" do
|
111
|
+
exp = Factory.string
|
112
|
+
assert_equal exp, subject.compile(Factory.path, exp)
|
117
113
|
end
|
118
114
|
|
119
115
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'assert'
|
2
2
|
require 'deas/template_source'
|
3
3
|
|
4
|
+
require 'deas/logger'
|
4
5
|
require 'deas/template_engine'
|
5
6
|
|
6
7
|
class Deas::TemplateSource
|
@@ -26,7 +27,7 @@ class Deas::TemplateSource
|
|
26
27
|
|
27
28
|
should have_readers :path, :engines
|
28
29
|
should have_imeths :engine, :engine_for?
|
29
|
-
should have_imeths :render, :partial
|
30
|
+
should have_imeths :render, :partial
|
30
31
|
|
31
32
|
should "know its path" do
|
32
33
|
assert_equal @source_path.to_s, subject.path
|
@@ -49,26 +50,30 @@ class Deas::TemplateSource
|
|
49
50
|
should "register with default options" do
|
50
51
|
subject.engine 'test', @test_engine
|
51
52
|
exp_opts = {
|
52
|
-
'source_path'
|
53
|
-
'logger'
|
53
|
+
'source_path' => subject.path,
|
54
|
+
'logger' => @logger,
|
55
|
+
'deas_template_source' => subject
|
54
56
|
}
|
55
57
|
assert_equal exp_opts, subject.engines['test'].opts
|
56
58
|
|
57
59
|
subject.engine 'test', @test_engine, 'an' => 'opt'
|
58
60
|
exp_opts = {
|
59
|
-
'source_path'
|
60
|
-
'logger'
|
61
|
-
'
|
61
|
+
'source_path' => subject.path,
|
62
|
+
'logger' => @logger,
|
63
|
+
'deas_template_source' => subject,
|
64
|
+
'an' => 'opt'
|
62
65
|
}
|
63
66
|
assert_equal exp_opts, subject.engines['test'].opts
|
64
67
|
|
65
68
|
subject.engine('test', @test_engine, {
|
66
|
-
'source_path'
|
67
|
-
'logger'
|
69
|
+
'source_path' => 'something',
|
70
|
+
'logger' => 'another',
|
71
|
+
'deas_template_source' => 'tempsource'
|
68
72
|
})
|
69
73
|
exp_opts = {
|
70
|
-
'source_path'
|
71
|
-
'logger'
|
74
|
+
'source_path' => 'something',
|
75
|
+
'logger' => 'another',
|
76
|
+
'deas_template_source' => 'tempsource'
|
72
77
|
}
|
73
78
|
assert_equal exp_opts, subject.engines['test'].opts
|
74
79
|
|
@@ -99,7 +104,7 @@ class Deas::TemplateSource
|
|
99
104
|
@source.engine('test', TestEngine)
|
100
105
|
@source.engine('json', JsonEngine)
|
101
106
|
|
102
|
-
@v =
|
107
|
+
@v = TestViewHandler.new
|
103
108
|
@l = {}
|
104
109
|
@c = Proc.new{}
|
105
110
|
end
|
@@ -110,15 +115,15 @@ class Deas::TemplateSource
|
|
110
115
|
desc "when rendering a template"
|
111
116
|
|
112
117
|
should "call `render` on the configured engine" do
|
113
|
-
|
114
|
-
assert_equal
|
118
|
+
exp = "render-test-engine on test_template\n"
|
119
|
+
assert_equal exp, subject.render('test_template', @v, @l)
|
115
120
|
end
|
116
121
|
|
117
122
|
should "only try rendering template files its has engines for" do
|
118
123
|
# there should be 2 files called "template" in `test/support` with diff
|
119
124
|
# extensions
|
120
|
-
|
121
|
-
assert_equal
|
125
|
+
exp = 'render-json-engine'
|
126
|
+
assert_equal exp, subject.render('template', @v, @l)
|
122
127
|
end
|
123
128
|
|
124
129
|
should "use the null template engine when an engine can't be found" do
|
@@ -129,47 +134,39 @@ class Deas::TemplateSource
|
|
129
134
|
|
130
135
|
end
|
131
136
|
|
132
|
-
class
|
133
|
-
desc "when
|
134
|
-
|
135
|
-
|
136
|
-
result = subject.partial('test_template', @l)
|
137
|
-
assert_equal 'partial-test-engine', result
|
138
|
-
end
|
139
|
-
|
140
|
-
should "only try rendering template files its has engines for" do
|
141
|
-
# there should be 2 files called "template" in `test/support` with diff
|
142
|
-
# extensions
|
143
|
-
result = subject.partial('template', @l)
|
144
|
-
assert_equal 'partial-json-engine', result
|
137
|
+
class RenderLayoutsTests < RenderOrPartialTests
|
138
|
+
desc "when rendering a template in layouts"
|
139
|
+
setup do
|
140
|
+
@v = LayoutViewHandler.new
|
145
141
|
end
|
146
142
|
|
147
|
-
should "
|
148
|
-
|
149
|
-
|
150
|
-
|
143
|
+
should "render view handlers with layouts" do
|
144
|
+
exp = "render-test-engine on test_layout1\n"\
|
145
|
+
"render-test-engine on test_layout2\n"\
|
146
|
+
"render-test-engine on test_template\n"
|
147
|
+
assert_equal exp, subject.render('test_template', @v, @l)
|
151
148
|
end
|
152
149
|
|
153
150
|
end
|
154
151
|
|
155
|
-
class
|
156
|
-
desc "when
|
152
|
+
class PartialTests < RenderTests
|
153
|
+
desc "when partial rendering a template"
|
157
154
|
|
158
|
-
should "call `
|
159
|
-
|
160
|
-
assert_equal
|
155
|
+
should "call `partial` on the configured engine" do
|
156
|
+
exp = "partial-test-engine\n"
|
157
|
+
assert_equal exp, subject.partial('test_template', @l)
|
161
158
|
end
|
162
159
|
|
163
160
|
should "only try rendering template files its has engines for" do
|
164
161
|
# there should be 2 files called "template" in `test/support` with diff
|
165
162
|
# extensions
|
166
|
-
|
167
|
-
assert_equal
|
163
|
+
exp = 'partial-json-engine'
|
164
|
+
assert_equal exp, subject.partial('template', @l)
|
168
165
|
end
|
169
166
|
|
170
167
|
should "use the null template engine when an engine can't be found" do
|
171
168
|
assert_raises(ArgumentError) do
|
172
|
-
subject.
|
169
|
+
subject.partial(Factory.string, @l)
|
173
170
|
end
|
174
171
|
end
|
175
172
|
|
@@ -193,11 +190,12 @@ class Deas::TemplateSource
|
|
193
190
|
end
|
194
191
|
|
195
192
|
class TestEngine < Deas::TemplateEngine
|
196
|
-
def render(template_name, view_handler, locals)
|
197
|
-
|
193
|
+
def render(template_name, view_handler, locals, &content)
|
194
|
+
"render-test-engine on #{template_name}\n" +
|
195
|
+
(content || proc{}).call.to_s
|
198
196
|
end
|
199
|
-
def partial(template_name, locals)
|
200
|
-
|
197
|
+
def partial(template_name, locals, &content)
|
198
|
+
"partial-test-engine\n" + (content || proc{}).call.to_s
|
201
199
|
end
|
202
200
|
def capture_partial(template_name, locals, &content)
|
203
201
|
'capture-partial-test-engine'
|
@@ -205,7 +203,7 @@ class Deas::TemplateSource
|
|
205
203
|
end
|
206
204
|
|
207
205
|
class JsonEngine < Deas::TemplateEngine
|
208
|
-
def render(template_name, view_handler, locals)
|
206
|
+
def render(template_name, view_handler, locals, &content)
|
209
207
|
'render-json-engine'
|
210
208
|
end
|
211
209
|
def partial(template_name, locals)
|
@@ -216,6 +214,12 @@ class Deas::TemplateSource
|
|
216
214
|
end
|
217
215
|
end
|
218
216
|
|
219
|
-
|
217
|
+
TestViewHandler = Class.new do
|
218
|
+
def self.layouts; []; end
|
219
|
+
end
|
220
|
+
|
221
|
+
LayoutViewHandler = Class.new do
|
222
|
+
def self.layouts; ['test_layout1', 'test_layout2']; end
|
223
|
+
end
|
220
224
|
|
221
225
|
end
|
@@ -11,6 +11,7 @@ class Deas::TestRunner
|
|
11
11
|
class UnitTests < Assert::Context
|
12
12
|
desc "Deas::TestRunner"
|
13
13
|
setup do
|
14
|
+
@handler_class = TestRunnerViewHandler
|
14
15
|
@runner_class = Deas::TestRunner
|
15
16
|
end
|
16
17
|
subject{ @runner_class }
|
@@ -26,25 +27,31 @@ class Deas::TestRunner
|
|
26
27
|
setup do
|
27
28
|
@params = { 'value' => '1' }
|
28
29
|
@args = {
|
29
|
-
:request
|
30
|
-
:response
|
31
|
-
:session
|
32
|
-
:params
|
33
|
-
:logger
|
34
|
-
:router
|
30
|
+
:request => 'a-request',
|
31
|
+
:response => 'a-response',
|
32
|
+
:session => 'a-session',
|
33
|
+
:params => @params,
|
34
|
+
:logger => 'a-logger',
|
35
|
+
:router => 'a-router',
|
35
36
|
:template_source => 'a-source'
|
36
37
|
}
|
37
38
|
|
38
39
|
@norm_params_spy = Deas::Runner::NormalizedParamsSpy.new
|
39
40
|
Assert.stub(NormalizedParams, :new){ |p| @norm_params_spy.new(p) }
|
40
41
|
|
41
|
-
@runner = @runner_class.new(
|
42
|
+
@runner = @runner_class.new(@handler_class, @args)
|
42
43
|
end
|
43
44
|
subject{ @runner }
|
44
45
|
|
45
46
|
should have_readers :return_value
|
46
47
|
should have_imeths :run
|
47
48
|
|
49
|
+
should "raise an invalid error when not passed a view handler" do
|
50
|
+
assert_raises(Deas::InvalidServiceHandlerError) do
|
51
|
+
@runner_class.new(Class.new)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
48
55
|
should "super its standard args" do
|
49
56
|
assert_equal 'a-request', subject.request
|
50
57
|
assert_equal 'a-response', subject.response
|
@@ -61,10 +68,18 @@ class Deas::TestRunner
|
|
61
68
|
end
|
62
69
|
|
63
70
|
should "write any non-standard args on the handler" do
|
64
|
-
runner = @runner_class.new(
|
71
|
+
runner = @runner_class.new(@handler_class, :custom_value => 42)
|
65
72
|
assert_equal 42, runner.handler.custom_value
|
66
73
|
end
|
67
74
|
|
75
|
+
should "not have called its service handlers before callbacks" do
|
76
|
+
assert_not_true subject.handler.before_called
|
77
|
+
end
|
78
|
+
|
79
|
+
should "have called init on its service handler" do
|
80
|
+
assert_true subject.handler.init_called
|
81
|
+
end
|
82
|
+
|
68
83
|
should "not set a return value on initialize" do
|
69
84
|
assert_nil subject.return_value
|
70
85
|
end
|
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: 107
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 29
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.29.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2015-01-08 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -164,6 +164,8 @@ files:
|
|
164
164
|
- test/support/routes.rb
|
165
165
|
- test/support/template.erb
|
166
166
|
- test/support/template.json
|
167
|
+
- test/support/test_layout1.test
|
168
|
+
- test/support/test_layout2.test
|
167
169
|
- test/support/test_template.test
|
168
170
|
- test/support/view_handlers.rb
|
169
171
|
- test/support/views/_info.erb
|
@@ -244,6 +246,8 @@ test_files:
|
|
244
246
|
- test/support/routes.rb
|
245
247
|
- test/support/template.erb
|
246
248
|
- test/support/template.json
|
249
|
+
- test/support/test_layout1.test
|
250
|
+
- test/support/test_layout2.test
|
247
251
|
- test/support/test_template.test
|
248
252
|
- test/support/view_handlers.rb
|
249
253
|
- test/support/views/_info.erb
|