gumdrop 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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