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 +4 -0
- data/Notes.md +2 -2
- data/bin/gumdrop +1 -1
- data/gumdrop.gemspec +7 -4
- data/lib/gumdrop/cli/internal.rb +4 -0
- data/lib/gumdrop/content.rb +15 -1
- data/lib/gumdrop/data.rb +4 -0
- data/lib/gumdrop/renderer.rb +116 -63
- data/lib/gumdrop/server.rb +9 -4
- data/lib/gumdrop/site.rb +19 -5
- data/lib/gumdrop/util/eventable.rb +3 -1
- data/lib/gumdrop/util/pager.rb +10 -0
- data/lib/gumdrop/version.rb +1 -1
- data/specs/fixtures/expected/gen-with-block/deeper/link-home.css +10 -0
- data/specs/fixtures/expected/gen-with-block/deeper/link-home.html +13 -0
- data/specs/fixtures/expected/index.html +4 -0
- data/specs/fixtures/expected/pages/docs/info.html +6 -0
- data/specs/fixtures/expected/partials/deeply-nested.html +1 -0
- data/specs/fixtures/source/Gumdrop +29 -0
- data/specs/fixtures/source/pages/docs/info.html.markdown +5 -0
- data/specs/fixtures/source/partials/_sub-five.html.erb +1 -0
- data/specs/fixtures/source/partials/_sub-four.html.erb +1 -0
- data/specs/fixtures/source/partials/_sub-one.html.erb +1 -0
- data/specs/fixtures/source/partials/_sub-three.html.erb +1 -0
- data/specs/fixtures/source/partials/_sub-two.html.erb +1 -0
- data/specs/fixtures/source/partials/deeply-nested.html.erb +1 -0
- metadata +13 -66
data/ChangeLog.md
CHANGED
data/Notes.md
CHANGED
data/bin/gumdrop
CHANGED
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 '
|
37
|
-
s.add_dependency '
|
38
|
-
s.add_dependency '
|
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'
|
data/lib/gumdrop/cli/internal.rb
CHANGED
@@ -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
|
|
data/lib/gumdrop/content.rb
CHANGED
@@ -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
|
-
|
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
data/lib/gumdrop/renderer.rb
CHANGED
@@ -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]*)('|"|"|"|')?\\/([\\/]?)>, '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
|
-
@
|
13
|
+
@ctx_pool= ContextPool.new self
|
15
14
|
@cache= {}
|
16
15
|
end
|
17
16
|
|
18
17
|
def draw(content, opts={})
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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]*)('|"|"|"|')?\\/([\\/]?)>, 'i')
|
102
|
+
# CSS_MUNGABLE_RE= Regexp.new(%Q<(href|data|src)([\s]*)=([\s]*)('|"|"|"|')?\\/([\\/]?)>, '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
|
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
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
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
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
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
|
-
|
171
|
-
|
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
|
-
@
|
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)
|
data/lib/gumdrop/server.rb
CHANGED
@@ -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
|
-
|
48
|
-
if scan_count %
|
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
|
59
|
-
@layouts
|
60
|
-
@partials
|
61
|
-
@generators
|
62
|
-
@data
|
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
|
data/lib/gumdrop/util/pager.rb
CHANGED
@@ -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
|
data/lib/gumdrop/version.rb
CHANGED
@@ -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 @@
|
|
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 @@
|
|
1
|
+
Five!
|
@@ -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.
|
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-
|
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
|