Class: Sbuilder::Template
- Inherits:
-
Mustache
- Object
- Mustache
- Sbuilder::Template
- Extended by:
- Forwardable
- Includes:
- Utils::MyLogger
- Defined in:
- lib/sbuilder/mustache/template.rb
Constant Summary collapse
- PROGNAME =
progname for logger
"template"
Constants included from Utils::MyLogger
Instance Attribute Summary collapse
-
#partials ⇒ Object
writeonly
instance.
-
#reader ⇒ Object
readonly
Returns the value of attribute reader.
Instance Method Summary collapse
-
#get_partial(name) ⇒ Object
cache @partials - for easier extension.
-
#initialize(reader, options = {}) ⇒ Template
constructor
—————————————————————— Constructor.
-
#partial(name) ⇒ Object
method used by mustache framework - delegate to ‘get_partial’.
- #render_str(template, data) ⇒ Object
-
#resolve_partial_name(name) ⇒ Object
lookup.
-
#to_str(template_name, data) ⇒ Object
—————————————————————— Services.
Methods included from Utils::MyLogger
Constructor Details
#initialize(reader, options = {}) ⇒ Template
Constructor
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sbuilder/mustache/template.rb', line 25 def initialize( reader, ={} ) @logger = getLogger( PROGNAME, ) @logger.info( "#{__method__} created" ) @logger.debug( "#{__method__}, options='#{}" ) # init partial cache @partials = {} # inject reader #@reader = Sbuilder::TemplateReader.new( options ) @reader = reader end |
Instance Attribute Details
#partials=(value) ⇒ Object (writeonly)
instance
15 16 17 |
# File 'lib/sbuilder/mustache/template.rb', line 15 def partials=(value) @partials = value end |
#reader ⇒ Object (readonly)
Returns the value of attribute reader.
16 17 18 |
# File 'lib/sbuilder/mustache/template.rb', line 16 def reader @reader end |
Instance Method Details
#get_partial(name) ⇒ Object
cache @partials - for easier extension
106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/sbuilder/mustache/template.rb', line 106 def get_partial( name ) @logger.debug( "#{__method__} name=#{name}" ) return @partials[name] if @partials[name] @logger.info( "#{__method__} read partial_file=#{name}" ) @partials[name] = get_template( name ) return @partials[name] # partial_file = get_template_filepath( name ) # @logger.info( "#{__method__} read partial_file=#{partial_file}" ) # @partials[name] = File.read( partial_file ) # @partials[name] end |
#partial(name) ⇒ Object
method used by mustache framework - delegate to ‘get_partial’
65 66 67 68 69 70 |
# File 'lib/sbuilder/mustache/template.rb', line 65 def partial(name) @logger.debug( "#{__method__} name=#{name}" ) # return resolve_partial_direct(name[2..-1]) if name[0..1] == '!!' get_partial( resolve_partial_name(name) ) end |
#render_str(template, data) ⇒ Object
57 58 59 |
# File 'lib/sbuilder/mustache/template.rb', line 57 def render_str( template, data ) render( template, data ) end |
#resolve_partial_name(name) ⇒ Object
lookup
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/sbuilder/mustache/template.rb', line 86 def resolve_partial_name( name ) return name unless name[0..0] == '!' # remove !, split, and use injected traves to access data ret = @data.traverse( *(name[1..-1].split( "." )) ) if ret.nil? raise <<-EOS Could not resolve #{name} in template data #{@data.to_yaml} EOS end @logger.info( "#{__method__} name=#{name} --> #{ret}" ) ret end |
#to_str(template_name, data) ⇒ Object
Services
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sbuilder/mustache/template.rb', line 42 def to_str( template_name, data ) @logger.info( "#{__method__}: template_name=#{template_name}" ) @logger.debug( "#{__method__}: template_name=#{template_name}" ) if @logger.debug? # @logger.debug( "#{__method__}: nodes=#{data.nodes}" ) # data = add_dynamic_load( data ) @data = data template = get_template( template_name ) # render( template, @data ) render( template, @data ) end |