Sha256: a5e36d9f82ad77500b61e1293f20ef5614fd1d5605b4dd266429a10a6ef87407
Contents?: true
Size: 1.36 KB
Versions: 4
Compression:
Stored size: 1.36 KB
Contents
module Slippers class TemplateGroup def initialize(params={}) @templates = params[:templates] @super_group = params[:super_group] @missing_handler = params[:missing_template_handler] || Slippers::Engine::MISSING_HANDLER @default_string = params[:default_string] || Slippers::Engine::DEFAULT_STRING end attr_reader :missing_handler, :default_string def find(subtemplate) return nil unless @templates return create_template(subtemplate.to_sym) if @templates.include?(subtemplate.to_sym) find_in_super_group(subtemplate) end def has_registered?(class_name) return false unless @templates return true if @templates.include?(class_name) return false unless @super_group @super_group.has_registered?(class_name) end def render(item) return '' unless @templates return @templates[item.class].render(item) if has_registered?(item.class) return '' unless @super_group @super_group.render(item) end private def find_in_super_group(subtemplate) return nil unless @super_group @super_group.find(subtemplate) end def create_template(subtemplate) template = @templates[subtemplate] return template unless template.is_a?(String) Slippers::Engine.new(template) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
slippers-0.0.14 | lib/engine/template_group.rb |
slippers-0.0.13 | lib/engine/template_group.rb |
slippers-0.0.12 | lib/engine/template_group.rb |
slippers-0.0.11 | lib/engine/template_group.rb |