The attribute directive superclass. Attribute directives are those that present an exterior interface to the controlling system for message-passing and content-injection (e.g., <?attr?>, <?set?>, <?config?>, etc.)
Try to pre-render any attributes which correspond to this node.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 446
446: def before_rendering( template )
447: if attrib = template[ self.name ]
448: # self.log.debug " got %s attribute in #before_rendering for %p" %
449: # [ attrib.class.name, self.name ]
450:
451: if attrib.respond_to?( :before_rendering )
452: # self.log.debug " pre-rendering attribute %p" % [attrib]
453: attrib.before_rendering( template )
454: elsif attrib.respond_to?( :each )
455: # self.log.debug " iterating over attribute %p" % [attrib]
456: attrib.each do |obj|
457: obj.before_rendering if obj.respond_to?( :before_rendering )
458: end
459: end
460: else
461: # No-op
462: # self.log.debug " no value for node %p in #before_rendering" %
463: # self.name
464: end
465: end
Return a human-readable version of the object suitable for debugging messages.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 480
480: def inspect
481: %Q{<%s %s%s (Format: %p)>} % [
482: @type.capitalize,
483: @name,
484: @methodchain.strip.empty? ? "" : @methodchain,
485: @format,
486: ]
487: end
Returns true for nodes which generate output themselves (as opposed to ones which generate output through subnodes). This is used for eliding blank lines from the node tree.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 440
440: def is_rendering_node?
441: true
442: end
Render the directive node‘s contents as a String and return it.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 469
469: def render( template, scope )
470: # self.log.debug "Rendering %p" % self
471: rary = super
472:
473: rary.push( *(self.render_contents( template, scope )) )
474: return rary
475: end
Return an HTML fragment that can be used to represent the node symbolically in a web-based introspection interface.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 492
492: def to_html
493: html = ''
494: if @format
495: html << %q{"%s" %% } % self.escape_html( @format )
496: end
497: html << %q{<strong>#%s</strong>} % @name
498: if @methodchain
499: html << self.escape_html( @methodchain )
500: end
501:
502: if block_given?
503: html << " " << yield
504: end
505:
506: super { html }
507: end
Build a Proc object that encapsulates the execution necessary to render the directive.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 554
554: def build_rendering_proc( template, scope )
555: return nil if self.format.nil? && self.methodchain.nil?
556:
557: if self.format
558: code = %(Proc.new {|%s| "%s" %% %s%s}) %
559: [ self.name, self.format, self.name, self.methodchain ]
560: else
561: code = "Proc.new {|%s| %s%s}" %
562: [ self.name, self.name, self.methodchain ]
563: end
564: code.untaint
565:
566: #self.log.debug "Rendering proc code is: %p" % code
567: desc = "[%s (%s): %s]" %
568: [ self.class.name, __FILE__, code ]
569:
570: return eval( code, scope.get_binding, desc, __LINE__ )
571: end
Call the node‘s methodchain, if any, passing the associated attribute as the first argument and any additional args as second and succeeding arguments. Returns the results of the call.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 577
577: def call_methodchain( template, scope, *args )
578: chain = self.build_rendering_proc( template, scope )
579: # self.log.debug "Rendering proc is: %p" % chain
580:
581: # self.log.debug "Fetching attribute %p of template %p" %
582: # [ self.name, template ]
583: attribute = template.send( self.name )
584: # self.log.debug "Attribute to be rendered (%s) is: %p" %
585: # [ self.name, attribute ]
586:
587: if chain
588: return chain.call( attribute, *args )
589: else
590: return attribute
591: end
592: end
Initialize a new AttributeDirective with the given tag name, template parser, and parser state.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 413
413: def initialize( type, parser, state ) # :notnew:
414: @name = nil
415: @format = nil
416: @methodchain = nil
417: super
418: end
Parse the contents of the directive, looking for an optional format for tags like <?directive "%-15s" % foo ?>, then a required identifier, then an optional methodchain attached to the identifier.
# File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 517
517: def parse_directive_contents( parser, state )
518: super
519:
520: # Look for a format
521: if self.class.allows_format?
522: if fmt = parser.scan_for_quoted_string( state )
523: state.scanner.skip( /\s*%\s*/ ) or
524: raise Arrow::ParseError, "Format missing modulus operator?"
525: @format = fmt[1..-2]
526: #self.log.debug "Found format %p" % @format
527: else
528: #self.log.debug "No format string"
529: @format = nil
530: end
531: end
532:
533: # Look for the identifier
534: @name = parser.scan_for_identifier( state ) or
535: raise Arrow::ParseError, "missing or malformed indentifier"
536: #self.log.debug "Set name of %s to %p" %
537: # [ self.class.name, @name ]
538:
539: # Now pick up the methodchain if there is one
540: @methodchain = parser.scan_for_methodchain( state )
541:
542: return true
543: end
--- SEC00156
--- ""
---
- name: format
rw: RW
a_desc: |+
The format string that was specified with the directive, if any
- name: methodchain
rw: RW
a_desc: |+
The source code for the methodchain that will be used to <a
href="AttributeDirective.html#M000507">render</a> the attribute.
- name: name
rw: R
a_desc: |+
The name of the directive, which is used to associate it with a attribute
in the template the node belongs to.
---
- methods:
- visibility: public
aref: M000503
name: allows_format?
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 402</span>\n\
402: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">allows_format?</span>\n\
403: <span class=\"ruby-keyword kw\">true</span>\n\
404: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns <tt>true</tt> for classes that support a prepended format. (e.g.,
<?call "%15s" % foo ?>).
</p>
params: ()
category: Class
type: Public
- methods:
- visibility: public
aref: M000506
name: before_rendering
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 446</span>\n\
446: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">before_rendering</span>( <span class=\"ruby-identifier\">template</span> )\n\
447: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">attrib</span> = <span class=\"ruby-identifier\">template</span>[ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span> ]\n\
448: <span class=\"ruby-comment cmt\"># self.log.debug " got %s attribute in #before_rendering for %p" %</span>\n\
449: <span class=\"ruby-comment cmt\"># [ attrib.class.name, self.name ]</span>\n\
450: \n\
451: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">attrib</span>.<span class=\"ruby-identifier\">respond_to?</span>( <span class=\"ruby-identifier\">:before_rendering</span> )\n\
452: <span class=\"ruby-comment cmt\"># self.log.debug " pre-rendering attribute %p" % [attrib]</span>\n\
453: <span class=\"ruby-identifier\">attrib</span>.<span class=\"ruby-identifier\">before_rendering</span>( <span class=\"ruby-identifier\">template</span> )\n\
454: <span class=\"ruby-keyword kw\">elsif</span> <span class=\"ruby-identifier\">attrib</span>.<span class=\"ruby-identifier\">respond_to?</span>( <span class=\"ruby-identifier\">:each</span> )\n\
455: <span class=\"ruby-comment cmt\"># self.log.debug " iterating over attribute %p" % [attrib]</span>\n\
456: <span class=\"ruby-identifier\">attrib</span>.<span class=\"ruby-identifier\">each</span> <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">obj</span><span class=\"ruby-operator\">|</span>\n\
457: <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">before_rendering</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">respond_to?</span>( <span class=\"ruby-identifier\">:before_rendering</span> )\n\
458: <span class=\"ruby-keyword kw\">end</span>\n\
459: <span class=\"ruby-keyword kw\">end</span>\n\
460: <span class=\"ruby-keyword kw\">else</span>\n\
461: <span class=\"ruby-comment cmt\"># No-op</span>\n\
462: <span class=\"ruby-comment cmt\"># self.log.debug " no value for node %p in #before_rendering" %</span>\n\
463: <span class=\"ruby-comment cmt\"># self.name</span>\n\
464: <span class=\"ruby-keyword kw\">end</span>\n\
465: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Try to pre-<a href="AttributeDirective.html#M000507">render</a> any
attributes which correspond to this node.
</p>
params: ( template )
- visibility: public
aref: M000508
name: inspect
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 480</span>\n\
480: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">inspect</span>\n\
481: <span class=\"ruby-value str\">%Q{<%s %s%s (Format: %p)>}</span> <span class=\"ruby-operator\">%</span> [\n\
482: <span class=\"ruby-ivar\">@type</span>.<span class=\"ruby-identifier\">capitalize</span>,\n\
483: <span class=\"ruby-ivar\">@name</span>,\n\
484: <span class=\"ruby-ivar\">@methodchain</span>.<span class=\"ruby-identifier\">strip</span>.<span class=\"ruby-identifier\">empty?</span> <span class=\"ruby-value\">? </span><span class=\"ruby-value str\">""</span> <span class=\"ruby-operator\">:</span> <span class=\"ruby-ivar\">@methodchain</span>,\n\
485: <span class=\"ruby-ivar\">@format</span>,\n\
486: ]\n\
487: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Return a human-readable version of the object suitable for debugging
messages.
</p>
params: ()
- visibility: public
aref: M000505
name: is_rendering_node?
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 440</span>\n\
440: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">is_rendering_node?</span>\n\
441: <span class=\"ruby-keyword kw\">true</span>\n\
442: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns <tt>true</tt> for nodes which generate output themselves (as
opposed to ones which generate output through subnodes). This is used for
eliding blank lines from the node tree.
</p>
params: ()
- visibility: public
aref: M000507
name: render
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 469</span>\n\
469: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">render</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )\n\
470: <span class=\"ruby-comment cmt\"># self.log.debug "Rendering %p" % self</span>\n\
471: <span class=\"ruby-identifier\">rary</span> = <span class=\"ruby-keyword kw\">super</span>\n\
472: \n\
473: <span class=\"ruby-identifier\">rary</span>.<span class=\"ruby-identifier\">push</span>( <span class=\"ruby-operator\">*</span>(<span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">render_contents</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )) )\n\
474: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">rary</span>\n\
475: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Render the directive node‘s contents as a String and return it.
</p>
params: ( template, scope )
- visibility: public
aref: M000509
name: to_html
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 492</span>\n\
492: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">to_html</span>\n\
493: <span class=\"ruby-identifier\">html</span> = <span class=\"ruby-value str\">''</span>\n\
494: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-ivar\">@format</span>\n\
495: <span class=\"ruby-identifier\">html</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">%q{"%s" %% }</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">escape_html</span>( <span class=\"ruby-ivar\">@format</span> )\n\
496: <span class=\"ruby-keyword kw\">end</span>\n\
497: <span class=\"ruby-identifier\">html</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">%q{<strong>#%s</strong>}</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-ivar\">@name</span>\n\
498: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-ivar\">@methodchain</span>\n\
499: <span class=\"ruby-identifier\">html</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">escape_html</span>( <span class=\"ruby-ivar\">@methodchain</span> )\n\
500: <span class=\"ruby-keyword kw\">end</span>\n\
501: \n\
502: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">block_given?</span>\n\
503: <span class=\"ruby-identifier\">html</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">" "</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-keyword kw\">yield</span>\n\
504: <span class=\"ruby-keyword kw\">end</span>\n\
505: \n\
506: <span class=\"ruby-keyword kw\">super</span> { <span class=\"ruby-identifier\">html</span> }\n\
507: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Return an HTML fragment that can be used to represent the node symbolically
in a web-based introspection interface.
</p>
params: () {|| ...}
category: Instance
type: Public
- methods:
- visibility: protected
aref: M000512
name: build_rendering_proc
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 554</span>\n\
554: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">build_rendering_proc</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )\n\
555: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">nil</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">format</span>.<span class=\"ruby-identifier\">nil?</span> <span class=\"ruby-operator\">&&</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">methodchain</span>.<span class=\"ruby-identifier\">nil?</span>\n\
556: \n\
557: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">format</span>\n\
558: <span class=\"ruby-identifier\">code</span> = <span class=\"ruby-value str\">%(Proc.new {|%s| "%s" %% %s%s})</span> <span class=\"ruby-operator\">%</span> \n\
559: [ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">format</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">methodchain</span> ]\n\
560: <span class=\"ruby-keyword kw\">else</span>\n\
561: <span class=\"ruby-identifier\">code</span> = <span class=\"ruby-value str\">"Proc.new {|%s| %s%s}"</span> <span class=\"ruby-operator\">%</span>\n\
562: [ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">methodchain</span> ]\n\
563: <span class=\"ruby-keyword kw\">end</span>\n\
564: <span class=\"ruby-identifier\">code</span>.<span class=\"ruby-identifier\">untaint</span>\n\
565: \n\
566: <span class=\"ruby-comment cmt\">#self.log.debug "Rendering proc code is: %p" % code</span>\n\
567: <span class=\"ruby-identifier\">desc</span> = <span class=\"ruby-value str\">"[%s (%s): %s]"</span> <span class=\"ruby-operator\">%</span>\n\
568: [ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">__FILE__</span>, <span class=\"ruby-identifier\">code</span> ]\n\
569: \n\
570: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">eval</span>( <span class=\"ruby-identifier\">code</span>, <span class=\"ruby-identifier\">scope</span>.<span class=\"ruby-identifier\">get_binding</span>, <span class=\"ruby-identifier\">desc</span>, <span class=\"ruby-keyword kw\">__LINE__</span> )\n\
571: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Build a Proc object that encapsulates the execution necessary to <a
href="AttributeDirective.html#M000507">render</a> the directive.
</p>
params: ( template, scope )
- visibility: protected
aref: M000513
name: call_methodchain
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 577</span>\n\
577: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">call_methodchain</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
578: <span class=\"ruby-identifier\">chain</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">build_rendering_proc</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )\n\
579: <span class=\"ruby-comment cmt\"># self.log.debug "Rendering proc is: %p" % chain</span>\n\
580: \n\
581: <span class=\"ruby-comment cmt\"># self.log.debug "Fetching attribute %p of template %p" %</span>\n\
582: <span class=\"ruby-comment cmt\"># [ self.name, template ]</span>\n\
583: <span class=\"ruby-identifier\">attribute</span> = <span class=\"ruby-identifier\">template</span>.<span class=\"ruby-identifier\">send</span>( <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span> )\n\
584: <span class=\"ruby-comment cmt\"># self.log.debug "Attribute to be rendered (%s) is: %p" %</span>\n\
585: <span class=\"ruby-comment cmt\"># [ self.name, attribute ]</span>\n\
586: \n\
587: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">chain</span>\n\
588: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">chain</span>.<span class=\"ruby-identifier\">call</span>( <span class=\"ruby-identifier\">attribute</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
589: <span class=\"ruby-keyword kw\">else</span>\n\
590: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">attribute</span>\n\
591: <span class=\"ruby-keyword kw\">end</span>\n\
592: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Call the node‘s methodchain, if any, passing the associated attribute
as the first argument and any additional <tt>args</tt> as second and
succeeding arguments. Returns the results of the call.
</p>
params: ( template, scope, *args )
- visibility: protected
aref: M000504
name: initialize
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 413</span>\n\
413: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-identifier\">type</span>, <span class=\"ruby-identifier\">parser</span>, <span class=\"ruby-identifier\">state</span> ) <span class=\"ruby-comment cmt\"># :notnew:</span>\n\
414: <span class=\"ruby-ivar\">@name</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
415: <span class=\"ruby-ivar\">@format</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
416: <span class=\"ruby-ivar\">@methodchain</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
417: <span class=\"ruby-keyword kw\">super</span>\n\
418: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Initialize a new <a href="AttributeDirective.html">AttributeDirective</a>
with the given tag <tt>name</tt>, template <tt>parser</tt>, and parser
<tt>state</tt>.
</p>
params: ( type, parser, state )
- visibility: protected
aref: M000510
name: parse_directive_contents
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 517</span>\n\
517: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">parse_directive_contents</span>( <span class=\"ruby-identifier\">parser</span>, <span class=\"ruby-identifier\">state</span> )\n\
518: <span class=\"ruby-keyword kw\">super</span>\n\
519: \n\
520: <span class=\"ruby-comment cmt\"># Look for a format</span>\n\
521: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">allows_format?</span>\n\
522: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">fmt</span> = <span class=\"ruby-identifier\">parser</span>.<span class=\"ruby-identifier\">scan_for_quoted_string</span>( <span class=\"ruby-identifier\">state</span> )\n\
523: <span class=\"ruby-identifier\">state</span>.<span class=\"ruby-identifier\">scanner</span>.<span class=\"ruby-identifier\">skip</span>( <span class=\"ruby-regexp re\">/\\s*%\\s*/</span> ) <span class=\"ruby-keyword kw\">or</span>\n\
524: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">ParseError</span>, <span class=\"ruby-value str\">"Format missing modulus operator?"</span>\n\
525: <span class=\"ruby-ivar\">@format</span> = <span class=\"ruby-identifier\">fmt</span>[<span class=\"ruby-value\">1</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-2</span>]\n\
526: <span class=\"ruby-comment cmt\">#self.log.debug "Found format %p" % @format</span>\n\
527: <span class=\"ruby-keyword kw\">else</span>\n\
528: <span class=\"ruby-comment cmt\">#self.log.debug "No format string"</span>\n\
529: <span class=\"ruby-ivar\">@format</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
530: <span class=\"ruby-keyword kw\">end</span>\n\
531: <span class=\"ruby-keyword kw\">end</span>\n\
532: \n\
533: <span class=\"ruby-comment cmt\"># Look for the identifier</span>\n\
534: <span class=\"ruby-ivar\">@name</span> = <span class=\"ruby-identifier\">parser</span>.<span class=\"ruby-identifier\">scan_for_identifier</span>( <span class=\"ruby-identifier\">state</span> ) <span class=\"ruby-keyword kw\">or</span>\n\
535: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">ParseError</span>, <span class=\"ruby-value str\">"missing or malformed indentifier"</span>\n\
536: <span class=\"ruby-comment cmt\">#self.log.debug "Set name of %s to %p" %</span>\n\
537: <span class=\"ruby-comment cmt\"># [ self.class.name, @name ]</span>\n\
538: \n\
539: <span class=\"ruby-comment cmt\"># Now pick up the methodchain if there is one</span>\n\
540: <span class=\"ruby-ivar\">@methodchain</span> = <span class=\"ruby-identifier\">parser</span>.<span class=\"ruby-identifier\">scan_for_methodchain</span>( <span class=\"ruby-identifier\">state</span> )\n\
541: \n\
542: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">true</span>\n\
543: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Parse the contents of the directive, looking for an optional format for
tags like <?directive "%-15s" % foo ?>, then a required
identifier, then an optional methodchain attached to the identifier.
</p>
params: ( parser, state )
- visibility: protected
aref: M000511
name: render_contents
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/template/nodes.rb, line 547</span>\n\
547: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">render_contents</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )\n\
548: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">call_methodchain</span>( <span class=\"ruby-identifier\">template</span>, <span class=\"ruby-identifier\">scope</span> )\n\
549: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Render the contents of the node
</p>
params: ( template, scope )
category: Instance
type: Protected
---
---
- name: SVNRev
desc: |+
SVN Revision
value: "%q$Rev: 437 $"
- name: SVNId
desc: |+
SVN Id
value: "%q$Id: nodes.rb 437 2008-03-28 00:49:20Z deveiant $"
Generated with the Darkfish Rdoc Generator.