blocks 2.6.4 → 2.7.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YjAzYTVjNjBiN2UxM2JmNWFlYmFiYjMzMGMwM2UxZDc1MDNjYjViNg==
4
+ MWI0ZTBkM2RiYWJjMzkxM2NiNTQ0NDEyYjY5MzIyNjI0YWNlMTZmNQ==
5
5
  data.tar.gz: !binary |-
6
- MzAzOWU1NWM1Yzg0M2RlMTAyNDM3NWQwZTYyODdlZDg4NmQ1ZmEwYw==
6
+ NmFiNDE4Yjg5OTBiYTg5YmQwZTQxZWU1ZmEzOGQ2ZjIzNDNhYWQzYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDQzZWZkY2YwNDY1M2VlMGY3OWQ5MDdiMWE1Mjg0MzgwZjljNmQzYzFhNTM5
10
- NjhhODhiZWY5ZTg0YWU1YjBmYWJhOWU2NzRjZGM1Y2U5Mzc3NWI3MmUzZTVj
11
- M2JhYjc3NDg2NTU5N2NkMDVlZGU2YjM0YjY1YTRmY2Q2YWVmNjE=
9
+ ZjAyM2ZjYWZmMzc1MDM1ZjkyY2FmMTdhYTYyOTk0OTgwMzBhMmRmNDJhMjdi
10
+ ZWE0NDFkZDM2NjVjYTgxZWRjNjVlYTUyNjZkMTlhMTk1YWUzMWIzMDkwN2M1
11
+ N2IyYjQ3NDU2MWIyMGVkYWZkMDA4YTEzOGNlMjgzNzAzNDY5YzA=
12
12
  data.tar.gz: !binary |-
13
- MWE0MTRjZGM3MDY4NjdkYWQwYjZjYWY1OTY2MWYxMjEwYTNmOGQ1NTJmMzVh
14
- NjVmMzA0OTI3MDFiODQwMjE0NWRjMzUxYTFlZjFhZTA0NjU1OTBmNGY1NjE2
15
- MGZmYzMwYjk1YjhiZGQyOWY4NDNlZWE1YWJhZTM2YmQwYzM4Mzc=
13
+ M2MyNmEwMTMwNzllYjZlZWVkNjQ2MGE2MWIyMDNmYzI5NGNkMDQ1ODU3NTFj
14
+ YTJhZjk0YjgwYThiM2I5MjA5M2E2ZTdiZTIwOWFjODYzMzRhZjQ1MTk1Nzgw
15
+ Y2QxNzYyN2EzOWFiNzU0NGRkZGYzN2YyYzMzOTIwYTc2ZWMzYjk=
@@ -1,3 +1,10 @@
1
+ 2.7.0 (December 9, 2015)
2
+ * Added configuration option skip_applies_to_surrounding_blocks. When set to true, if blocks.skip :SOME_BLOCK is called,
3
+ any before, after, and around hooks applied to that block will also be skipped when the block attempts to render.
4
+ This may be configured in an initializer as follows:
5
+ Blocks.setup { |config| config.skip_applies_to_surrounding_blocks = true }
6
+ * Cleanup to Blocks::Base to reduce code duplication
7
+
1
8
  2.6.4 (July 21, 2014)
2
9
  * Removed dependence on jeweler for managing gem
3
10
  * Small cleanups of the code
@@ -83,4 +90,4 @@
83
90
  * Ability to disable use of partials when rendering a block
84
91
  * Ability to disable use of partials for before and after hooks
85
92
  * Complete test coverage
86
- * :template_folder and :variable options are no longer being passed in as part of the options hash to defined blocks and partials
93
+ * :template_folder and :variable options are no longer being passed in as part of the options hash to defined blocks and partials
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'bundler/gem_tasks'
4
4
  # Default directory to look in is `/specs`
5
5
  # Run with `rake spec`
6
6
  RSpec::Core::RakeTask.new(:spec) do |task|
7
- task.rspec_opts = ['--color', '--format', 'nested']
7
+ task.rspec_opts = ['--color', '--format', 'documentation']
8
8
  end
