gumdrop 1.1.0 → 1.1.1

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/ChangeLog.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v1.1.1
2
+ - Cleaned up dependencies.
3
+ - Some performance and memory optimizations.
4
+
1
5
  # v1.1.0
2
6
  - Added `Gumdrop.prepare(&block)`, it's a good time to apply data transformations.
3
7
  - Added Content#dirname.
data/Notes.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ## Notes and Todos
2
2
 
3
3
  - Flesh out the test/specs
4
- - Adde support for marking a partial 'cacheable' in the partial
5
- <%= set :cache=>true %>
4
+ - Support Compass for sass
5
+ - Support nib for stylus
data/bin/gumdrop CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  require 'rubygems'
6
6
  require 'bundler/setup'
7
- require 'gumdrop'
8
7
  Bundler.require if File.exists?('Gemfile')
8
+ require 'gumdrop'
9
9
 
10
10
  begin
11
11
  if Gumdrop.in_site_folder?
data/gumdrop.gemspec CHANGED
@@ -26,16 +26,19 @@ Gem::Specification.new do |s|
26
26
 
27
27
  s.add_dependency 'thor', '0.15.4'
28
28
  s.add_dependency 'tilt', '1.3.3'
29
+ # s.add_dependency 'tilt', '1.4.0'
29
30
  s.add_dependency 'active_support', '3.0.0'
30
31
  s.add_dependency 'onfire', '0.2.0'
31
32
  s.add_dependency 'sinatra', '1.3.2'
32
33
  s.add_dependency 'i18n', '0.6.0'
33
34
  s.add_dependency 'launchy', '0.4.0'
34
35
  # s.add_dependency 'bundler', ''
35
- s.add_dependency 'sprockets', '2.4.3'
36
- s.add_dependency 'stitch', '0.1.6'
37
- s.add_dependency 'jsmin', '1.0.1'
38
- s.add_dependency 'json', '~> 1.7.7'
36
+ # s.add_dependency 'sprockets', '2.4.3'
37
+ # s.add_dependency 'sprockets', '2.10.0'
38
+ # s.add_dependency 'stitch', '0.1.6'
39
+ # s.add_dependency 'stitch-rb', '0.0.8'
40
+ # s.add_dependency 'jsmin', '1.0.1'
41
+ # s.add_dependency 'json', '~> 1.7.7'
39
42
 
40
43
  s.add_development_dependency 'minitest', '3.2.0'
41
44
  s.add_development_dependency 'sqlite3', '1.3.6'
@@ -13,6 +13,7 @@ module Gumdrop::CLI
13
13
  desc 'build', 'Build project'
14
14
  method_option :env, default:'production', aliases:'-e'
15
15
  method_option :assets, aliases:'-a', type: :array, desc:"List of assets to render."
16
+ method_option :profile, default:false, type: :boolean, desc:"Profile ruby runtime (for dev)."
16
17
  method_option :quiet, default:false, aliases:'-q', type: :boolean
17
18
  method_option :resume, default:false, aliases:'-r', type: :boolean, desc:"Auto resume rendering after any errors"
18
19
  method_option :force, default:false, aliases:'-f', type: :boolean, desc:"Ignore file checksums and create all files"
@@ -22,6 +23,9 @@ module Gumdrop::CLI
22
23
  c.log_level= :warn
23
24
  end
24
25
  end
26
+ if options[:profile]
27
+ require 'profile'
28
+ end
25
29
  Gumdrop.run options.merge(mode:'build')
26
30
  end
27
31
 
@@ -191,6 +191,11 @@ module Gumdrop
191
191
 
192
192
  class ContentList < Hash
193
193
 
194
+ def initialize
195
+ @cache = {}
196
+ super
197
+ end
198
+
194
199
  def create(path, generator=nil, &block)
195
200
  content= Content.new path, generator, &block
196
201
  add content #, path
@@ -224,12 +229,21 @@ module Gumdrop
224
229
  contents
225
230
  end
226
231
 
