curlybars 1.1.3 → 1.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52c29c45b57f92100b013838beeedfbf90786f38c53b16a80b5e8ce9c9375370
4
- data.tar.gz: f3cb2ae061d3e34108f744ae194bbb2a73e87f189f99c672f76c29f91d330452
3
+ metadata.gz: d425b234907702e06326b091a5dd9bea96d8a5494796e122ee77c56a79dd63ae
4
+ data.tar.gz: c23f25a52b8c252ebb5aae349c01faefb7daff9e3e8a112e12f676249ad21f23
5
5
  SHA512:
6
- metadata.gz: 6506b677a75fcb692fdb89d65f959978287572a8149c77b2eb1035312a4dbd951e88cf4293a98a19da7beca6557f48c61ce5ac733d6cb37cf56c8ba17118a6bc
7
- data.tar.gz: a3b173d94eebaac12907d143b01e8a28a07169ba23dc4c93502f452a76d95dac931c91ddb95cdd90951d8042cab73ff4c71e6181c11b5cce93598ea5216faac1
6
+ metadata.gz: 63657e140e3377cea321adfb20ff4ff1445e1bb00901e49e5f9b095f65b25b6d89cd2ef814e425f9abc7b0ed62d4d003c52459f8f7810943359f9160a9c64b7a
7
+ data.tar.gz: 077401e926e847f7ee34df7ebce3a0323ae57c9ce6daa8454b67bc6ce6785807cfe96dfcdf406f8a7928f2d2ba992e344d8a7a8581f32c55e3f0459a82dd1f94
@@ -1,22 +1,16 @@
1
1
  require 'curlybars/template_handler'
2
2
  require 'curlybars/dependency_tracker'
3
+ require 'action_view/dependency_tracker'
3
4
 
4
5
  module Curlybars
5
6
  class Railtie < Rails::Railtie
6
7
  initializer 'curlybars.initialize_template_handler' do
7
8
  ActionView::Template.register_template_handler(:hbs, Curlybars::TemplateHandler)
9
+ ActionView::DependencyTracker.register_tracker(:hbs, Curlybars::DependencyTracker)
8
10
  end
9
11
 
10
12
  initializer 'curlybars.set_cache' do
11
13
  Curlybars.cache = Rails.cache
12
14
  end
13
-
14
- if defined?(CacheDigests::DependencyTracker)
15
- CacheDigests::DependencyTracker.register_tracker :hbs, Curlybars::DependencyTracker
16
- end
17
-
18
- if defined?(ActionView::DependencyTracker)
19
- ActionView::DependencyTracker.register_tracker :hbs, Curlybars::DependencyTracker
20
- end
21
15
  end
22
16
  end
@@ -1,3 +1,3 @@
1
1
  module Curlybars
2
- VERSION = '1.1.3'.freeze
2
+ VERSION = '1.1.4'.freeze
3
3
  end
@@ -71,7 +71,7 @@ describe Curlybars::RenderingSupport do
71
71
  describe "#path" do
72
72
  it "returns the method in the current context" do
73
73
  allow_all_methods(presenter)
74
- allow(presenter).to receive(:method) { :method }
74
+ allow(presenter).to receive(:method).and_return(:method)
75
75
 
76
76
  expect(rendering.path('method', rendering.position(0, 1))).to eq :method
77
77
  end
@@ -79,7 +79,7 @@ describe Curlybars::RenderingSupport do
79
79
  it "returns the sub presenter method in the current context" do
80
80
  sub = double(:sub_presenter)
81
81
  allow_all_methods(sub)
82
- allow(sub).to receive(:method) { :method }
82
+ allow(sub).to receive(:method).and_return(:method)
83
83
 
84
84
  allow_all_methods(presenter)
85
85
  allow(presenter).to receive(:sub) { sub }
@@ -100,7 +100,7 @@ describe Curlybars::RenderingSupport do
100
100
 
101
101
  it "raises an exception when the method is not allowed" do
102
102
  disallow_all_methods(presenter)
103
- allow(presenter).to receive(:forbidden_method) { :forbidden_method }
103
+ allow(presenter).to receive(:forbidden_method).and_return(:forbidden_method)
104
104
 
105
105
  expect do
