roger 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 843441f4532ad0dcd2c12697f3cc1a850468a14b
4
- data.tar.gz: cdc778e25728a7f07752d57049187ab1335d375d
3
+ metadata.gz: b0e25d53fb264823bbd277555be283be84210460
4
+ data.tar.gz: a4618896d76651eb6002865640d2e5aa18b9442e
5
5
  SHA512:
6
- metadata.gz: 9891bfcbc25ccefc84b2f165c4b2df93cca0c28fd4c87ff19ab56c52afdb97c36c0311f6b087d1b5f57719a474359a54695b834d99bdf8843d4c81dbba86c2da
7
- data.tar.gz: cb4bcf7953ecf4250341c6fdfa868cffc578b5b9dca840ab73ffc501e006e6c478b7fb9d74a33946f21e7e2057ce59772a7fa19fda5ec5ef339f5ecf1bfc88bf
6
+ metadata.gz: 6e4c474bbe2fe95edf3aed26bcf060810764ea55c8e639ea009e27878740479c05f22e69a8c3d76e37afc9680177a597fb10ff1c2743910f9cc52f2851bf6423
7
+ data.tar.gz: 50131d49a34dd8b8bb7fa9568066975469c3c6b4d877d3670d68196e60bdc937a741a973e07e2fd9239b5a75bde589eb338e7f0ac82e5cfc27e7d3c2a4e7736d
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 1.1.2
4
+
5
+ * Fix issue where nested `content_for` statements or partials with blocks within a `content_for` block would yield multiple times.
6
+
3
7
  ## Version 1.1.1
4
8
 
5
9
  * Better compatiblity with the release as `build` is a relative path it will give sometimes weird issues. This has now been resolved.
@@ -35,6 +35,7 @@ module Roger
35
35
  # @option options [String,Pathname] :partials_path The path to where all partials reside
36
36
  def initialize(source, options = {})
37
37
  @options = options
38
+
38
39
  self.source_path = options[:source_path]
39
40
  self.data, self.source = extract_front_matter(source)
40
41
  self.template = Tilt.new(self.source_path.to_s){ self.source }
@@ -149,6 +150,9 @@ module Roger
149
150
  def initialize(template, env={})
150
151
  @_content_for_blocks = {}
151
152
  @_template, @_env = template, env
153
+
154
+ # Block counter to make sure erbtemp binding is always unique
155
+ @block_counter = 0
152
156
  end
153
157
 
154
158
  # The current Roger::Template in use
@@ -184,12 +188,16 @@ module Roger
184
188
 
185
189
  def capture(&block)
186
190
  raise ArgumentError, "content_for works only with ERB Templates" if !self.template.template.kind_of?(Tilt::ERBTemplate)
187
- eval "@_erbout_tmp = _erbout", block.binding
191
+
192
+ @block_counter += 1
193
+ counter = @block_counter
194
+
195
+ eval "@_erbout_tmp#{counter} = _erbout", block.binding
188
196
  eval "_erbout = \"\"", block.binding
189
197
  t = Tilt::ERBTemplate.new(){ "<%= yield %>" }
190
- t.render(&block)
198
+ t.render(&block)
191
199
  ensure
192
- eval "_erbout = @_erbout_tmp", block.binding
200
+ eval "_erbout = @_erbout_tmp#{counter}", block.binding
193
201
  end
194
202
 
195
203
  def partial(name, options = {}, &block)
@@ -214,4 +222,4 @@ module Roger
214
222
 
215
223
  end
216
224
 
217
- end
225
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "roger"
5
- s.version = "1.1.1"
5
+ s.version = "1.1.2"
6
6
 
7
7
  s.authors = ["Flurin Egger", "Edwin van der Graaf", "Joran Kapteijns"]
8
8
  s.email = ["info@digitpaint.nl", "flurin@digitpaint.nl"]
@@ -135,6 +135,11 @@ module Roger
135
135
  assert_equal template.render, "BA"
136
136
  end
137
137
 
138
+ def test_content_for_yield_with_partial_with_block
139
+ template = Template.new("---\nlayout: \"yield\"\n---\nB<% content_for :one do %><% partial 'test/yield' do %>CONTENT<% end %><% end %>A", @config.update(:source_path => @base + "html/test.html.erb"))
140
+ assert_equal template.render, "BAB-CONTENT-A"
141
+ end
142
+
138
143
  # Environment
139
144
 
140
145
  def test_template_env
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flurin Egger
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-19 00:00:00.000000000 Z
13
+ date: 2015-06-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor