summaryrefslogtreecommitdiff
path: root/doc/classes/JSON/Pure/Generator/State.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/classes/JSON/Pure/Generator/State.html')
-rw-r--r--doc/classes/JSON/Pure/Generator/State.html596
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">&lt;
+
+ <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 &#8217;:&#8217; 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: &#8217;&#8217;),
+</p>
+</li>
+<li><p>
+<b>space</b>: a string that is put after, a : or , delimiter (default:
+&#8217;&#8217;),
+</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: &#8217;&#8217;),
+</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:
+&#8217;&#8217;),
+</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:
+&#8217;&#8217;),
+</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">&quot;only generation of JSON objects or arrays allowed&quot;</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">&quot;@#{iv}&quot;</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