106
106
  rendering.path('forbidden_method', rendering.position(0, 1))
@@ -109,7 +109,7 @@ describe Curlybars::RenderingSupport do
109
109
 
110
110
  it "exposes the unallowed method in the exception payload" do
111
111
  disallow_all_methods(presenter)
112
- allow(presenter).to receive(:forbidden_method) { :forbidden_method }
112
+ allow(presenter).to receive(:forbidden_method).and_return(:forbidden_method)
113
113
 
114
114
  begin
115
115
  rendering.path('forbidden_method', rendering.position(0, 1))
@@ -130,10 +130,10 @@ describe Curlybars::RenderingSupport do
130
130
  it "refers to the second to last presenter in the stack when using `../`" do
131
131
  sub = double(:sub_presenter)
132
132
  allow_all_methods(sub)
133
- allow(sub).to receive(:method) { :sub_method }
133
+ allow(sub).to receive(:method).and_return(:sub_method)
134
134
 
135
135
  allow_all_methods(presenter)
136
- allow(presenter).to receive(:method) { :root_method }
136
+ allow(presenter).to receive(:method).and_return(:root_method)
137
137
 
138
138
  contexts.push(sub)
139
139
 
@@ -143,14 +143,14 @@ describe Curlybars::RenderingSupport do
143
143
  it "refers to the third to last presenter in the stack when using `../../`" do
144
144
  sub_sub = double(:sub_presenter)
145
145
  allow_all_methods(sub_sub)
146
- allow(sub_sub).to receive(:method) { :sub_sub_method }
146
+ allow(sub_sub).to receive(:method).and_return(:sub_sub_method)
147
147
 
148
148
  sub = double(:sub_presenter)
149
149
  allow_all_methods(sub)
150
- allow(sub).to receive(:method) { :sub_method }
150
+ allow(sub).to receive(:method).and_return(:sub_method)
151
151
 
152
152
  allow_all_methods(presenter)
153
- allow(presenter).to receive(:method) { :root_method }
153
+ allow(presenter).to receive(:method).and_return(:root_method)
154
154
 
155
155
  contexts.push(sub)
156
156
  contexts.push(sub_sub)
@@ -160,7 +160,7 @@ describe Curlybars::RenderingSupport do
160
160
 
161
161
  it "returns a method that returns nil, if nil is returned from any method in the chain (except the latter)" do
162
162
  allow_all_methods(presenter)
163
- allow(presenter).to receive(:returns_nil) { nil }
163
+ allow(presenter).to receive(:returns_nil).and_return(nil)
164
164
 
165
165
  outcome = rendering.path('returns_nil.another_method', rendering.position(0, 1)).call
166
166
  expect(outcome).to be_nil
@@ -417,10 +417,10 @@ describe Curlybars::RenderingSupport do
417
417
  private
418
418
 
419
419
  def allow_all_methods(presenter)
420
- allow(presenter).to receive(:allows_method?) { true }
420
+ allow(presenter).to receive(:allows_method?).and_return(true)
421
421
  end
422
422
 
423
423
  def disallow_all_methods(presenter)
424
- allow(presenter).to receive(:allows_method?) { false }
424
+ allow(presenter).to receive(:allows_method?).and_return(false)
425
425
  end
426
426
  end
@@ -17,7 +17,7 @@ describe Curlybars::SafeBuffer do
17
17
 
18
18
  describe "#concat" do
19
19
  it "accepts when (buffer length + the existing output lenght) <= output_limit" do
20
- allow(configuration).to receive(:output_limit) { 10 }
20
+ allow(configuration).to receive(:output_limit).and_return(10)
21
21
 
22
22
  buffer = Curlybars::SafeBuffer.new('*' * 5)
23
23
 
@@ -27,7 +27,7 @@ describe Curlybars::SafeBuffer do
27
27
  end
28
28
 
29
29
  it "raises when (buffer length + the existing output lenght) > output_limit" do
30
- allow(configuration).to receive(:output_limit) { 10 }
30
+ allow(configuration).to receive(:output_limit).and_return(10)
31
31
  buffer = Curlybars::SafeBuffer.new('*' * 10)
32
32
 
33
33
  expect do
@@ -36,7 +36,7 @@ describe Curlybars::SafeBuffer do
36
36
  end
