class Gumdrop::Generator
Public Class Methods
new(content=nil, opts={}, &block)
click to toggle source
# File lib/gumdrop/generator.rb, line 6 def initialize(content=nil, opts={}, &block) # block? @content= content || block @dsl= DSL.new self @pages= [] @filename= content.nil? ? (opts[:filename] || '') : content.filename @base_path= content.nil? ? (opts[:base_path] || '') : content.dirname end
Public Instance Methods
_render_inline_content(opts)
click to toggle source
# File lib/gumdrop/generator.rb, line 66 def _render_inline_content(opts) Proc.new { renderer= site.active_renderer || Renderer.new raise "Generator: page :render=>'partial' param is missing!" unless opts[:render] content= site.resolve(opts[:render], opts) opts[:inline_render]= true renderer.draw content, opts } end
execute()
click to toggle source
# File lib/gumdrop/generator.rb, line 52 def execute log.debug "(Generator '#{ @filename }')" if @content.is_a? Proc if @content.arity == 1 @content.call @dsl else @dsl.instance_eval &@content end else @dsl.instance_eval @content.body end log.debug " created: #{ @pages.size } pages" end
gen_page(name, opts={}, params={}, &block)
click to toggle source
# File lib/gumdrop/generator.rb, line 30 def gen_page(name, opts={}, params={}, &block) event_block :generate_item do name.relative! opts= params.reverse_merge(opts) filepath= if @base_path.empty? site.source_path / name else site.source_path / @base_path / name end if block.nil? handler= _render_inline_content opts content= site.contents.create filepath, self, &handler else content= site.contents.create filepath, self, &block end content.params.merge! opts content.params.merge! opts[:params] if opts.has_key?(:params) log.debug " generated: #{content.uri}" @pages << content end end
pages()
click to toggle source
# File lib/gumdrop/generator.rb, line 26 def pages @pages end
reload()
click to toggle source
# File lib/gumdrop/generator.rb, line 21 def reload unload execute end
unload()
click to toggle source
# File lib/gumdrop/generator.rb, line 14 def unload pages.each do |content| site.contents.remove content end @dsl= DSL.new self end