9
9
 
10
- task :default => :spec
10
+ task :default => :spec
@@ -14,6 +14,7 @@ module Blocks
14
14
  @@config.wrap_before_and_after_blocks = false
15
15
  @@config.use_partials = false
16
16
  @@config.partials_folder = "blocks"
17
+ @@config.skip_applies_to_surrounding_blocks = false
17
18
 
18
19
  # Default way to setup Blocks
19
20
  def self.setup
@@ -21,5 +22,5 @@ module Blocks
21
22
  end
22
23
  end
23
24
 
24
- ActionView::Base.send :include, Blocks::ViewAdditions::ClassMethods
25
- ActionController::Base.send :include, Blocks::ControllerAdditions::ClassMethods
25
+ ActionView::Base.send :include, Blocks::ViewAdditions
26
+ ActionController::Base.send :include, Blocks::ControllerAdditions
@@ -16,6 +16,9 @@ module Blocks
16
16
  # These are the options that are passed into the initalize method
17
17
  attr_accessor :global_options
18
18
 
19
+ # Hash of block names that have been explicitely skipped
20
+ attr_accessor :skipped_blocks
21
+
19
22
  # Checks if a particular block has been defined within the current block scope.
20
23
  # <%= blocks.defined? :some_block_name %>
21
24
  # Options:
@@ -90,6 +93,7 @@ module Blocks
90
93
  # The name of the block to skip rendering for
91
94
  def skip(name)
92
95
  blocks[name] = nil
96
+ skipped_blocks[name] = true
93
97
  self.define_block_container(name) do
94
98
  end
95
99
  nil
@@ -147,6 +151,10 @@ module Blocks
147
151
  def render(name_or_container, *args, &block)
148
152
  options = args.extract_options!
149
153
  collection = options.delete(:collection)
154
+ name = extract_block_name name_or_container
155
+ if skipped_blocks[name] && global_options.skip_applies_to_surrounding_blocks
156
+ return
157
+ end
150
158
 
151
159
  buffer = ActiveSupport::SafeBuffer.new
152
160
 
@@ -415,6 +423,7 @@ module Blocks
415
423
  def initialize(view, options={})
416
424
  self.view = view
417
425
  self.global_options = Blocks.config.merge(options)
426
+ self.skipped_blocks = HashWithIndifferentAccess.new
418
427
  self.blocks = HashWithIndifferentAccess.new
419
428
  self.anonymous_block_number = 0
420
429
  end
@@ -428,7 +437,7 @@ module Blocks
428
437
  end
429
438
 
430
439
  def render_block_with_around_blocks(name_or_container, *args, &block)
431
- name = name_or_container.is_a?(Blocks::Container) ? name_or_container.name : name_or_container
440
+ name = extract_block_name name_or_container
432
441
  around_name = "around_#{name}"
433
442
 
434
443
  around_blocks = blocks[around_name].present? ? blocks[around_name].clone : []
@@ -448,13 +457,7 @@ module Blocks
448
457
  def render_block(name_or_container, *args, &block)
449
458
  buffer = ActiveSupport::SafeBuffer.new
450
459
 
451
- if (name_or_container.is_a?(Blocks::Container))
452
- name = name_or_container.name.to_sym
453
- block_render_options = name_or_container.options
454
- else
455
- name = name_or_container.to_sym
456
- block_render_options = {}
457
- end
460
+ name, block_render_options = extract_block_name_and_options(name_or_container)
458
461
 
459
462
  block_definition_options = {}
460
463
  if blocks[name]
@@ -472,10 +475,10 @@ module Blocks
472
475
  begin
473
476
  begin
474
477
  buffer << view.render("#{name.to_s}", options)
475
- rescue ActionView::MissingTemplate
478
+ rescue ActionView::MissingTemplate, ArgumentError
476
479
  buffer << view.render("#{options[:partials_folder]}/#{name.to_s}", options)
477
480
  end