37
37
 
38
38
  it "raises when buffer length > output_limit" do
39
- allow(configuration).to receive(:output_limit) { 10 }
39
+ allow(configuration).to receive(:output_limit).and_return(10)
40
40
 
41
41
  expect do
42
42
  Curlybars::SafeBuffer.new.concat('*' * 11)
@@ -113,44 +113,44 @@ describe Curlybars::TemplateHandler do
113
113
  end
114
114
 
115
115
  it "passes in the presenter context to the presenter class" do
116
- allow(context).to receive(:bar) { "BAR" }
117
- allow(template).to receive(:source) { "{{bar}}" }
116
+ allow(context).to receive(:bar).and_return("BAR")
117
+ allow(template).to receive(:source).and_return("{{bar}}")
118
118
  expect(output).to eq("BAR")
119
119
  end
120
120
 
121
121
  it "fails if there's no matching presenter class" do
122
- allow(template).to receive(:virtual_path) { "missing" }
123
- allow(template).to receive(:source) { " FOO " }
122
+ allow(template).to receive(:virtual_path).and_return("missing")
123
+ allow(template).to receive(:source).and_return(" FOO ")
124
124
  expect { output }.to raise_exception(Curlybars::Error::Presenter::NotFound)
125
125
  end
126
126
 
127
127
  it "allows calling public methods on the presenter" do
128
- allow(template).to receive(:source) { "{{foo}}" }
128
+ allow(template).to receive(:source).and_return("{{foo}}")
129
129
  expect(output).to eq("FOO")
130
130
  end
131
131
 
132
132
  it "marks its output as HTML safe" do
133
- allow(template).to receive(:source) { "{{foo}}" }
133
+ allow(template).to receive(:source).and_return("{{foo}}")
134
134
  expect(output).to be_html_safe
135
135
  end
136
136
 
137
137
  it "calls the #setup! method before rendering the view" do
138
- allow(template).to receive(:source) { "{{foo}}" }
138
+ allow(template).to receive(:source).and_return("{{foo}}")
139
139
  output
140
140
  expect(context.content_for(:foo)).to eq("bar")
141
141
  end
142
142
 
143
143
  describe "caching" do
144
144
  before do
145
- allow(template).to receive(:source) { "{{bar}}" }
146
- allow(context).to receive(:bar) { "BAR" }
145
+ allow(template).to receive(:source).and_return("{{bar}}")
146
+ allow(context).to receive(:bar).and_return("BAR")
147
147
  end
148
148
 
149
149
  it "caches the result with the #cache_key from the presenter" do
150
150
  context.assigns[:cache_key] = "x"
151
151
  expect(output).to eq("BAR")
152
152
 
153
- allow(context).to receive(:bar) { "BAZ" }
153
+ allow(context).to receive(:bar).and_return("BAZ")
154
154
  expect(output).to eq("BAR")
155
155
 
156
156
  context.assigns[:cache_key] = "y"
@@ -161,7 +161,7 @@ describe Curlybars::TemplateHandler do
161
161
  context.assigns[:cache_key] = nil
162
162
  expect(output).to eq("BAR")
163
163
 
164
- allow(context).to receive(:bar) { "BAZ" }
164
+ allow(context).to receive(:bar).and_return("BAZ")
165
165
  expect(output).to eq("BAZ")
166
166
  end
167
167
 
@@ -169,13 +169,13 @@ describe Curlybars::TemplateHandler do
169
169
  # Make sure caching is enabled
170
170
  context.assigns[:cache_key] = "x"
171
171
 
172
- allow(presenter_class).to receive(:cache_key) { "foo" }
172
+ allow(presenter_class).to receive(:cache_key).and_return("foo")
173
173
 
174
174
  expect(output).to eq("BAR")
175
175
 
176
- allow(presenter_class).to receive(:cache_key) { "bar" }
176
+ allow(presenter_class).to receive(:cache_key).and_return("bar")
177
177
 
178
- allow(context).to receive(:bar) { "FOOBAR" }
178
+ allow(context).to receive(:bar).and_return("FOOBAR")
179
179
  expect(output).to eq("FOOBAR")
180
180
  end
181
181
 
@@ -185,7 +185,7 @@ describe Curlybars::TemplateHandler do
185
185
 