232
+ def clear
233
+ @cache.clear()
234
+ super
235
+ end
236
+
227
237
  def get(key)
228
238
  self[key]
229
239
  end
230
240
 
231
241
  def first(pattern)
232
- find(pattern).first
242
+ if @cache.has_key? pattern
243
+ @cache[pattern]
244
+ else
245
+ @cache[pattern]= find(pattern).first
246
+ end
233
247
  end
234
248
 
235
249
  end
data/lib/gumdrop/data.rb CHANGED
@@ -29,6 +29,10 @@ module Gumdrop
29
29
  @cache.clear
30
30
  end
31
31
 
32
+ def clear
33
+ @cache.clear
34
+ end
35
+
32
36
  def contents(pattern=nil, opts={})
33
37
  if pattern.nil?
34
38
  site.contents.all
@@ -4,38 +4,45 @@ module Gumdrop
4
4
  include Util::SiteAccess
5
5
 
6
6
  SPECIAL_OPTS= %w(layout force_partial)
7
- MUNGABLE_RE= Regexp.new(%Q<(href|data|src)([\s]*)=([\s]*)('|"|&quot;|&#34;|&#39;)?\\/([\\/]?)>, 'i')
8
7
 
9
- attr_reader :context, :cache
8
+ attr_reader :context, :cache, :ctx_pool
10
9
 
11
10
  def initialize
12
11
  site.active_renderer= self
13
12
  @context, @content, @opts= nil, nil, nil
14
- @stack= []
13
+ @ctx_pool= ContextPool.new self
15
14
  @cache= {}
16
15
  end
17
16
 
18
17
  def draw(content, opts={})
19
- event_block :render_item do |data|
20
- data[:content]= content
21
- log.debug " rendering: #{ content.source_filename } (#{ content.uri })"
22
- if content.binary? or content.missing?
23
- log.warn "Missing content body for: #{ content.uri }"
24
- nil
25
- else
26
- opts[:calling_page]= @context unless opts.has_key? :calling_page
27
- _in_context(content, opts) do
28
- data[:context]= @context
29
- data[:output]= _render_content!
30
- @cache[content.source_path]= data[:output] if @context.cache
31
- data[:output]
32
- end
18
+ if @ctx_pool.size > 0
19
+ _start_rendering(content, opts)
20
+ else
21
+ event_block :render_item do |data|
22
+ _start_rendering(content, opts, data)
33
23
  end
34
24
  end
35
25
  end
36
26
 
37
27
  private
38
28
 
29
+ def _start_rendering(content, opts, data={})
30
+ data[:content]= content
31
+ log.debug " rendering: #{ content.source_filename } (#{ content.uri })"
32
+ if content.binary? or content.missing?
33
+ log.warn "Missing content body for: #{ content.uri }"
34
+ nil
35
+ else
36
+ opts[:calling_page]= @context unless opts.has_key? :calling_page
37
+ _in_new_context(content, opts) do
38
+ data[:context]= @context
39
+ data[:output]= _render_content!
40
+ @cache[content.source_path]= data[:output] if @context.cache
41
+ data[:output]
42
+ end
43
+ end
44
+ end
45
+
39
46
  def _render_content!
40
47
  output= @content.body
41
48
  _render_pipeline(@content.source_filename) do |template_class|
@@ -91,11 +98,14 @@ module Gumdrop
91
98
  end
92
99
  end
93
100
 
101
+ HTML_MUNGABLE_RE= Regexp.new(%Q<(href|data|src)([\s]*)=([\s]*)('|"|&quot;|&#34;|&#39;)?\\/([\\/]?)>, 'i')
102
+ # CSS_MUNGABLE_RE= Regexp.new(%Q<(href|data|src)([\s]*)=([\s]*)('|"|&quot;|&#34;|&#39;)?\\/([\\/]?)>, 'i')
103
+
94
104
  def _relativize_uris(text)
95
105
  return text unless _relativize?
96
106
  path_to_root= _path_to_root
97
107
  text.force_encoding("UTF-8") if text.respond_to? :force_encoding
98
- text.gsub MUNGABLE_RE do |match|
108
+ text.gsub HTML_MUNGABLE_RE do |match|
99
109
  if $5 == '/'
100
110
  "#{ $1 }#{ $2 }=#{ $3 }#{ $4 }/"
101
111
  else
@@ -144,42 +154,38 @@ module Gumdrop
144
154
  '../' * @content.level
145
155
  end
146
156
 
147
- def _in_context(content, opts)
148
- _new_context(content, opts)
149
- output= yield
150
- _revert_context
151
- output
152
- end
157
+ def _in_new_context(content, opts)
158
+ @ctx_pool.sub_context do |ctx, prev_ctx|
159
+ ctx._setup content, opts
160
+ safe_opts= opts.reject { |o| SPECIAL_OPTS.include? o.to_s }
161
+ ctx.set safe_opts
153
162
 
154
- def _new_context(content, opts)
155
- @stack.push({
156
- content: @content,
157
- context: @context,
158
- opts: @opts
159
- }.to_hash_object)
160
- @context= RenderContext.new content, self, @context
161
- safe_opts= opts.reject { |o| SPECIAL_OPTS.include? o.to_s }
162
- @context.set safe_opts
163
- @content= content
164
- @opts= opts
165
- if @stack.size == 1
166
- @context.set :layout, _default_layout
167
- end
168
- end
163
+ @context= ctx
164
+ @content= content
165
+ @opts= opts
166
+
167
+ if @ctx_pool.size == 1
168
+ ctx.set :layout, _default_layout
169
+ end
170
+
171
+ output= yield
172
+
173
+ case opts[:hoist]
174
+ when :all, true
175
+ _hoist_data(prev_ctx)
176
+ when Array
177
+ _hoist_data(prev_ctx, opts[:hoist])
178
+ end if opts.has_key? :hoist
179
+
180
+ @context= prev_ctx
181
+ @content= prev_ctx.content || nil
182
+ @opts= prev_ctx.opts || nil
169
183
 
170
- def _revert_context
171
- prev= @stack.pop
172
- case @opts[:hoist]
173
- when :all, true
174
- _hoist_data(prev.context)
175
- when Array
176
- _hoist_data(prev.context, @opts[:hoist])
184
+ ctx._setup nil, nil
185
+ output
177
186
  end
178
- @context= prev.context
179
- @content= prev.content
180
- @opts= prev.opts
181
187
  end
182
-
188
+
183
189
  def _hoist_data(to_context, keys=nil)
184
190
  keys ||= @context.state.keys
185
191
  safe_keys= keys.reject {|k| SPECIAL_OPTS.include? k.to_s }
@@ -188,10 +194,6 @@ module Gumdrop
188
194
  end
189
195
  end
190
196
 
191
- def _previous
192
- @stack.last
193
- end
194
-
195
197
  class << self
196
198
 
197
199
  # Returns the `Tilt::Template` for the given `ext` or nil
@@ -204,19 +206,76 @@ module Gumdrop
204
206
  end
205
207
  end
206
208
 
209
+ class ContextPool
210
+ def initialize(renderer, size=3)
211
+ @_current= -1
212
+ @renderer= renderer
213
+ @pool=[]
214
+ prev= nil
215
+ size.times do |i|
216
+ ctx= RenderContext.new nil, nil, renderer, prev
217
+ @pool << ctx
218
+ prev= ctx
219
+ end
220
+ end
221
+
222
+ def sub_context
223
+ result= yield self.next, self.prev
224
+ self.pop
225
+ result
226
+ end
227
+
228
+ def next
229
+ @_current += 1
230
+ @pool << RenderContext.new( nil, nil, @renderer, prev ) if @_current == @pool.size
231
+ @pool[@_current]
232
+ end
233
+
234
+ def current
235
+ @pool[@_current]
236
+ end
237
+
238
+ def prev
239
+ @pool[@_current - 1] rescue nil
240
+ end
241
+
242
+ def pop
243
+ @_current -= 1
244
+ @pool[@_current]
245
+ end
246
+
247
+ def root
248
+ @pool[0]
249
+ end
250
+
251
+ def size
252
+ @_current + 1
253
+ end
254
+ end
255
+
207
256
  class RenderContext
208
257
  include Util::SiteAccess
209
258
  include Util::ViewHelpers
210
259
 
211
- attr_reader :content, :state
260
+ attr_reader :content, :state, :opts
212
261
 
213
- def initialize(content, renderer, parent=nil)
262
+ def initialize(content, opts, renderer, parent=nil)
263
+ # @content_page= nil
214
264
  @content= content
215
265
  @renderer= renderer
216
266
  @parent= parent
267
+ @opts= opts
217
268
  @state= {}
218
269
  end
219
270
 
271
+ def _setup(content, opts)
272
+ # @content_page= nil
273
+ @content= content
274
+ @opts= opts
275
+ # @state= {}
276
+ @state.clear()
277
+ end
278
+
220
279
  def render(path=nil, opts={})
221
280
  content= site.resolve path, opts
222
281
  raise StandardError, "Content or Partial cannot be found at: #{path} (#{opts})" if content.nil?
@@ -247,13 +306,7 @@ module Gumdrop
247
306
  end
248
307
 
249
308
  def page
250
- @content_page ||= begin
251
- parent= self
252
- while !parent.nil? and !parent.calling_page.nil? do
253
- parent= parent.calling_page
254
- end
255
- parent
256
- end
309
+ @renderer.ctx_pool.root
257
310
  end
258
311
 
259
312
  def content_for(key, &block)
@@ -7,11 +7,15 @@ module Gumdrop
7
7
 
8
8
  STATIC_ASSETS= %w(.jpg .jpe .jpeg .gif .ico .png .swf)
9
9
 
10
+ class RenderPool
11
+ end
12
+
10
13
  class Server < Sinatra::Base
11
14
  include Util::Loggable
12
15
 
13
16
  site= Gumdrop.site
14
17
  scan_count= 0
18
+ gc_after= 3
15
19
 
16
20
  unless site.nil?
17
21
  site.scan true
@@ -41,11 +45,12 @@ module Gumdrop
41
45
  since_last_build= Time.now.to_i - last_scan
42
46
  # site.report "!>!>>>>> since_last_build: #{since_last_build}"
43
47
  if since_last_build > site.config.server_timeout
44
- log.info "[#{$$}] Rebuilding from Source (#{since_last_build} > #{site.config.server_timeout})"
48
+ log.info "[#{$$}] Rebuilding from Source (#{since_last_build} > #{site.config.server_timeout}) #{scan_count % gc_after}"
49
+ last_scan= Time.now.to_i
45
50
  site.scan true
46
51
  scan_count += 1
47
- last_scan= Time.now.to_i
48
- if scan_count % 50 == 0
52
+ log.info "[#{$$}] Finished re-scan - #{ Time.now.to_i - last_scan }s"
53
+ if scan_count % gc_after == 0
49
54
  log.info "<* Initiating Garbage Collection *>"
50
55
  GC.start
51
56
  end
@@ -53,7 +58,6 @@ module Gumdrop
53
58
  end
54
59
 
55
60
  if site.contents.has_key? file_path
56
- renderer= Renderer.new
57
61
  content= site.contents[file_path]
58
62
  content_type :css if content.ext == '.css' # Meh?
59
63
  content_type :js if content.ext == '.js' # Meh?
@@ -61,6 +65,7 @@ module Gumdrop
61
65
  unless content.binary?
62
66
  log.info "[#{$$}] *Dynamic: #{file_path} (#{content.ext})"
63
67
  begin
68
+ renderer= Renderer.new
64
69
  content= renderer.draw content
65
70
  rescue => ex
66
71
  log.error "ERROR!"
data/lib/gumdrop/site.rb CHANGED
@@ -45,6 +45,13 @@ module Gumdrop
45
45
  @root= File.dirname @sitefile
46
46
  @last_run= 0
47
47
  @_preparations= []
48
+
49
+ @contents= ContentList.new
50
+ @layouts= SpecialContentList.new ".layout"
51
+ @partials= SpecialContentList.new
52
+ @generators= []
53
+ @data= DataManager.new
54
+
48
55
  clear
49
56
  end
50
57
 
@@ -55,11 +62,18 @@ module Gumdrop
55
62
 
56
63
 
57
64
  def clear()
58
- @contents= ContentList.new
59
- @layouts= SpecialContentList.new ".layout"
60
- @partials= SpecialContentList.new
61
- @generators= []
62
- @data= DataManager.new
65
+ @contents.clear()
66
+ @layouts.clear()
67
+ @partials.clear()
68
+ @generators.clear()
69
+ @data.clear()
70
+
71
+ # @contents= ContentList.new
72
+ # @layouts= SpecialContentList.new ".layout"
73
+ # @partials= SpecialContentList.new
74
+ # @generators= []
75
+ # @data= DataManager.new
76
+
63
77
  @is_scanned= false
64
78
  _reset_config!
65
79
  _load_sitefile
@@ -11,7 +11,9 @@ module Gumdrop::Util
11
11
  result= data.payload= yield(data)
12
12
  fire target, data
13
13
  fire "after_#{target}".to_sym, data
14
- data.return_value || result
14
+ ret_val= data.return_value || result
15
+ data.clear()
16
+ ret_val
15
17
  end
16
18
 
17
19
  def fire(event, data=nil)
@@ -43,9 +43,19 @@ module Gumdrop::Util
43
43
  @current_page= nil
44
44
  end
45
45
 
46
+ def each_with_index
47
+ @current_page=1
48
+ @pages.each do |page_set|
49
+ yield page_set, @current_page - 1
50
+ @current_page += 1
51
+ end
52
+ @current_page= nil
53
+ end
54
+
46
55
  def [](key)
47
56
  @pages[key]
48
57
  end
58
+
49
59
  end
50
60
 
51
61
  end
@@ -1,5 +1,5 @@
1
1
  module Gumdrop
2
2
 
3
- VERSION= "1.1.0"
3
+ VERSION= "1.1.1"
4
4
 
5
5
  end
@@ -0,0 +1,10 @@
1
+
2
+ body {
3
+ background: url(/logo.png);
4
+ background: url('/logo.png');
5
+ background: url("/logo.png");
6
+
7
+ background: url( /logo.png );
8
+ background: url( '/logo.png' );
9
+ }
10
+
@@ -0,0 +1,13 @@
1
+
2
+ <a href='../../index.html'>Home</a>
3
+ <a href="../../index.html">Home</a>
4
+ <a href = "../../index.html">Home</a>
5
+
6
+ <img src='../../logo.png'>
7
+ <img src="../../logo.png">
8
+ <img src = '../../logo.png'>
9
+
10
+ <data data='../../logo.png'>
11
+ <data data="../../logo.png">
12
+ <data data = '../../logo.png'>
13
+
@@ -9,6 +9,8 @@
9
9
  <li><a href="data-access/from-yamldoc.html">data-access/from-yamldoc.html</a></li>
10
10
  <li><a href="gen-with-block/as-file.html">gen-with-block/as-file.html</a></li>
11
11
  <li><a href="gen-with-block/as-plain.html">gen-with-block/as-plain.html</a></li>
12
+ <li><a href="gen-with-block/deeper/link-home.css">gen-with-block/deeper/link-home.css</a></li>
13
+ <li><a href="gen-with-block/deeper/link-home.html">gen-with-block/deeper/link-home.html</a></li>
12
14
  <li><a href="gen-with-block/layout-nested.html">gen-with-block/layout-nested.html</a></li>
13
15
  <li><a href="gen-with-block/layout-nil.html">gen-with-block/layout-nil.html</a></li>
14
16
  <li><a href="gen-with-block/layout-wrap.html">gen-with-block/layout-wrap.html</a></li>
@@ -34,8 +36,10 @@
34
36
  <li><a href="js/test-coffee.js">js/test-coffee.js</a></li>
35
37
  <li><a href="pages/docs/force-abs.html">pages/docs/force-abs.html</a></li>
36
38
  <li><a href="pages/docs/index.html">pages/docs/index.html</a></li>
39
+ <li><a href="pages/docs/info.html">pages/docs/info.html</a></li>
37
40
  <li><a href="partials/cached-internally.html">partials/cached-internally.html</a></li>
38
41
  <li><a href="partials/cached.html">partials/cached.html</a></li>
42
+ <li><a href="partials/deeply-nested.html">partials/deeply-nested.html</a></li>
39
43
  <li><a href="partials/hoisted-data.html">partials/hoisted-data.html</a></li>
40
44
  <li><a href="partials/nested.html">partials/nested.html</a></li>
41
45
  <li><a href="partials/params.html">partials/params.html</a></li>
@@ -0,0 +1,6 @@
1
+ <body class="site"><h1>I got stuff to say.</h1>
2
+
3
+ <p>Are you going to listen?</p>
4
+
5
+ <p>Visit <a href="http://zoodotcom.com">http://zoodotcom.com</a> for fun and profit!</p>
6
+ </body>
@@ -0,0 +1 @@
1
+ <body class="site">One Two Three Four Five!</body>
@@ -10,6 +10,8 @@ Gumdrop.configure do |config|
10
10
  config.custom_setting= 'yep'
11
11
  config.log_level= :debug if config.mode == :test
12
12
  config.log= config.mode == :test ? 'test.log' : STDOUT
13
+
14
+ config.relative_paths_exts= %w(.html .htm .css)
13
15
  end
14
16
 
15
17
  Gumdrop.ignore %w(output/**/* *.log data/**/* Gemfile Gemfile.lock)
@@ -61,4 +63,31 @@ Gumdrop.generate 'pages with blocks and layouts' do |gen|
61
63
  gen.file 'gen-with-block/as-file.html' do
62
64
  "Test File"
63
65
  end
66
+ gen.file 'gen-with-block/deeper/link-home.html' do
67
+ """
68
+ <a href='/index.html'>Home</a>
69
+ <a href=\"/index.html\">Home</a>
70
+ <a href = \"/index.html\">Home</a>
71
+
72
+ <img src='/logo.png'>
73
+ <img src=\"/logo.png\">
74
+ <img src = '/logo.png'>
75
+
76
+ <data data='/logo.png'>
77
+ <data data=\"/logo.png\">
78
+ <data data = '/logo.png'>
79
+ """
80
+ end
81
+ gen.file 'gen-with-block/deeper/link-home.css' do
82
+ """
83
+ body {
84
+ background: url(/logo.png);
85
+ background: url('/logo.png');
86
+ background: url(\"/logo.png\");
87
+
88
+ background: url( /logo.png );
89
+ background: url( '/logo.png' );
90
+ }
91
+ """
92
+ end
64
93
  end
@@ -0,0 +1,5 @@
1
+ # I got stuff to say.
2
+
3
+ Are you going to listen?
4
+
5
+ Visit <http://zoodotcom.com> for fun and profit!
@@ -0,0 +1 @@
1
+ Four <%= render 'sub-five' %>
@@ -0,0 +1 @@
1
+ One <%= render 'sub-two' %>
@@ -0,0 +1 @@
1
+ Three <%= render 'sub-four' %>
@@ -0,0 +1 @@
1
+ Two <%= render 'sub-three' %>
@@ -0,0 +1 @@
1
+ <%= render 'sub-one' %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gumdrop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-25 00:00:00.000000000 Z
12
+ date: 2013-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -123,70 +123,6 @@ dependencies:
123
123
  - - '='
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.4.0
126
- - !ruby/object:Gem::Dependency
127
- name: sprockets
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - '='
132
- - !ruby/object:Gem::Version
133
- version: 2.4.3
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - '='
140
- - !ruby/object:Gem::Version
141
- version: 2.4.3
142
- - !ruby/object:Gem::Dependency
143
- name: stitch
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - '='
148
- - !ruby/object:Gem::Version
149
- version: 0.1.6
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - '='
156
- - !ruby/object:Gem::Version
157
- version: 0.1.6
158
- - !ruby/object:Gem::Dependency
159
- name: jsmin
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - '='
164
- - !ruby/object:Gem::Version
165
- version: 1.0.1
166
- type: :runtime
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - '='
172
- - !ruby/object:Gem::Version
173
- version: 1.0.1
174
- - !ruby/object:Gem::Dependency
175
- name: json
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ~>
180
- - !ruby/object:Gem::Version
181
- version: 1.7.7
182
- type: :runtime
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: 1.7.7
190
126
  - !ruby/object:Gem::Dependency
191
127
  name: minitest
192
128
  requirement: !ruby/object:Gem::Requirement
@@ -280,6 +216,8 @@ files:
280
216
  - specs/fixtures/expected/data-access/from-yamldoc.html
281
217
  - specs/fixtures/expected/gen-with-block/as-file.html
282
218
  - specs/fixtures/expected/gen-with-block/as-plain.html
219
+ - specs/fixtures/expected/gen-with-block/deeper/link-home.css
220
+ - specs/fixtures/expected/gen-with-block/deeper/link-home.html
283
221
  - specs/fixtures/expected/gen-with-block/layout-nested.html
284
222
  - specs/fixtures/expected/gen-with-block/layout-nil.html
285
223
  - specs/fixtures/expected/gen-with-block/layout-wrap.html
@@ -305,8 +243,10 @@ files:
305
243
  - specs/fixtures/expected/js/test-coffee.js
306
244
  - specs/fixtures/expected/pages/docs/force-abs.html
307
245
  - specs/fixtures/expected/pages/docs/index.html
246
+ - specs/fixtures/expected/pages/docs/info.html
308
247
  - specs/fixtures/expected/partials/cached-internally.html
309
248
  - specs/fixtures/expected/partials/cached.html
249
+ - specs/fixtures/expected/partials/deeply-nested.html
310
250
  - specs/fixtures/expected/partials/hoisted-data.html
311
251
  - specs/fixtures/expected/partials/nested.html
312
252
  - specs/fixtures/expected/partials/params.html
@@ -350,15 +290,22 @@ files:
350
290
  - specs/fixtures/source/pages/_users-nested.html.erb
351
291
  - specs/fixtures/source/pages/docs/force-abs.html.erb
352
292
  - specs/fixtures/source/pages/docs/index.html.erb
293
+ - specs/fixtures/source/pages/docs/info.html.markdown
353
294
  - specs/fixtures/source/partials/_params-internally-cached.html.erb
354
295
  - specs/fixtures/source/partials/_params.html.erb
355
296
  - specs/fixtures/source/partials/_post_entry.html.erb
356
297
  - specs/fixtures/source/partials/_provides_name.html.erb
298
+ - specs/fixtures/source/partials/_sub-five.html.erb
299
+ - specs/fixtures/source/partials/_sub-four.html.erb
300
+ - specs/fixtures/source/partials/_sub-one.html.erb
301
+ - specs/fixtures/source/partials/_sub-three.html.erb
302
+ - specs/fixtures/source/partials/_sub-two.html.erb
357
303
  - specs/fixtures/source/partials/_user-params.html.erb
358
304
  - specs/fixtures/source/partials/_user.html.erb
359
305
  - specs/fixtures/source/partials/_user_sets_layout.html.erb
360
306
  - specs/fixtures/source/partials/cached-internally.html.erb
361
307
  - specs/fixtures/source/partials/cached.html.erb
308
+ - specs/fixtures/source/partials/deeply-nested.html.erb
362
309
  - specs/fixtures/source/partials/hoisted-data.html.erb
363
310
  - specs/fixtures/source/partials/nested.html.erb
364
311
  - specs/fixtures/source/partials/params.html.erb