478
- rescue ActionView::MissingTemplate
481
+ rescue ActionView::MissingTemplate, ArgumentError
479
482
  args.push(global_options.merge(options))
480
483
  buffer << view.capture(*(args[0, block.arity]), &block) if block_given?
481
484
  end
@@ -560,5 +563,17 @@ module Blocks
560
563
  blocks[block_container.name] = block_container if blocks[block_container.name].nil? && block_given?
561
564
  block_container
562
565
  end
566
+
567
+ def extract_block_name(name_or_container)
568
+ extract_block_name_and_options(name_or_container).first
569
+ end
570
+
571
+ def extract_block_name_and_options(name_or_container)
572
+ if name_or_container.is_a?(Blocks::Container)
573
+ [name_or_container.name, name_or_container.options]
574
+ else
575
+ [name_or_container, {}]
576
+ end
577
+ end
563
578
  end
564
579
  end
@@ -1,3 +1,3 @@
1
1
  module Blocks
2
- VERSION = "2.6.4"
3
- end
2
+ VERSION = "2.7.0"
3
+ end
@@ -1,12 +1,10 @@
1
1
  module Blocks
2
2
  module ViewAdditions
3
- module ClassMethods
4
- def blocks
5
- return @blocks if @blocks
6
- @blocks = Blocks::Base.new(self)
7
- @blocks.blocks.merge! @controller_blocks.blocks if @controller_blocks
8
- @blocks
9
- end
3
+ def blocks
4
+ return @blocks if @blocks
5
+ @blocks = Blocks::Base.new(self)
6
+ @blocks.blocks.merge! @controller_blocks.blocks if @controller_blocks
7
+ @blocks
10
8
  end
11
9
  end
12
- end
10
+ end
@@ -15,32 +15,32 @@ describe Blocks::Base do
15
15
  @builder.expects(:render_before_blocks).at_least_once
16
16
  @builder.expects(:render_after_blocks).at_least_once
17
17
  # @view.expects(:capture).with(:value1 => 1, :value2 => 2).never
18
- @view.expects(:render).with("some_block", 'partials_folder' => 'shared', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
19
- @view.expects(:render).with("shared/some_block", 'partials_folder' => 'shared', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).once
18
+ @view.expects(:render).with("some_block", 'partials_folder' => 'shared', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
19
+ @view.expects(:render).with("shared/some_block", 'partials_folder' => 'shared', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).once
20
20
  @builder.render :some_block, :value1 => 1, :value2 => 2
21
21
  end
22
22
 
23
23
  describe "#defined?" do
24
24
  it "should be able to determine if a block by a specific name is already defined" do
25
- @builder.defined?(:test_block).should be_false
25
+ @builder.defined?(:test_block).should be false
26
26
  @builder.define :test_block do end
27
- @builder.defined?(:test_block).should be_true
27
+ @builder.defined?(:test_block).should be true
28
28
  end
29
29
 
30
30
  it "should not care whether the block name was defined with a string or a symbol" do
31
- @builder.defined?(:test_block).should be_false
31
+ @builder.defined?(:test_block).should be false
32
32
  @builder.define "test_block" do end
33
- @builder.defined?(:test_block).should be_true
33
+ @builder.defined?(:test_block).should be true
34
34
 
35
- @builder.defined?(:test_block2).should be_false
35
+ @builder.defined?(:test_block2).should be false
36
36
  @builder.define :test_block2 do end
37
- @builder.defined?(:test_block2).should be_true
37
+ @builder.defined?(:test_block2).should be true
38
38
  end
39
39
 
40
40
  it "should not care whether the defined? method is passed a string or a symbol" do
41
- @builder.defined?("test_block").should be_false
41
+ @builder.defined?("test_block").should be false
42
42
  @builder.define :test_block do end
43
- @builder.defined?("test_block").should be_true
43
+ @builder.defined?("test_block").should be true
44
44
  end
45
45
  end
46
46
 
@@ -299,7 +299,7 @@ describe Blocks::Base do
299
299
  it "should automatically pass in an options hash to a defined block that takes one paramter when that block is rendered" do
300
300
  block = Proc.new {|options| print_hash(options) }
301
301
  @builder.define :some_block, &block
302
- @builder.render(:some_block).should eql print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", )
302
+ @builder.render(:some_block).should eql print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :skip_applies_to_surrounding_blocks => true)
303
303
  end
304
304
 
305
305
  it "should be able to render a defined block by its name and pass in runtime arguments as a hash" do
@@ -307,7 +307,7 @@ describe Blocks::Base do
307
307
  print_hash(options)
308
308
  end
309
309
  @builder.define :some_block, &block
310
- @builder.render(:some_block, :param1 => 1, :param2 => "value2").should eql print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :param1 => 1, :param2 => "value2")
310
+ @builder.render(:some_block, :param1 => 1, :param2 => "value2").should eql print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :skip_applies_to_surrounding_blocks => true, :param1 => 1, :param2 => "value2")
311
311
  end
312
312
 
313
313
  it "should be able to render a defined block by its name and pass in runtime arguments one by one" do
@@ -315,7 +315,7 @@ describe Blocks::Base do
315
315
  "first_param: #{first_param}, second_param: #{second_param}, #{print_hash options}"
316
316
  end
317
317
  @builder.define :some_block, &block
318
- @builder.render(:some_block, 3, 4, :param1 => 1, :param2 => "value2").should eql("first_param: 3, second_param: 4, #{print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :param1 => 1, :param2 => "value2")}")
318
+ @builder.render(:some_block, 3, 4, :param1 => 1, :param2 => "value2").should eql("first_param: 3, second_param: 4, #{print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :skip_applies_to_surrounding_blocks => true, :param1 => 1, :param2 => "value2")}")
319
319
  end
320
320
 
321
321
  it "should match up the number of arguments to a defined block with the parameters passed when a block is rendered" do
@@ -331,7 +331,7 @@ describe Blocks::Base do
331
331
  "first_param: #{first_param}, second_param: #{second_param}, #{print_hash options}"
332
332
  end
333
333
  @builder.replace :some_block, &block
334
- @builder.render(:some_block, 3, 4, :param1 => 1, :param2 => "value2").should eql("first_param: 3, second_param: 4, #{print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :param1 => 1, :param2 => "value2")}")
334
+ @builder.render(:some_block, 3, 4, :param1 => 1, :param2 => "value2").should eql("first_param: 3, second_param: 4, #{print_hash(:wrap_before_and_after_blocks => false, :use_partials => false, :partials_folder => "blocks", :skip_applies_to_surrounding_blocks => true, :param1 => 1, :param2 => "value2")}")
335
335
  end
336
336
 
337
337
  it "should not render anything if using a block that has been defined" do
@@ -339,8 +339,8 @@ describe Blocks::Base do
339
339
  config.use_partials = true
340
340
  end
341
341
  @builder = Blocks::Base.new(@view)
342
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
343
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
342
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
343
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
344
344
  @builder.render :some_block
345
345
  end
346
346
 
@@ -357,8 +357,8 @@ describe Blocks::Base do
357
357
  config.use_partials = true
358
358
  end
359
359
  @builder = Blocks::Base.new(@view)
360
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).once
361
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).never
360
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).once
361
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).never
362
362
  @builder.render :some_block, :value1 => 1, :value2 => 2
363
363
  end
364
364
 
@@ -367,8 +367,8 @@ describe Blocks::Base do
367
367
  config.use_partials = true
368
368
  end
369
369
  @builder = Blocks::Base.new(@view)
370
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
371
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).once
370
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
371
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).once
372
372
  @builder.render :some_block, :value1 => 1, :value2 => 2
373
373
  end
374
374
 
@@ -381,8 +381,8 @@ describe Blocks::Base do
381
381
  config.use_partials = true
382
382
  end
383
383
  @builder = Blocks::Base.new(@view)
384
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
385
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
384
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
385
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => true, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).raises(ActionView::MissingTemplate.new([],[],[],[],[]))
386
386
  @builder.render :some_block, :value1 => 1, :value2 => 2, &block