186
186
  expect(output).to eq("BAR")
187
187
 
188
- allow(context).to receive(:bar) { "FOO" }
188
+ allow(context).to receive(:bar).and_return("FOO")
189
189
 
190
190
  # Cached fragment has not yet expired.
191
191
  context.advance_clock(41)
@@ -202,7 +202,7 @@ describe Curlybars::TemplateHandler do
202
202
 
203
203
  expect(output).to eq("BAR")
204
204
 
205
- allow(context).to receive(:bar) { "FOO" }
205
+ allow(context).to receive(:bar).and_return("FOO")
206
206
 
207
207
  # Cached fragment has not yet expired.
208
208
  context.advance_clock(41)
@@ -233,7 +233,7 @@ describe "{{#helper arg1 arg2 ... key=value ...}}...<{{else}}>...{{/helper}}" do
233
233
  let(:presenter_class) { double(:presenter_class) }
234
234
 
235
235
  it "without errors when global helper" do
236
- allow(Curlybars.configuration).to receive(:global_helpers_provider_classes) { [IntegrationTest::GlobalHelperProvider] }
236
+ allow(Curlybars.configuration).to receive(:global_helpers_provider_classes).and_return([IntegrationTest::GlobalHelperProvider])
237
237
 
238
238
  dependency_tree = {}
239
239
 
@@ -6,7 +6,7 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "uses each_template when collection is not empty" do
9
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
9
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
10
10
  allow(presenter).to receive(:non_empty_collection) { [presenter] }
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
@@ -23,8 +23,8 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
23
23
  end
24
24
 
25
25
  it "uses else_template when collection is empty" do
26
- allow(presenter).to receive(:allows_method?).with(:empty_collection) { true }
27
- allow(presenter).to receive(:empty_collection) { [] }
26
+ allow(presenter).to receive(:allows_method?).with(:empty_collection).and_return(true)
27
+ allow(presenter).to receive(:empty_collection).and_return([])
28
28
 
29
29
  template = Curlybars.compile(<<-HBS)
30
30
  {{#each empty_collection}}
@@ -51,7 +51,7 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
51
51
  a_path_presenter = path_presenter_class.new(nil, path: 'a_path')
52
52
  another_path_presenter = path_presenter_class.new(nil, path: 'another_path')
53
53
 
54
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
54
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
55
55
  allow(presenter).to receive(:non_empty_collection) { [a_path_presenter, another_path_presenter] }
56
56
 
57
57
  template = Curlybars.compile(<<-HBS)
@@ -69,8 +69,8 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
69
69
  end
70
70
 
71
71
  it "allows empty each_template" do
72
- allow(presenter).to receive(:allows_method?).with(:empty_collection) { true }
73
- allow(presenter).to receive(:empty_collection) { [] }
72
+ allow(presenter).to receive(:allows_method?).with(:empty_collection).and_return(true)
73
+ allow(presenter).to receive(:empty_collection).and_return([])
74
74
 
75
75
  template = Curlybars.compile(<<-HBS)
76
76
  {{#each empty_collection}}{{else}}
@@ -84,7 +84,7 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
84
84
  end
85
85
 
86
86
  it "allows empty else_template" do
87
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
87
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
88
88
  allow(presenter).to receive(:non_empty_collection) { [presenter] }
89
89
 
90
90
  template = Curlybars.compile(<<-HBS)
@@ -99,7 +99,7 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
99
99
  end
100
100
 
101
101
  it "allows empty each_template and else_template" do
102
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
102
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
103
103
  allow(presenter).to receive(:non_empty_collection) { [presenter] }
104
104
 
105
105
  template = Curlybars.compile(<<-HBS)
@@ -124,8 +124,8 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
124
124
  end
125
125
 
126
126
  it "raises an error if the context is not an array-like object" do
127
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:not_a_collection) { true }
128
- allow(presenter).to receive(:not_a_collection) { "string" }
127
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:not_a_collection).and_return(true)
128
+ allow(presenter).to receive(:not_a_collection).and_return("string")
129
129
 
130
130
  template = Curlybars.compile(<<-HBS)
131
131
  {{#each not_a_collection}}{{else}}{{/each}}
@@ -137,8 +137,8 @@ describe "{{#each collection}}...{{else}}...{{/each}}" do
137
137
  end
138
138
 
139
139
  it "raises an error if the objects inside of the context array are not presenters" do
140
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:not_a_presenter_collection) { true }
141
- allow(presenter).to receive(:not_a_presenter_collection) { [:an_element] }
140
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:not_a_presenter_collection).and_return(true)
141
+ allow(presenter).to receive(:not_a_presenter_collection).and_return([:an_element])
142
142
 
143
143
  template = Curlybars.compile(<<-HBS)
144
144
  {{#each not_a_presenter_collection}}{{else}}{{/each}}
@@ -6,7 +6,7 @@ describe "{{#each collection}}...{{/each}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "uses each_template when collection is not empty" do
9
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
9
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
10
10
  allow(presenter).to receive(:non_empty_collection) { [presenter] }
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
@@ -21,8 +21,8 @@ describe "{{#each collection}}...{{/each}}" do
21
21
  end
22
22
 
23
23
  it "doesn't use each_template when collection is empty" do
24
- allow(presenter).to receive(:allows_method?).with(:empty_collection) { true }
25
- allow(presenter).to receive(:empty_collection) { [] }
24
+ allow(presenter).to receive(:allows_method?).with(:empty_collection).and_return(true)
25
+ allow(presenter).to receive(:empty_collection).and_return([])
26
26
 
27
27
  template = Curlybars.compile(<<-HBS)
28
28
  {{#each empty_collection}}
@@ -34,7 +34,7 @@ describe "{{#each collection}}...{{/each}}" do
34
34
  end
35
35
 
36
36
  it "allows empty each_template" do
37
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
37
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
38
38
  allow(presenter).to receive(:non_empty_collection) { [presenter] }
39
39
 
40
40
  template = Curlybars.compile(<<-HBS)
@@ -56,7 +56,7 @@ describe "{{#each collection}}...{{/each}}" do
56
56
  a_path_presenter = path_presenter_class.new(nil, path: 'a_path')
57
57
  another_path_presenter = path_presenter_class.new(nil, path: 'another_path')
58
58
 
59
- allow(presenter).to receive(:allows_method?).with(:non_empty_collection) { true }
59
+ allow(presenter).to receive(:allows_method?).with(:non_empty_collection).and_return(true)
60
60
  allow(presenter).to receive(:non_empty_collection) { [a_path_presenter, another_path_presenter] }
61
61
 
62
62
  template = Curlybars.compile(<<-HBS)
@@ -83,7 +83,7 @@ describe "{{#each collection}}...{{/each}}" do
83
83
  a_path_presenter = path_presenter_class.new(nil, path: 'a_path')
84
84
  another_path_presenter = path_presenter_class.new(nil, path: 'another_path')
85
85
 
86
- allow(presenter).to receive(:allows_method?).with(:non_empty_hash) { true }
86
+ allow(presenter).to receive(:allows_method?).with(:non_empty_hash).and_return(true)
87
87
  allow(presenter).to receive(:non_empty_hash) do
88
88
  { first: a_path_presenter, second: another_path_presenter }
89
89
  end
@@ -101,8 +101,8 @@ describe "{{#each collection}}...{{/each}}" do
101
101
  end
102
102
 
103
103
  it "raises an error if the context is not an array-like object" do
104
- allow(presenter).to receive(:allows_method?).with(:not_a_collection) { true }
105
- allow(presenter).to receive(:not_a_collection) { "string" }
104
+ allow(presenter).to receive(:allows_method?).with(:not_a_collection).and_return(true)
105
+ allow(presenter).to receive(:not_a_collection).and_return("string")
106
106
 
107
107
  template = Curlybars.compile(<<-HBS)
108
108
  {{#each not_a_collection}}{{/each}}
@@ -206,7 +206,7 @@ describe "{{#each collection}}...{{/each}}" do
206
206
  a_path_presenter = path_presenter_class.new(nil, path: 'a_path')
207
207
  another_path_presenter = path_presenter_class.new(nil, path: 'another_path')
208
208
 
209
- allow(presenter).to receive(:allows_method?).with(:non_empty_hash) { true }
209
+ allow(presenter).to receive(:allows_method?).with(:non_empty_hash).and_return(true)
210
210
  allow(presenter).to receive(:non_empty_hash) do
211
211
  { first: a_path_presenter, second: another_path_presenter }
212
212
  end
@@ -224,8 +224,8 @@ describe "{{#each collection}}...{{/each}}" do
224
224
  end
225
225
 
226
226
  it "raises an error if the objects inside of the context array are not presenters" do
227
- allow(presenter).to receive(:allows_method?).with(:not_a_presenter_collection) { true }
228
- allow(presenter).to receive(:not_a_presenter_collection) { [:an_element] }
227
+ allow(presenter).to receive(:allows_method?).with(:not_a_presenter_collection).and_return(true)
228
+ allow(presenter).to receive(:not_a_presenter_collection).and_return([:an_element])
229
229
 
230
230
  template = Curlybars.compile(<<-HBS)
231
231
  {{#each not_a_presenter_collection}}{{/each}}
@@ -6,8 +6,8 @@ describe "{{#if}}...{{else}}...{{/if}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "renders the if_template" do
9
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:return_true) { true }
10
- allow(presenter).to receive(:return_true) { true }
9
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:return_true).and_return(true)
10
+ allow(presenter).to receive(:return_true).and_return(true)
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
13
13
  {{#if return_true}}
@@ -23,8 +23,8 @@ describe "{{#if}}...{{else}}...{{/if}}" do
23
23
  end
24
24
 
25
25
  it "renders the else_template" do
26
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:return_false) { true }
27
- allow(presenter).to receive(:return_false) { false }
26
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:return_false).and_return(true)
27
+ allow(presenter).to receive(:return_false).and_return(false)
28
28
 
29
29
  template = Curlybars.compile(<<-HBS)
30
30
  {{#if return_false}}
@@ -40,8 +40,8 @@ describe "{{#if}}...{{else}}...{{/if}}" do
40
40
  end
41
41
 
42
42
  it "allows empty if_template" do
43
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid) { true }
44
- allow(presenter).to receive(:valid) { false }
43
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid).and_return(true)
44
+ allow(presenter).to receive(:valid).and_return(false)
45
45
 
46
46
  template = Curlybars.compile(<<-HBS)
47
47
  {{#if valid}}{{else}}
@@ -55,8 +55,8 @@ describe "{{#if}}...{{else}}...{{/if}}" do
55
55
  end
56
56
 
57
57
  it "allows empty else_template" do
58
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid) { true }
59
- allow(presenter).to receive(:valid) { true }
58
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid).and_return(true)
59
+ allow(presenter).to receive(:valid).and_return(true)
60
60
 
61
61
  template = Curlybars.compile(<<-HBS)
62
62
  {{#if valid}}
@@ -70,8 +70,8 @@ describe "{{#if}}...{{else}}...{{/if}}" do
70
70
  end
71
71
 
72
72
  it "allows empty if_template and else_template" do
73
- allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid) { true }
74
- allow(presenter).to receive(:valid) { true }
73
+ allow(IntegrationTest::Presenter).to receive(:allows_method?).with(:valid).and_return(true)
74
+ allow(presenter).to receive(:valid).and_return(true)
75
75
 
76
76
  template = Curlybars.compile(<<-HBS)
77
77
  {{#if valid}}{{else}}{{/if}}
@@ -6,8 +6,8 @@ describe "{{#if}}...{{/if}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "returns positive branch when condition is true" do
9
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
10
- allow(presenter).to receive(:valid) { true }
9
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
10
+ allow(presenter).to receive(:valid).and_return(true)
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
13
13
  {{#if valid}}
@@ -21,8 +21,8 @@ describe "{{#if}}...{{/if}}" do
21
21
  end
22
22
 
23
23
  it "doesn't return positive branch when condition is false" do
24
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
25
- allow(presenter).to receive(:valid) { false }
24
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
25
+ allow(presenter).to receive(:valid).and_return(false)
26
26
 
27
27
  template = Curlybars.compile(<<-HBS)
28
28
  {{#if valid}}
@@ -34,8 +34,8 @@ describe "{{#if}}...{{/if}}" do
34
34
  end
35
35
 
36
36
  it "doesn't return positive branch when condition is empty array" do
37
- allow(presenter).to receive(:allows_method?).with(:collection) { true }
38
- allow(presenter).to receive(:collection) { [] }
37
+ allow(presenter).to receive(:allows_method?).with(:collection).and_return(true)
38
+ allow(presenter).to receive(:collection).and_return([])
39
39
 
40
40
  template = Curlybars.compile(<<-HBS)
41
41
  {{#if collection}}
@@ -47,10 +47,10 @@ describe "{{#if}}...{{/if}}" do
47
47
  end
48
48
 
49
49
  it "works with nested `if blocks` (double positive)" do
50
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
51
- allow(presenter).to receive(:allows_method?).with(:visible) { true }
52
- allow(presenter).to receive(:valid) { true }
53
- allow(presenter).to receive(:visible) { true }
50
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
51
+ allow(presenter).to receive(:allows_method?).with(:visible).and_return(true)
52
+ allow(presenter).to receive(:valid).and_return(true)
53
+ allow(presenter).to receive(:visible).and_return(true)
54
54
 
55
55
  template = Curlybars.compile(<<-HBS)
56
56
  {{#if valid}}
@@ -68,10 +68,10 @@ describe "{{#if}}...{{/if}}" do
68
68
  end
69
69
 
70
70
  it "works with nested `if blocks` (positive and negative)" do
71
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
72
- allow(presenter).to receive(:allows_method?).with(:visible) { true }
73
- allow(presenter).to receive(:valid) { true }
74
- allow(presenter).to receive(:visible) { false }
71
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
72
+ allow(presenter).to receive(:allows_method?).with(:visible).and_return(true)
73
+ allow(presenter).to receive(:valid).and_return(true)
74
+ allow(presenter).to receive(:visible).and_return(false)
75
75
 
76
76
  template = Curlybars.compile(<<-HBS)
77
77
  {{#if valid}}
@@ -88,8 +88,8 @@ describe "{{#if}}...{{/if}}" do
88
88
  end
89
89
 
90
90
  it "allows empty if_template" do
91
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
92
- allow(presenter).to receive(:valid) { true }
91
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
92
+ allow(presenter).to receive(:valid).and_return(true)
93
93
 
94
94
  template = Curlybars.compile(<<-HBS)
95
95
  {{#if valid}}{{/if}}
@@ -6,8 +6,8 @@ describe "{{#unless}}...{{else}}...{{/unless}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "renders the unless_template" do
9
- allow(presenter).to receive(:allows_method?).with(:condition) { true }
10
- allow(presenter).to receive(:condition) { false }
9
+ allow(presenter).to receive(:allows_method?).with(:condition).and_return(true)
10
+ allow(presenter).to receive(:condition).and_return(false)
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
13
13
  {{#unless condition}}
@@ -23,8 +23,8 @@ describe "{{#unless}}...{{else}}...{{/unless}}" do
23
23
  end
24
24
 
25
25
  it "renders the else_template" do
26
- allow(presenter).to receive(:allows_method?).with(:condition) { true }
27
- allow(presenter).to receive(:condition) { true }
26
+ allow(presenter).to receive(:allows_method?).with(:condition).and_return(true)
27
+ allow(presenter).to receive(:condition).and_return(true)
28
28
 
29
29
  template = Curlybars.compile(<<-HBS)
30
30
  {{#unless condition}}
@@ -40,8 +40,8 @@ describe "{{#unless}}...{{else}}...{{/unless}}" do
40
40
  end
41
41
 
42
42
  it "allows empty else_template" do
43
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
44
- allow(presenter).to receive(:valid) { false }
43
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
44
+ allow(presenter).to receive(:valid).and_return(false)
45
45
 
46
46
  template = Curlybars.compile(<<-HBS)
47
47
  {{#unless valid}}
@@ -55,8 +55,8 @@ describe "{{#unless}}...{{else}}...{{/unless}}" do
55
55
  end
56
56
 
57
57
  it "allows empty unless_template" do
58
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
59
- allow(presenter).to receive(:valid) { true }
58
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
59
+ allow(presenter).to receive(:valid).and_return(true)
60
60
 
61
61
  template = Curlybars.compile(<<-HBS)
62
62
  {{#unless valid}}{{else}}
@@ -70,8 +70,8 @@ describe "{{#unless}}...{{else}}...{{/unless}}" do
70
70
  end
71
71
 
72
72
  it "allows empty unless_template and else_template" do
73
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
74
- allow(presenter).to receive(:valid) { false }
73
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
74
+ allow(presenter).to receive(:valid).and_return(false)
75
75
 
76
76
  template = Curlybars.compile(<<-HBS)
77
77
  {{#unless valid}}{{else}}{{/unless}}
@@ -6,8 +6,8 @@ describe "{{#unless}}...{{/unless}}" do
6
6
  let(:presenter) { IntegrationTest::Presenter.new(double("view_context"), post: post) }
7
7
 
8
8
  it "returns unless_template when condition is false" do
9
- allow(presenter).to receive(:allows_method?).with(:condition) { true }
10
- allow(presenter).to receive(:condition) { false }
9
+ allow(presenter).to receive(:allows_method?).with(:condition).and_return(true)
10
+ allow(presenter).to receive(:condition).and_return(false)
11
11
 
12
12
  template = Curlybars.compile(<<-HBS)
13
13
  {{#unless condition}}
@@ -21,8 +21,8 @@ describe "{{#unless}}...{{/unless}}" do
21
21
  end
22
22
 
23
23
  it "doesn't return unless_template when condition is true" do
24
- allow(presenter).to receive(:allows_method?).with(:condition) { true }
25
- allow(presenter).to receive(:condition) { true }
24
+ allow(presenter).to receive(:allows_method?).with(:condition).and_return(true)
25
+ allow(presenter).to receive(:condition).and_return(true)
26
26
 
27
27
  template = Curlybars.compile(<<-HBS)
28
28
  {{#unless condition}}
@@ -34,10 +34,10 @@ describe "{{#unless}}...{{/unless}}" do
34
34
  end
35
35
 
36
36
  it "works with nested unless blocks (double negative)" do
37
- allow(presenter).to receive(:allows_method?).with(:first_condition) { true }
38
- allow(presenter).to receive(:allows_method?).with(:second_condition) { true }
39
- allow(presenter).to receive(:first_condition) { false }
40
- allow(presenter).to receive(:second_condition) { false }
37
+ allow(presenter).to receive(:allows_method?).with(:first_condition).and_return(true)
38
+ allow(presenter).to receive(:allows_method?).with(:second_condition).and_return(true)
39
+ allow(presenter).to receive(:first_condition).and_return(false)
40
+ allow(presenter).to receive(:second_condition).and_return(false)
41
41
 
42
42
  template = Curlybars.compile(<<-HBS)
43
43
  {{#unless first_condition}}
@@ -55,8 +55,8 @@ describe "{{#unless}}...{{/unless}}" do
55
55
  end
56
56
 
57
57
  it "allows empty unless_template" do
58
- allow(presenter).to receive(:allows_method?).with(:valid) { true }
59
- allow(presenter).to receive(:valid) { true }
58
+ allow(presenter).to receive(:allows_method?).with(:valid).and_return(true)
59
+ allow(presenter).to receive(:valid).and_return(true)
60
60
 
61
61
  template = Curlybars.compile(<<-HBS)
62
62
  {{#unless valid}}{{/unless}}
@@ -66,10 +66,10 @@ describe "{{#unless}}...{{/unless}}" do
66
66
  end
67
67
 
68
68
  it "works with nested unless blocks (negative and positive)" do
69
- allow(presenter).to receive(:allows_method?).with(:first_condition) { true }
70
- allow(presenter).to receive(:allows_method?).with(:second_condition) { true }
71
- allow(presenter).to receive(:first_condition) { false }
72
- allow(presenter).to receive(:second_condition) { true }
69
+ allow(presenter).to receive(:allows_method?).with(:first_condition).and_return(true)
70
+ allow(presenter).to receive(:allows_method?).with(:second_condition).and_return(true)
71
+ allow(presenter).to receive(:first_condition).and_return(false)
72
+ allow(presenter).to receive(:second_condition).and_return(true)
73
73
 
74
74
  template = Curlybars.compile(<<-HBS)
75
75
  {{#unless first_condition}}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curlybars
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Libo Cannici
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-10-02 00:00:00.000000000 Z
16
+ date: 2018-10-25 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: actionpack