building-blocks 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +9 -1
- data/VERSION +1 -1
- data/lib/building_blocks/base.rb +122 -2
- data/spec/building-blocks/base_spec.rb +30 -45
- metadata +18 -4
data/CHANGELOG.rdoc
CHANGED
@@ -10,4 +10,12 @@
|
|
10
10
|
* Changed prototype for "use" method, such that the name of the block being rendered is now a required parameter.
|
11
11
|
* Documented BuildingBlocks::Base more thoroughly
|
12
12
|
* Changed the blocks.use method to blocks.render (blocks.use is still available for legacy purposes)
|
13
|
-
* Removed the original render method and replaced with render_template that takes the partial and block to render as arguments.
|
13
|
+
* Removed the original render method and replaced with render_template that takes the partial and block to render as arguments.
|
14
|
+
|
15
|
+
1.2.1 (February 7, 2012)
|
16
|
+
|
17
|
+
* Only try to render "before" and "after" blocks as partials if that BuildingBlocks::USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS is globally set to true (set to false now by default)
|
18
|
+
|
19
|
+
1.2.2 (February 9, 2012)
|
20
|
+
|
21
|
+
* Allow :use_partials and :use_partials_for_before_and_after_hooks to be passed in as initialization options to BuildingBlocks::Base to control whether BuildingBlocks attempts to render partials when "blocks.render" is called.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.2
|
data/lib/building_blocks/base.rb
CHANGED
@@ -28,6 +28,12 @@ module BuildingBlocks
|
|
28
28
|
# The variable to use when rendering the partial for the templating feature (by default, "blocks")
|
29
29
|
attr_accessor :variable
|
30
30
|
|
31
|
+
# Boolean variable for whether BuildingBlocks should attempt to render blocks as partials if a defined block cannot be found
|
32
|
+
attr_accessor :use_partials
|
33
|
+
|
34
|
+
# Boolean variable for whether BuildingBlocks should attempt to render blocks before and after blocks as partials if no before or after blocks exist
|
35
|
+
attr_accessor :use_partials_for_before_and_after_hooks
|
36
|
+
|
31
37
|
# Checks if a particular block has been defined within the current block scope.
|
32
38
|
# <%= blocks.defined? :some_block_name %>
|
33
39
|
# Options:
|
@@ -157,6 +163,41 @@ module BuildingBlocks
|
|
157
163
|
nil
|
158
164
|
end
|
159
165
|
|
166
|
+
# Render a partial, treating it as a template, and any code in the block argument will impact how the template renders
|
167
|
+
# <%= BuildingBlocks::Base.new(self).render_template("shared/wizard") do |blocks| %>
|
168
|
+
# <% blocks.queue :step1 %>
|
169
|
+
# <% blocks.queue :step2 do %>
|
170
|
+
# My overridden Step 2 |
|
171
|
+
# <% end %>
|
172
|
+
# <% blocks.queue :step3 %>
|
173
|
+
# <% blocks.queue do %>
|
174
|
+
# | Anonymous Step 4
|
175
|
+
# <% end %>
|
176
|
+
# <% end %>
|
177
|
+
#
|
178
|
+
# <!-- In /app/views/shared/wizard -->
|
179
|
+
# <% blocks.define :step1 do %>
|
180
|
+
# Step 1 |
|
181
|
+
# <% end %>
|
182
|
+
#
|
183
|
+
# <% blocks.define :step2 do %>
|
184
|
+
# Step 2 |
|
185
|
+
# <% end %>
|
186
|
+
#
|
187
|
+
# <% blocks.define :step3 do %>
|
188
|
+
# Step 3
|
189
|
+
# <% end %>
|
190
|
+
#
|
191
|
+
# <% blocks.queued_blocks.each do |block| %>
|
192
|
+
# <%= blocks.render block %>
|
193
|
+
# <% end %>
|
194
|
+
#
|
195
|
+
# <!-- Will render: Step 1 | My overridden Step 2 | Step 3 | Anonymous Step 4-->
|
196
|
+
# Options:
|
197
|
+
# [+partial+]
|
198
|
+
# The partial to render as a template
|
199
|
+
# [+block+]
|
200
|
+
# An optional block with code that affects how the template renders
|
160
201
|
def render_template(partial, &block)
|
161
202
|
render_options = global_options.clone
|
162
203
|
render_options[self.variable] = self
|
@@ -165,12 +206,78 @@ module BuildingBlocks
|
|
165
206
|
view.render partial, render_options
|
166
207
|
end
|
167
208
|
|
209
|
+
# Add a block to render before another block. This before block will be put into an array so that multiple
|
210
|
+
# before blocks may be queued. They will render in the order in which they are declared when the
|
211
|
+
# "blocks#render" method is called. Any options specified to the before block will override any options
|
212
|
+
# specified in the block definition.
|
213
|
+
# <% blocks.define :wizard, :option1 => 1, :option2 => 2 do |options| %>
|
214
|
+
# Step 2 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
215
|
+
# <% end %>
|
216
|
+
#
|
217
|
+
# <% blocks.before :wizard, :option1 => 3 do
|
218
|
+
# Step 0 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
219
|
+
# <% end %>
|
220
|
+
#
|
221
|
+
# <% blocks.before :wizard, :option2 => 4 do
|
222
|
+
# Step 1 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
223
|
+
# <% end %>
|
224
|
+
#
|
225
|
+
# <%= blocks.use :wizard %>
|
226
|
+
#
|
227
|
+
# <!-- Will render:
|
228
|
+
# Step 0 (:option1 => 3, :option2 => 2)<br />
|
229
|
+
# Step 1 (:option1 => 1, :option2 => 4)<br />
|
230
|
+
# Step 2 (:option1 => 1, :option2 => 2)<br />
|
231
|
+
# -->
|
232
|
+
#
|
233
|
+
# <%= blocks.render :wizard, :step => @step %>
|
234
|
+
# Options:
|
235
|
+
# [+name+]
|
236
|
+
# The name of the block to render this code before when that block is rendered
|
237
|
+
# [+options+]
|
238
|
+
# Any options to specify to the before block when it renders. These will override any options
|
239
|
+
# specified when the block was defined.
|
240
|
+
# [+block+]
|
241
|
+
# The block of code to render before another block
|
168
242
|
def before(name, options={}, &block)
|
169
243
|
self.queue_block_container("before_#{name.to_s}", options, &block)
|
170
244
|
nil
|
171
245
|
end
|
172
246
|
alias prepend before
|
173
247
|
|
248
|
+
# Add a block to render after another block. This after block will be put into an array so that multiple
|
249
|
+
# after blocks may be queued. They will render in the order in which they are declared when the
|
250
|
+
# "blocks#render" method is called. Any options specified to the after block will override any options
|
251
|
+
# specified in the block definition.
|
252
|
+
# <% blocks.define :wizard, :option1 => 1, :option2 => 2 do |options| %>
|
253
|
+
# Step 2 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
254
|
+
# <% end %>
|
255
|
+
#
|
256
|
+
# <% blocks.after :wizard, :option1 => 3 do
|
257
|
+
# Step 3 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
258
|
+
# <% end %>
|
259
|
+
#
|
260
|
+
# <% blocks.after :wizard, :option2 => 4 do
|
261
|
+
# Step 4 (:option1 => <%= options[option1] %>, :option2 => <%= options[option2] %>)<br />
|
262
|
+
# <% end %>
|
263
|
+
#
|
264
|
+
# <%= blocks.use :wizard %>
|
265
|
+
#
|
266
|
+
# <!-- Will render:
|
267
|
+
# Step 2 (:option1 => 1, :option2 => 2)<br />
|
268
|
+
# Step 3 (:option1 => 3, :option2 => 2)<br />
|
269
|
+
# Step 4 (:option1 => 1, :option2 => 4)<br />
|
270
|
+
# -->
|
271
|
+
#
|
272
|
+
# <%= blocks.render :wizard, :step => @step %>
|
273
|
+
# Options:
|
274
|
+
# [+name+]
|
275
|
+
# The name of the block to render this code after when that block is rendered
|
276
|
+
# [+options+]
|
277
|
+
# Any options to specify to the after block when it renders. These will override any options
|
278
|
+
# specified when the block was defined.
|
279
|
+
# [+block+]
|
280
|
+
# The block of code to render after another block
|
174
281
|
def after(name, options={}, &block)
|
175
282
|
self.queue_block_container("after_#{name.to_s}", options, &block)
|
176
283
|
nil
|
@@ -210,13 +317,18 @@ module BuildingBlocks
|
|
210
317
|
self.blocks = {}
|
211
318
|
self.anonymous_block_number = 0
|
212
319
|
self.block_groups = {}
|
320
|
+
self.use_partials = options[:use_partials].nil? ? BuildingBlocks::USE_PARTIALS : options.delete(:use_partials)
|
321
|
+
self.use_partials_for_before_and_after_hooks =
|
322
|
+
options[:use_partials_for_before_and_after_hooks] ? options.delete(:use_partials_for_before_and_after_hooks) : BuildingBlocks::USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS
|
213
323
|
end
|
214
324
|
|
325
|
+
# Return a unique name for an anonymously defined block (i.e. a block that has not been given a name)
|
215
326
|
def anonymous_block_name
|
216
327
|
self.anonymous_block_number += 1
|
217
328
|
"block_#{anonymous_block_number}"
|
218
329
|
end
|
219
330
|
|
331
|
+
# Render a block, first trying to find a previously defined block with the same name
|
220
332
|
def render_block(name_or_container, *args, &block)
|
221
333
|
options = args.extract_options!
|
222
334
|
|
@@ -234,7 +346,7 @@ module BuildingBlocks
|
|
234
346
|
block_container = blocks[name]
|
235
347
|
args.push(global_options.merge(block_container.options).merge(block_options).merge(options))
|
236
348
|
buffer << view.capture(*(args[0, block_container.block.arity]), &block_container.block)
|
237
|
-
elsif
|
349
|
+
elsif use_partials
|
238
350
|
begin
|
239
351
|
begin
|
240
352
|
buffer << view.render("#{name.to_s}", global_options.merge(block_options).merge(options))
|
@@ -253,14 +365,17 @@ module BuildingBlocks
|
|
253
365
|
buffer
|
254
366
|
end
|
255
367
|
|
368
|
+
# Render all the before blocks for a partial block
|
256
369
|
def render_before_blocks(name_or_container, *args)
|
257
370
|
render_before_or_after_blocks(name_or_container, "before", *args)
|
258
371
|
end
|
259
372
|
|
373
|
+
# Render all the after blocks for a partial block
|
260
374
|
def render_after_blocks(name_or_container, *args)
|
261
375
|
render_before_or_after_blocks(name_or_container, "after", *args)
|
262
376
|
end
|
263
377
|
|
378
|
+
# Utility method to render either the before or after blocks for a partial block
|
264
379
|
def render_before_or_after_blocks(name_or_container, before_or_after, *args)
|
265
380
|
options = args.extract_options!
|
266
381
|
|
@@ -282,7 +397,7 @@ module BuildingBlocks
|
|
282
397
|
args_clone.push(global_options.merge(block_options).merge(block_container.options).merge(options))
|
283
398
|
buffer << view.capture(*(args_clone[0, block_container.block.arity]), &block_container.block)
|
284
399
|
end
|
285
|
-
elsif
|
400
|
+
elsif use_partials && use_partials_for_before_and_after_hooks
|
286
401
|
begin
|
287
402
|
begin
|
288
403
|
buffer << view.render("#{before_or_after}_#{name.to_s}", global_options.merge(block_options).merge(options))
|
@@ -296,6 +411,7 @@ module BuildingBlocks
|
|
296
411
|
buffer
|
297
412
|
end
|
298
413
|
|
414
|
+
# Build a BuildingBlocks::Container object given the passed in arguments
|
299
415
|
def build_block_container(*args, &block)
|
300
416
|
options = args.extract_options!
|
301
417
|
name = args.first ? args.shift : self.anonymous_block_name
|
@@ -306,6 +422,8 @@ module BuildingBlocks
|
|
306
422
|
block_container
|
307
423
|
end
|
308
424
|
|
425
|
+
# Build a BuildingBlocks::Container object and add it to an array of containers matching it's block name
|
426
|
+
# (used only for queuing a collection of before and after blocks for a particular block name)
|
309
427
|
def queue_block_container(*args, &block)
|
310
428
|
block_container = self.build_block_container(*args, &block)
|
311
429
|
if blocks[block_container.name].nil?
|
@@ -315,6 +433,8 @@ module BuildingBlocks
|
|
315
433
|
end
|
316
434
|
end
|
317
435
|
|
436
|
+
# Build a BuildingBlocks::Container object and add it to the global hash of blocks if a block by the same
|
437
|
+
# name is not already defined
|
318
438
|
def define_block_container(*args, &block)
|
319
439
|
block_container = self.build_block_container(*args, &block)
|
320
440
|
blocks[block_container.name] = block_container if blocks[block_container.name].nil? && block_given?
|
@@ -366,16 +366,25 @@ describe BuildingBlocks::Base do
|
|
366
366
|
@builder.render :some_block, :value1 => 1, :value2 => 2, &block
|
367
367
|
end
|
368
368
|
|
369
|
-
it "should not attempt to render a partial if
|
370
|
-
|
371
|
-
|
369
|
+
it "should not attempt to render a partial if use_partials is set to false" do
|
370
|
+
@builder.use_partials = false
|
371
|
+
block = Proc.new {|options|}
|
372
|
+
@view.expects(:render).with("some_block", :value1 => 1, :value2 => 2).never
|
373
|
+
@view.expects(:render).with("blocks/some_block", :value1 => 1, :value2 => 2).never
|
374
|
+
@view.expects(:capture).with(:value1 => 1, :value2 => 2)
|
375
|
+
@builder.render :some_block, :value1 => 1, :value2 => 2, &block
|
376
|
+
end
|
377
|
+
|
378
|
+
it "should not attempt to render a partial if use_partials is passed in as false as an option to BuildingBlocks::Base.new" do
|
379
|
+
mocha_teardown
|
380
|
+
@builder = BuildingBlocks::Base.new(@view, :use_partials => false)
|
381
|
+
@builder.expects(:render_before_blocks).at_least_once
|
382
|
+
@builder.expects(:render_after_blocks).at_least_once
|
372
383
|
block = Proc.new {|options|}
|
373
384
|
@view.expects(:render).with("some_block", :value1 => 1, :value2 => 2).never
|
374
385
|
@view.expects(:render).with("blocks/some_block", :value1 => 1, :value2 => 2).never
|
375
386
|
@view.expects(:capture).with(:value1 => 1, :value2 => 2)
|
376
387
|
@builder.render :some_block, :value1 => 1, :value2 => 2, &block
|
377
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS")
|
378
|
-
BuildingBlocks.const_set("USE_PARTIALS", true)
|
379
388
|
end
|
380
389
|
|
381
390
|
it "should override hash options for a block by merging the runtime options the define default options into the queue level options into the global options" do
|
@@ -410,47 +419,35 @@ describe BuildingBlocks::Base do
|
|
410
419
|
@builder.render :my_before_block, 1, 2, :value3 => 3, :value4 => 4
|
411
420
|
end
|
412
421
|
|
413
|
-
it "should try and render a before block as a local partial if no before blocks are specified and
|
414
|
-
|
415
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
422
|
+
it "should try and render a before block as a local partial if no before blocks are specified and use_partials_for_before_and_after_hooks is set to true" do
|
423
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
416
424
|
block = Proc.new {}
|
417
425
|
@view.expects(:capture).never
|
418
426
|
@view.expects(:render).with("before_my_before_block", :value1 => 1, :value2 => 2).once
|
419
427
|
@view.expects(:render).with("blocks/before_my_before_block", :value1 => 1, :value2 => 2).never
|
420
428
|
@builder.render :my_before_block, :value1 => 1, :value2 => 2
|
421
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
422
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
423
429
|
end
|
424
430
|
|
425
|
-
it "should try and render a before block as a global partial if no after blocks are specified and the local partial does not exist and
|
426
|
-
|
427
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
431
|
+
it "should try and render a before block as a global partial if no after blocks are specified and the local partial does not exist and use_partials_for_before_and_after_hooks is set to true" do
|
432
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
428
433
|
block = Proc.new {}
|
429
434
|
@view.expects(:capture).never
|
430
435
|
@view.expects(:render).with("before_my_before_block", :value1 => 1, :value2 => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
|
431
436
|
@view.expects(:render).with("blocks/before_my_before_block", :value1 => 1, :value2 => 2).once
|
432
437
|
@builder.render :my_before_block, :value1 => 1, :value2 => 2
|
433
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
434
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", false)
|
435
438
|
end
|
436
439
|
|
437
|
-
it "should not attempt to render a before block as a partial if
|
438
|
-
|
439
|
-
|
440
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
441
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
440
|
+
it "should not attempt to render a before block as a partial if use_partials is set to false even if use_partials_for_before_and_after_hooks is set to true" do
|
441
|
+
@builder.use_partials = false
|
442
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
442
443
|
block = Proc.new {}
|
443
444
|
@view.expects(:capture).never
|
444
445
|
@view.expects(:render).with("before_my_before_block", :value1 => 1, :value2 => 2).never
|
445
446
|
@view.expects(:render).with("blocks/before_my_before_block", :value1 => 1, :value2 => 2).never
|
446
447
|
@builder.render :my_before_block, :value1 => 1, :value2 => 2
|
447
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS")
|
448
|
-
BuildingBlocks.const_set("USE_PARTIALS", true)
|
449
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
450
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", false)
|
451
448
|
end
|
452
449
|
|
453
|
-
it "should not attempt to render a before block as a partial if
|
450
|
+
it "should not attempt to render a before block as a partial if use_partials_for_before_and_after_hooks is set to false" do
|
454
451
|
block = Proc.new {}
|
455
452
|
@view.expects(:capture).never
|
456
453
|
@view.expects(:render).with("before_my_before_block", :value1 => 1, :value2 => 2).never
|
@@ -481,47 +478,35 @@ describe BuildingBlocks::Base do
|
|
481
478
|
@builder.render :my_after_block, 1, 2, :value3 => 3, :value4 => 4
|
482
479
|
end
|
483
480
|
|
484
|
-
it "should try and render a after block as a local partial if no after blocks are specified and
|
485
|
-
|
486
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
481
|
+
it "should try and render a after block as a local partial if no after blocks are specified and use_partials_for_before_and_after_hooks is set to true" do
|
482
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
487
483
|
block = Proc.new {}
|
488
484
|
@view.expects(:capture).never
|
489
485
|
@view.expects(:render).with("after_my_after_block", :value1 => 1, :value2 => 2).once
|
490
486
|
@view.expects(:render).with("blocks/after_my_after_block", :value1 => 1, :value2 => 2).never
|
491
487
|
@builder.render :my_after_block, :value1 => 1, :value2 => 2
|
492
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
493
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", false)
|
494
488
|
end
|
495
489
|
|
496
|
-
it "should try and render a after block as a global partial if no after blocks are specified and the local partial does not exist and
|
497
|
-
|
498
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
490
|
+
it "should try and render a after block as a global partial if no after blocks are specified and the local partial does not exist and use_partials_for_before_and_after_hooks is set to true" do
|
491
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
499
492
|
block = Proc.new {}
|
500
493
|
@view.expects(:capture).never
|
501
494
|
@view.expects(:render).with("after_my_after_block", :value1 => 1, :value2 => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
|
502
495
|
@view.expects(:render).with("blocks/after_my_after_block", :value1 => 1, :value2 => 2).once
|
503
496
|
@builder.render :my_after_block, :value1 => 1, :value2 => 2
|
504
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
505
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", false)
|
506
497
|
end
|
507
498
|
|
508
|
-
it "should not attempt to render a after block as a partial if
|
509
|
-
|
510
|
-
|
511
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
512
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", true)
|
499
|
+
it "should not attempt to render a after block as a partial if use_partials is set to false even if use_partials_for_before_and_after_hooks is set to false" do
|
500
|
+
@builder.use_partials = false
|
501
|
+
@builder.use_partials_for_before_and_after_hooks = true
|
513
502
|
block = Proc.new {}
|
514
503
|
@view.expects(:capture).never
|
515
504
|
@view.expects(:render).with("after_my_after_block", :value1 => 1, :value2 => 2).never
|
516
505
|
@view.expects(:render).with("blocks/after_my_after_block", :value1 => 1, :value2 => 2).never
|
517
506
|
@builder.render :my_after_block, :value1 => 1, :value2 => 2
|
518
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS")
|
519
|
-
BuildingBlocks.const_set("USE_PARTIALS", true)
|
520
|
-
BuildingBlocks.send(:remove_const, "USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS")
|
521
|
-
BuildingBlocks.const_set("USE_PARTIALS_FOR_BEFORE_AND_AFTER_HOOKS", false)
|
522
507
|
end
|
523
508
|
|
524
|
-
it "should not attempt to render a after block as a partial if
|
509
|
+
it "should not attempt to render a after block as a partial if use_partials_for_before_and_after_hooks is set to false" do
|
525
510
|
block = Proc.new {}
|
526
511
|
@view.expects(:capture).never
|
527
512
|
@view.expects(:render).with("after_my_after_block", :value1 => 1, :value2 => 2).never
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: building-blocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 2
|
10
|
+
version: 1.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Hunter
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-02-
|
18
|
+
date: 2012-02-09 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -216,6 +216,20 @@ dependencies:
|
|
216
216
|
prerelease: false
|
217
217
|
type: :development
|
218
218
|
requirement: *id014
|
219
|
+
- !ruby/object:Gem::Dependency
|
220
|
+
name: jeweler
|
221
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
222
|
+
none: false
|
223
|
+
requirements:
|
224
|
+
- - ">="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
hash: 3
|
227
|
+
segments:
|
228
|
+
- 0
|
229
|
+
version: "0"
|
230
|
+
prerelease: false
|
231
|
+
type: :development
|
232
|
+
requirement: *id015
|
219
233
|
description: ""
|
220
234
|
email: hunterae@gmail.com
|
221
235
|
executables: []
|