387
387
  end
388
388
 
@@ -391,8 +391,8 @@ describe Blocks::Base do
391
391
  options[:value1].should eql 1
392
392
  options[:value2].should eql 2
393
393
  end
394
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'value1' => 1, 'value2' => 2).never
395
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'value1' => 1, 'value2' => 2).never
394
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).never
395
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).never
396
396
  @builder.render :some_block, :value1 => 1, :value2 => 2, &block
397
397
  end
398
398
 
@@ -405,8 +405,8 @@ describe Blocks::Base do
405
405
  options[:value1].should eql 1
406
406
  options[:value2].should eql 2
407
407
  end
408
- @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'value1' => 1, 'value2' => 2).never
409
- @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'value1' => 1, 'value2' => 2).never
408
+ @view.expects(:render).with("some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).never
409
+ @view.expects(:render).with("blocks/some_block", 'partials_folder' => 'blocks', 'wrap_before_and_after_blocks' => false, 'use_partials' => false, 'skip_applies_to_surrounding_blocks' => true, 'value1' => 1, 'value2' => 2).never
410
410
  @builder.render :some_block, :value1 => 1, :value2 => 2, &block
411
411
  end
412
412
 
@@ -591,14 +591,14 @@ describe Blocks::Base do
591
591
 
592
592
  it "should be able to nest multiple around blocks with the last defined around block on the outside" do
593
593
  my_block = Proc.new { "test" }
594
- around_block1 = Proc.new { |content_block| "<h1>#{content_block.call}</h1>" }
595
- around_block2 = Proc.new { |content_block| "<span style='font-size: 100px'>#{content_block.call}</span>" }
596
- around_block3 = Proc.new { |content_block| "<span style='color:red'>#{content_block.call}</span>" }
594
+ around_block1 = Proc.new { |content_block| @view.content_tag :h1, content_block.call }
595
+ around_block2 = Proc.new { |content_block| @view.content_tag :span, content_block.call, :style => "font-size: 100px" }
596
+ around_block3 = Proc.new { |content_block| @view.content_tag :span, content_block.call, :style => "style='color:red" }
597
597
  @builder.define(:my_block, &my_block)
598
598
  @builder.around(:my_block, &around_block1)
599
599
  @builder.around(:my_block, &around_block2)
600
600
  @builder.around(:my_block, &around_block3)
601
- @builder.render(:my_block).should eql("&lt;h1&gt;&amp;lt;span style='font-size: 100px'&amp;gt;&amp;amp;lt;span style='color:red'&amp;amp;gt;test&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/h1&gt;")
601
+ @builder.render(:my_block).should eql(%%<h1><span style="font-size: 100px"><span style="style=&#39;color:red">test</span></span></h1>%)
602
602
  end
603
603
  end
604
604
 
@@ -632,4 +632,4 @@ describe Blocks::Base do
632
632
  @builder.render :my_after_block, :param1 => "top level"
633
633
  end
634
634
  end
635
- end
635
+ end
@@ -4,7 +4,7 @@ describe Blocks::ViewAdditions do
4
4
  before(:each) do
5
5
  @view_class = Class.new
6
6
  @view = @view_class.new
7
- @view_class.send(:include, Blocks::ViewAdditions::ClassMethods)
7
+ @view_class.send(:include, Blocks::ViewAdditions)
8
8
  end
9
9
 
10
10
  describe "#blocks" do
@@ -19,4 +19,4 @@ describe Blocks::ViewAdditions do
19
19
  @view.blocks.should eql "something"
20
20
  end
21
21
  end
22
- end
22
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.4
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Hunter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-22 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project:
160
- rubygems_version: 2.2.2
160
+ rubygems_version: 2.4.2
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: Blocks goes beyond blocks and partials
@@ -166,3 +166,4 @@ test_files:
166
166
  - spec/blocks/blocks_spec.rb
167
167
  - spec/blocks/view_additions_spec.rb
168
168
  - spec/spec_helper.rb
169
+ has_rdoc: