doc/api/classes/ERBook/Document.html in erbook-9.2.0 vs doc/api/classes/ERBook/Document.html in erbook-9.2.1

- old
+ new

@@ -47,20 +47,20 @@ <dt>N</dt> <dd> <ul> - <li><a href="#M000050">new</a></li> + <li><a href="#M000051">new</a></li> </ul> </dd> <dt>T</dt> <dd> <ul> - <li><a href="#M000062">to_s</a></li> + <li><a href="#M000052">to_s</a></li> </ul> </dd> </dl> @@ -130,13 +130,13 @@ <div class="sectiontitle">Class Public methods</div> <div class="method"> - <div class="title" id="M000050"> + <div class="title" id="M000051"> - <a name="M000050"></a><b>new</b>(format_name, input_text, input_file, options = {}) + <a name="M000051"></a><b>new</b>(format_name, input_text, input_file, options = {}) </div> <div class="description"> <h4>Parameters</h4> @@ -164,228 +164,37 @@ <div class="sourcecode"> <p class="source-link"> - Source: <a href="javascript:toggleSource('M000050_source')" id="l_M000050_source">show</a> + Source: <a href="javascript:toggleSource('M000051_source')" id="l_M000051_source">show</a> - | <a href="http://github.com/sunaku/erbook/blob/eda493a151e7b55d041d0a094c586e2c22aa63cc/lib/erbook/document.rb#L42" target="_blank" class="github_url">on GitHub</a> + | <a href="http://github.com/sunaku/erbook/blob/8c15499d81a4c71c3a15850bff81dc6e5d0236c5/lib/erbook/document.rb#L42" target="_blank" class="github_url">on GitHub</a> </p> - <div id="M000050_source" class="dyn-source"> + <div id="M000051_source" class="dyn-source"> <pre><span class="ruby-comment cmt"># File lib/erbook/document.rb, line 42</span> <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">format_name</span>, <span class="ruby-identifier">input_text</span>, <span class="ruby-identifier">input_file</span>, <span class="ruby-identifier">options</span> = {} - <span class="ruby-comment cmt"># process format specification</span> - <span class="ruby-ivar">@format_file</span> = <span class="ruby-identifier">format_name</span>.<span class="ruby-identifier">to_s</span> + <span class="ruby-identifier">load_format</span> <span class="ruby-identifier">format_name</span> - <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-ivar">@format_file</span> <span class="ruby-keyword kw">or</span> - <span class="ruby-ivar">@format_file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ERBook</span><span class="ruby-operator">::</span><span class="ruby-constant">FORMATS_DIR</span>, <span class="ruby-ivar">@format_file</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.yaml'</span>) + <span class="ruby-ivar">@input_text</span> = <span class="ruby-identifier">input_text</span> + <span class="ruby-ivar">@input_file</span> = <span class="ruby-identifier">input_file</span> + <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span> - <span class="ruby-keyword kw">begin</span> - <span class="ruby-ivar">@format</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-ivar">@format_file</span>) - <span class="ruby-ivar">@format</span>[<span class="ruby-identifier">:file</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@format_file</span>) - <span class="ruby-ivar">@format</span>[<span class="ruby-identifier">:name</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@format_file</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/\..*?$/</span>, <span class="ruby-value str">''</span>) - - <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@format</span>.<span class="ruby-identifier">key?</span> <span class="ruby-value str">'code'</span> - <span class="ruby-identifier">eval</span> <span class="ruby-ivar">@format</span>[<span class="ruby-value str">'code'</span>].<span class="ruby-identifier">to_s</span>, <span class="ruby-constant">TOPLEVEL_BINDING</span>, <span class="ruby-node">&quot;#{@format_file}:code&quot;</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> - <span class="ruby-identifier">error</span> <span class="ruby-node">&quot;Could not load format specification file #{@format_file.inspect}&quot;</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-ivar">@node_defs</span> = <span class="ruby-ivar">@format</span>[<span class="ruby-value str">'nodes'</span>] - - <span class="ruby-comment cmt"># process input document</span> - <span class="ruby-keyword kw">begin</span> - <span class="ruby-comment cmt"># create sandbox for input evaluation</span> - <span class="ruby-identifier">template</span> = <span class="ruby-constant">Template</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_file</span>, <span class="ruby-identifier">input_text</span>, <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:unindent</span>]) - <span class="ruby-identifier">sandbox</span> = <span class="ruby-identifier">template</span>.<span class="ruby-identifier">sandbox</span> - - <span class="ruby-ivar">@template_vars</span> = { - <span class="ruby-identifier">:@format</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@format</span>, - <span class="ruby-identifier">:@roots</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@roots</span> = [], <span class="ruby-comment cmt"># root nodes of all trees</span> - <span class="ruby-identifier">:@nodes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@nodes</span> = [], <span class="ruby-comment cmt"># all nodes in the forest</span> - <span class="ruby-identifier">:@nodes_by_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@nodes_by_type</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = [] }, - <span class="ruby-identifier">:@stack</span> =<span class="ruby-operator">&gt;</span> [], <span class="ruby-comment cmt"># stack for all nodes</span> - }.<span class="ruby-identifier">each_pair</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sandbox</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>) } - - <span class="ruby-comment cmt">#:stopdoc:</span> - - <span class="ruby-comment cmt">##</span> - <span class="ruby-comment cmt"># Handles the method call from a node</span> - <span class="ruby-comment cmt"># placeholder in the input document.</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sandbox</span>.<span class="ruby-identifier">__node_handler__</span> <span class="ruby-identifier">node_type</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">node_args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">node_content</span> - <span class="ruby-identifier">node</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>( - <span class="ruby-identifier">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">node_type</span>, - <span class="ruby-identifier">:definition</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@format</span>[<span class="ruby-value str">'nodes'</span>][<span class="ruby-identifier">node_type</span>], - <span class="ruby-identifier">:arguments</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">node_args</span>, - <span class="ruby-identifier">:backtrace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">caller</span>, - <span class="ruby-identifier">:parent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">last</span>, - <span class="ruby-identifier">:children</span> =<span class="ruby-operator">&gt;</span> [] - ) - - <span class="ruby-constant">Array</span>(<span class="ruby-identifier">node</span>.<span class="ruby-identifier">definition</span>[<span class="ruby-value str">'params'</span>]).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">param</span><span class="ruby-operator">|</span> - <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_args</span>.<span class="ruby-identifier">empty?</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">__send__</span> <span class="ruby-node">&quot;#{param}=&quot;</span>, <span class="ruby-identifier">node_args</span>.<span class="ruby-identifier">shift</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-ivar">@nodes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span> - <span class="ruby-ivar">@nodes_by_type</span>[<span class="ruby-identifier">node</span>.<span class="ruby-identifier">type</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span> - - <span class="ruby-comment cmt"># calculate ordinal number for this node</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">ordinal_number?</span> - <span class="ruby-ivar">@count_by_type</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-value">0</span> } - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">ordinal_number</span> = (<span class="ruby-ivar">@count_by_type</span>[<span class="ruby-identifier">node</span>.<span class="ruby-identifier">type</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) - <span class="ruby-keyword kw">end</span> - - <span class="ruby-comment cmt"># assign node family</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">parent</span> - <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">children</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">depth</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">depth</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">depth</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">anchor?</span> - - <span class="ruby-comment cmt"># calculate section number for this node</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">section_number?</span> - <span class="ruby-identifier">ancestor</span> = <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">find</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">section_number</span> } - <span class="ruby-identifier">branches</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">section_number</span> } - - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">section_number</span> = [ - <span class="ruby-identifier">ancestor</span>.<span class="ruby-identifier">section_number</span>, - <span class="ruby-identifier">branches</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> - ].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'.'</span>) - <span class="ruby-keyword kw">end</span> - <span class="ruby-keyword kw">else</span> - <span class="ruby-ivar">@roots</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">depth</span> = <span class="ruby-value">0</span> - - <span class="ruby-comment cmt"># calculate section number for this node</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">section_number?</span> - <span class="ruby-identifier">branches</span> = <span class="ruby-ivar">@roots</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">section_number</span> } - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">section_number</span> = (<span class="ruby-identifier">branches</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span> - <span class="ruby-keyword kw">end</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-comment cmt"># assign node content</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span> - <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">node</span> - <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">__block_content__</span>(<span class="ruby-identifier">node</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">node_content</span>) - <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">pop</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-ivar">@buffer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span> - - <span class="ruby-keyword kw">nil</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-comment cmt">#:startdoc:</span> - - <span class="ruby-ivar">@node_defs</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span> - <span class="ruby-comment cmt"># XXX: using a string because define_method()</span> - <span class="ruby-comment cmt"># does not accept a block until Ruby 1.9</span> - <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span> = <span class="ruby-keyword kw">__FILE__</span>, <span class="ruby-keyword kw">__LINE__</span>; <span class="ruby-identifier">eval</span> <span class="ruby-node">%{ - def sandbox.#{type} *node_args, &amp;node_content - __node_handler__ #{type.inspect}, *node_args, &amp;node_content - end - }</span>, <span class="ruby-identifier">binding</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-comment cmt"># evaluate the input &amp; build the document tree</span> - <span class="ruby-identifier">template</span>.<span class="ruby-identifier">render</span> - <span class="ruby-ivar">@processed_document</span> = <span class="ruby-identifier">template</span>.<span class="ruby-identifier">buffer</span> - - <span class="ruby-comment cmt"># chain block-level nodes together for local navigation</span> - <span class="ruby-identifier">block_nodes</span> = <span class="ruby-ivar">@nodes</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">chain?</span> } - - <span class="ruby-identifier">require</span> <span class="ruby-value str">'enumerator'</span> - <span class="ruby-identifier">block_nodes</span>.<span class="ruby-identifier">each_cons</span>(<span class="ruby-value">2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">a</span>.<span class="ruby-identifier">next_node</span> = <span class="ruby-identifier">b</span> - <span class="ruby-identifier">b</span>.<span class="ruby-identifier">prev_node</span> = <span class="ruby-identifier">a</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-comment cmt"># calculate output for all nodes</span> - <span class="ruby-identifier">actual_output_by_node</span> = {} - - <span class="ruby-identifier">visitor</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-comment cmt"># allow child nodes to calculate their actual</span> - <span class="ruby-comment cmt"># output and to set their identifier as Node#output</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-comment cmt"># we do this nodes first because this node's</span> - <span class="ruby-comment cmt"># content contains the child nodes' output</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-identifier">n</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">visitor</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">c</span> } - - <span class="ruby-comment cmt"># calculate the output for this node</span> - <span class="ruby-identifier">actual_output</span> = <span class="ruby-constant">Template</span>.<span class="ruby-identifier">new</span>( - <span class="ruby-node">&quot;#{@format_file}:nodes:#{n.type}:output&quot;</span>, - <span class="ruby-identifier">n</span>.<span class="ruby-identifier">definition</span>[<span class="ruby-value str">'output'</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">chomp</span> - ).<span class="ruby-identifier">render_with</span>(<span class="ruby-ivar">@template_vars</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">:@node</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">n</span>)) - - <span class="ruby-comment cmt"># reveal child nodes' actual output in this node's actual output</span> - <span class="ruby-identifier">n</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">silent?</span> - <span class="ruby-comment cmt"># this child's output is not meant to be revealed at this time</span> - <span class="ruby-keyword kw">next</span> - - <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">inline?</span> - <span class="ruby-identifier">actual_output</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">output</span>] = <span class="ruby-identifier">actual_output_by_node</span>[<span class="ruby-identifier">c</span>] - - <span class="ruby-keyword kw">else</span> - <span class="ruby-comment cmt"># remove &lt;p&gt; around block-level child (added by Markdown)</span> - <span class="ruby-identifier">actual_output</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-node">%r{(&lt;p&gt;\s*)?#{ - Regexp.quote c.output - }(\s*&lt;/p&gt;)?}</span> <span class="ruby-keyword kw">do</span> - <span class="ruby-identifier">actual_output_by_node</span>[<span class="ruby-identifier">c</span>] <span class="ruby-operator">+</span> - <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$1</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">$2</span> - <span class="ruby-value str">''</span> - <span class="ruby-keyword kw">else</span> - [<span class="ruby-identifier">$1</span>, <span class="ruby-identifier">$2</span>].<span class="ruby-identifier">join</span> - <span class="ruby-keyword kw">end</span> - <span class="ruby-keyword kw">end</span> - <span class="ruby-keyword kw">end</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-identifier">actual_output_by_node</span>[<span class="ruby-identifier">n</span>] = <span class="ruby-identifier">actual_output</span> - - <span class="ruby-comment cmt">#</span> - <span class="ruby-comment cmt"># allow the parent node to calculate its actual</span> - <span class="ruby-comment cmt"># output without interference from the output of</span> - <span class="ruby-comment cmt"># this node (Node#to_s is aliased to Node#output)</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-comment cmt"># this assumes that having this node's string</span> - <span class="ruby-comment cmt"># representation be a consecutive sequence of digits</span> - <span class="ruby-comment cmt"># will not interfere with the text-to-whatever</span> - <span class="ruby-comment cmt"># transformation defined by the format specification</span> - <span class="ruby-comment cmt">#</span> - <span class="ruby-identifier">n</span>.<span class="ruby-identifier">output</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA1</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">object_id</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'I*'</span>).<span class="ruby-identifier">join</span> - <span class="ruby-keyword kw">end</span> - - <span class="ruby-ivar">@roots</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">visitor</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">n</span> } - - <span class="ruby-comment cmt"># replace the temporary identifier with each node's actual output</span> - <span class="ruby-ivar">@nodes</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">output</span> = <span class="ruby-identifier">actual_output_by_node</span>[<span class="ruby-identifier">n</span>] } - - <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> - <span class="ruby-identifier">puts</span> <span class="ruby-identifier">input_text</span> <span class="ruby-comment cmt"># so the user can debug line numbers in stack trace</span> - <span class="ruby-identifier">error</span> <span class="ruby-node">&quot;Could not process input document #{input_file.inspect}&quot;</span> - <span class="ruby-keyword kw">end</span> + <span class="ruby-identifier">process_input_document</span> <span class="ruby-keyword kw">end</span></pre> </div> </div> </div> <div class="sectiontitle">Instance Public methods</div> <div class="method"> - <div class="title" id="M000062"> + <div class="title" id="M000052"> - <a name="M000062"></a><b>to_s</b>() + <a name="M000052"></a><b>to_s</b>() </div> <div class="description"> <p> @@ -397,19 +206,19 @@ <div class="sourcecode"> <p class="source-link"> - Source: <a href="javascript:toggleSource('M000062_source')" id="l_M000062_source">show</a> + Source: <a href="javascript:toggleSource('M000052_source')" id="l_M000052_source">show</a> - | <a href="http://github.com/sunaku/erbook/blob/eda493a151e7b55d041d0a094c586e2c22aa63cc/lib/erbook/document.rb#L246" target="_blank" class="github_url">on GitHub</a> + | <a href="http://github.com/sunaku/erbook/blob/8c15499d81a4c71c3a15850bff81dc6e5d0236c5/lib/erbook/document.rb#L55" target="_blank" class="github_url">on GitHub</a> </p> - <div id="M000062_source" class="dyn-source"> - <pre><span class="ruby-comment cmt"># File lib/erbook/document.rb, line 246</span> + <div id="M000052_source" class="dyn-source"> + <pre><span class="ruby-comment cmt"># File lib/erbook/document.rb, line 55</span> <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span> <span class="ruby-constant">Template</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@format_file}:output&quot;</span>, <span class="ruby-ivar">@format</span>[<span class="ruby-value str">'output'</span>].<span class="ruby-identifier">to_s</span>). - <span class="ruby-identifier">render_with</span>(<span class="ruby-ivar">@template_vars</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">:@content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@processed_document</span>.<span class="ruby-identifier">join</span>)) + <span class="ruby-identifier">render_with</span>(<span class="ruby-ivar">@template_vars</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">:@content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@evaluated_document</span>.<span class="ruby-identifier">join</span>)) <span class="ruby-keyword kw">end</span></pre> </div> </div> </div> \ No newline at end of file