diff options
Diffstat (limited to 'doc/classes/JSON/Pure/Generator/State.html')
-rw-r--r-- | doc/classes/JSON/Pure/Generator/State.html | 596 |
1 files changed, 596 insertions, 0 deletions
diff --git a/doc/classes/JSON/Pure/Generator/State.html b/doc/classes/JSON/Pure/Generator/State.html new file mode 100644 index 0000000..b1c434c --- /dev/null +++ b/doc/classes/JSON/Pure/Generator/State.html @@ -0,0 +1,596 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>JSON::Pure::Generator::State</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <link rel="stylesheet" href="../../../../css/reset.css" type="text/css" media="screen" /> + <link rel="stylesheet" href="../../../../css/main.css" type="text/css" media="screen" /> + <script src="../../../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script> + <script src="../../../../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script> + <script src="../../../../js/main.js" type="text/javascript" charset="utf-8"></script> +</head> + +<body> + <div class="banner"> + <h1> + <span class="type">Class</span> + JSON::Pure::Generator::State + + <span class="parent">< + + <a href="../../../Object.html">Object</a> + + </span> + + </h1> + <ul class="files"> + + <li><a href="../../../../files/lib/json/pure/generator_rb.html">lib/json/pure/generator.rb</a></li> + + </ul> + </div> + <div id="bodyContent"> + <div id="content"> + + <div class="description"> + <p> +This class is used to create <a href="State.html">State</a> instances, that +are use to hold data while generating a <a +href="../../../JSON.html">JSON</a> text from a a Ruby data structure. +</p> + + </div> + + + + + + + + + + <div class="sectiontitle">Methods</div> + <dl class="methods"> + + <dt>#</dt> + <dd> + <ul> + + <li><a href="#method-i-%5B%5D">[]</a></li> + + </ul> + </dd> + + <dt>A</dt> + <dd> + <ul> + + <li><a href="#method-i-allow_nan%3F">allow_nan?</a>,</li> + + <li><a href="#method-i-ascii_only%3F">ascii_only?</a></li> + + </ul> + </dd> + + <dt>C</dt> + <dd> + <ul> + + <li><a href="#method-i-check_circular%3F">check_circular?</a>,</li> + + <li><a href="#method-i-configure">configure</a></li> + + </ul> + </dd> + + <dt>F</dt> + <dd> + <ul> + + <li><a href="#method-c-from_state">from_state</a></li> + + </ul> + </dd> + + <dt>G</dt> + <dd> + <ul> + + <li><a href="#method-i-generate">generate</a></li> + + </ul> + </dd> + + <dt>N</dt> + <dd> + <ul> + + <li><a href="#method-c-new">new</a></li> + + </ul> + </dd> + + <dt>T</dt> + <dd> + <ul> + + <li><a href="#method-i-to_h">to_h</a></li> + + </ul> + </dd> + + </dl> + + + + + + + + + + + + <div class="sectiontitle">Attributes</div> + <table border='0' cellpadding='5'> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>indent</td> + <td class='attr-desc'><p> +This string is used to indent levels in the <a +href="../../../JSON.html">JSON</a> text. +</p></td> + </tr> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>space</td> + <td class='attr-desc'><p> +This string is used to insert a space between the tokens in a <a +href="../../../JSON.html">JSON</a> string. +</p></td> + </tr> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>space_before</td> + <td class='attr-desc'><p> +This string is used to insert a space before the ’:’ in <a +href="../../../JSON.html">JSON</a> objects. +</p></td> + </tr> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>object_nl</td> + <td class='attr-desc'><p> +This string is put at the end of a line that holds a <a +href="../../../JSON.html">JSON</a> object (or Hash). +</p></td> + </tr> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>array_nl</td> + <td class='attr-desc'><p> +This string is put at the end of a line that holds a <a +href="../../../JSON.html">JSON</a> array. +</p></td> + </tr> + + <tr valign='top'> + <td class='attr-rw'> + [RW] + </td> + <td class='attr-name'>max_nesting</td> + <td class='attr-desc'><p> +This integer returns the maximum level of data structure nesting in the +generated <a href="../../../JSON.html">JSON</a>, <a +href="State.html#max_nesting">max_nesting</a> = 0 if no maximum is checked. +</p></td> + </tr> + + </table> + + + + <div class="sectiontitle">Class Public methods</div> + + <div class="method"> + <div class="title" id="method-c-from_state"> + + <a name="method-c-from_state"></a><b>from_state</b>(opts) + + </div> + + <div class="description"> + <p> +Creates a <a href="State.html">State</a> object from <em>opts</em>, which +ought to be Hash to create a new <a href="State.html">State</a> instance +configured by <em>opts</em>, something else to create an unconfigured +instance. If <em>opts</em> is a <a href="State.html">State</a> object, it +is just returned. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-c-from_state_source')" id="l_method-c-from_state_source">show</a> + + </p> + <div id="method-c-from_state_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 108</span> +108: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">opts</span>) +109: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">opts</span> +110: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">self</span> +111: <span class="ruby-identifier">opts</span> +112: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span> +113: <span class="ruby-identifier">new</span>(<span class="ruby-identifier">opts</span>) +114: <span class="ruby-keyword kw">else</span> +115: <span class="ruby-constant">SAFE_STATE_PROTOTYPE</span> +116: <span class="ruby-keyword kw">end</span> +117: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-c-new"> + + <a name="method-c-new"></a><b>new</b>(opts = {}) + + </div> + + <div class="description"> + <p> +Instantiates a new <a href="State.html">State</a> object, configured by +<em>opts</em>. +</p> +<p> +<em>opts</em> can have the following keys: +</p> +<ul> +<li><p> +<b>indent</b>: a string used to indent levels (default: ’’), +</p> +</li> +<li><p> +<b>space</b>: a string that is put after, a : or , delimiter (default: +’’), +</p> +</li> +<li><p> +<b><a href="State.html#space_before">space_before</a></b>: a string that is +put before a : pair delimiter (default: ’’), +</p> +</li> +<li><p> +<b><a href="State.html#object_nl">object_nl</a></b>: a string that is put +at the end of a <a href="../../../JSON.html">JSON</a> object (default: +’’), +</p> +</li> +<li><p> +<b><a href="State.html#array_nl">array_nl</a></b>: a string that is put at +the end of a <a href="../../../JSON.html">JSON</a> array (default: +’’), +</p> +</li> +<li><p> +<b>check_circular</b>: is deprecated now, use the :<a +href="State.html#max_nesting">max_nesting</a> option instead, +</p> +</li> +<li><p> +<b><a href="State.html#max_nesting">max_nesting</a></b>: sets the maximum +level of data structure nesting in the generated <a +href="../../../JSON.html">JSON</a>, <a +href="State.html#max_nesting">max_nesting</a> = 0 if no maximum should be +checked. +</p> +</li> +<li><p> +<b>allow_nan</b>: true if NaN, Infinity, and -Infinity should be generated, +otherwise an exception is thrown, if these values are encountered. This +options defaults to false. +</p> +</li> +</ul> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-c-new_source')" id="l_method-c-new_source">show</a> + + </p> + <div id="method-c-new_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 134</span> +134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opts</span> = {}) +135: <span class="ruby-ivar">@indent</span> = <span class="ruby-value str">''</span> +136: <span class="ruby-ivar">@space</span> = <span class="ruby-value str">''</span> +137: <span class="ruby-ivar">@space_before</span> = <span class="ruby-value str">''</span> +138: <span class="ruby-ivar">@object_nl</span> = <span class="ruby-value str">''</span> +139: <span class="ruby-ivar">@array_nl</span> = <span class="ruby-value str">''</span> +140: <span class="ruby-ivar">@allow_nan</span> = <span class="ruby-keyword kw">false</span> +141: <span class="ruby-ivar">@ascii_only</span> = <span class="ruby-keyword kw">false</span> +142: <span class="ruby-identifier">configure</span> <span class="ruby-identifier">opts</span> +143: <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="method-i-%5B%5D"> + + <a name="method-i-%5B%5D"></a><b>[]</b>(name) + + </div> + + <div class="description"> + <p> +Return the value returned by method <tt>name</tt>. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-%5B%5D_source')" id="l_method-i-%5B%5D_source">show</a> + + </p> + <div id="method-i-%5B%5D_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 231</span> +231: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">name</span>) +232: <span class="ruby-identifier">__send__</span> <span class="ruby-identifier">name</span> +233: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-allow_nan%3F"> + + <a name="method-i-allow_nan%3F"></a><b>allow_nan?</b>() + + </div> + + <div class="description"> + <p> +Returns true if NaN, Infinity, and -Infinity should be considered as valid +<a href="../../../JSON.html">JSON</a> and output. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-allow_nan%3F_source')" id="l_method-i-allow_nan%3F_source">show</a> + + </p> + <div id="method-i-allow_nan%3F_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 181</span> +181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allow_nan?</span> +182: <span class="ruby-ivar">@allow_nan</span> +183: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-ascii_only%3F"> + + <a name="method-i-ascii_only%3F"></a><b>ascii_only?</b>() + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-ascii_only%3F_source')" id="l_method-i-ascii_only%3F_source">show</a> + + </p> + <div id="method-i-ascii_only%3F_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 185</span> +185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ascii_only?</span> +186: <span class="ruby-ivar">@ascii_only</span> +187: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-check_circular%3F"> + + <a name="method-i-check_circular%3F"></a><b>check_circular?</b>() + + </div> + + <div class="description"> + <p> +Returns true, if circular data structures are checked, otherwise returns +false. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-check_circular%3F_source')" id="l_method-i-check_circular%3F_source">show</a> + + </p> + <div id="method-i-check_circular%3F_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 175</span> +175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_circular?</span> +176: <span class="ruby-operator">!</span><span class="ruby-ivar">@max_nesting</span>.<span class="ruby-identifier">zero?</span> +177: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-configure"> + + <a name="method-i-configure"></a><b>configure</b>(opts) + + </div> + + <div class="description"> + <p> +Configure this <a href="State.html">State</a> instance with the Hash +<em>opts</em>, and return itself. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-configure_source')" id="l_method-i-configure_source">show</a> + + </p> + <div id="method-i-configure_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 191</span> +191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure</span>(<span class="ruby-identifier">opts</span>) +192: <span class="ruby-ivar">@indent</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:indent</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:indent</span>) +193: <span class="ruby-ivar">@space</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:space</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:space</span>) +194: <span class="ruby-ivar">@space_before</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:space_before</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:space_before</span>) +195: <span class="ruby-ivar">@object_nl</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:object_nl</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:object_nl</span>) +196: <span class="ruby-ivar">@array_nl</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:array_nl</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:array_nl</span>) +197: <span class="ruby-ivar">@allow_nan</span> = <span class="ruby-operator">!</span><span class="ruby-operator">!</span><span class="ruby-identifier">opts</span>[<span class="ruby-value">:allow_nan</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:allow_nan</span>) +198: <span class="ruby-ivar">@ascii_only</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:ascii_only</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:ascii_only</span>) +199: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:max_nesting</span>) <span class="ruby-comment cmt"># defaults to 19</span> +200: <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">19</span> +201: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:max_nesting</span>] +202: <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:max_nesting</span>] +203: <span class="ruby-keyword kw">else</span> +204: <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">0</span> +205: <span class="ruby-keyword kw">end</span> +206: <span class="ruby-keyword kw">self</span> +207: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-generate"> + + <a name="method-i-generate"></a><b>generate</b>(obj) + + </div> + + <div class="description"> + <p> +Generates a valid <a href="../../../JSON.html">JSON</a> document from +object <tt>obj</tt> and returns the result. If no valid <a +href="../../../JSON.html">JSON</a> document can be created this method +raises a <a href="../../GeneratorError.html">GeneratorError</a> exception. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-generate_source')" id="l_method-i-generate_source">show</a> + + </p> + <div id="method-i-generate_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 222</span> +222: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>) +223: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-keyword kw">self</span>) +224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\A\s*(?:\[.*\]|\{.*\})\s*\Z/</span> +225: <span class="ruby-identifier">raise</span> <span class="ruby-constant">GeneratorError</span>, <span class="ruby-value str">"only generation of JSON objects or arrays allowed"</span> +226: <span class="ruby-keyword kw">end</span> +227: <span class="ruby-identifier">result</span> +228: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + + <div class="method"> + <div class="title" id="method-i-to_h"> + + <a name="method-i-to_h"></a><b>to_h</b>() + + </div> + + <div class="description"> + <p> +Returns the configuration instance variables as a hash, that can be passed +to the configure method. +</p> + + </div> + + + + + <div class="sourcecode"> + <p class="source-link"> + Source: <a href="javascript:toggleSource('method-i-to_h_source')" id="l_method-i-to_h_source">show</a> + + </p> + <div id="method-i-to_h_source" class="dyn-source"> + <pre> <span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 211</span> +211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span> +212: <span class="ruby-identifier">result</span> = {} +213: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">iv</span> <span class="ruby-keyword kw">in</span> <span class="ruby-node">]indent space space_before object_nl array_nl allow_nan max_nesting]</span> +214: <span class="ruby-identifier">result</span>[<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">intern</span>] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">"@#{iv}"</span>) +215: <span class="ruby-keyword kw">end</span> +216: <span class="ruby-identifier">result</span> +217: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + + </div> + +</div> + </div> + </body> +</html>
\ No newline at end of file |