summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2009-11-08 02:24:43 +0100
committerFlorian Frank <flori@ping.de>2009-11-08 02:24:43 +0100
commit182c82fb7a2881c3abb5b361d022b5d8c6c36590 (patch)
tree5b57cd75d650ece37600adea9eac5f8cdaa6f7cb
parent089240e5a28ab1b63c87f6dda2bd320fe7bd9105 (diff)
downloadjson-182c82fb7a2881c3abb5b361d022b5d8c6c36590.tar.gz
generated documentation
-rw-r--r--doc/Class.html300
-rw-r--r--doc/Date.html341
-rw-r--r--doc/DateTime.html353
-rw-r--r--doc/Enumerable.html288
-rw-r--r--doc/Exception.html341
-rw-r--r--doc/JSON.html1099
-rw-r--r--doc/JSON/Editor.html712
-rw-r--r--doc/JSON/Editor/EditMenu.html572
-rw-r--r--doc/JSON/Editor/FileMenu.html579
-rw-r--r--doc/JSON/Editor/Gtk.html247
-rw-r--r--doc/JSON/Editor/Gtk/TreeIter.html538
-rw-r--r--doc/JSON/Editor/JSONTreeView.html1035
-rw-r--r--doc/JSON/Editor/MainWindow.html1298
-rw-r--r--doc/JSON/Editor/MenuExtension.html514
-rw-r--r--doc/JSON/Editor/OptionsMenu.html415
-rw-r--r--doc/JSON/Editor/PopUpMenu.html772
-rw-r--r--doc/JSON/Ext.html259
-rw-r--r--doc/JSON/Ext/Generator.html262
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods.html266
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/Array.html291
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html293
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/Float.html293
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/Hash.html298
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/Integer.html293
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html290
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/Object.html297
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/String.html426
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html294
-rw-r--r--doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html293
-rw-r--r--doc/JSON/Ext/Generator/State.html1204
-rw-r--r--doc/JSON/Ext/Parser.html642
-rw-r--r--doc/JSON/GeneratorError.html251
-rw-r--r--doc/JSON/JSONError.html251
-rw-r--r--doc/JSON/MissingUnicodeSupport.html252
-rw-r--r--doc/JSON/NestingError.html252
-rw-r--r--doc/JSON/ParserError.html251
-rw-r--r--doc/JSON/Pure.html262
-rw-r--r--doc/JSON/Pure/Generator.html252
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods.html266
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/Array.html359
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html289
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/Float.html306
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/Hash.html403
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/Integer.html289
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html289
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/Object.html291
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/String.html481
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html296
-rw-r--r--doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html289
-rw-r--r--doc/JSON/Pure/Generator/State.html775
-rw-r--r--doc/JSON/Pure/Parser.html804
-rw-r--r--doc/Kernel.html381
-rw-r--r--doc/Object.html347
-rw-r--r--doc/README.html666
-rw-r--r--doc/Range.html338
-rw-r--r--doc/Regexp.html339
-rw-r--r--doc/Struct.html340
-rw-r--r--doc/Symbol.html295
-rw-r--r--doc/Time.html346
-rw-r--r--doc/created.rid1
-rw-r--r--doc/ext/json/ext/generator_c.html52
-rw-r--r--doc/ext/json/ext/parser_c.html52
-rwxr-xr-xdoc/images/brick.pngbin0 -> 452 bytes
-rwxr-xr-xdoc/images/brick_link.pngbin0 -> 764 bytes
-rw-r--r--doc/images/bug.pngbin0 -> 774 bytes
-rwxr-xr-xdoc/images/bullet_black.pngbin0 -> 211 bytes
-rwxr-xr-xdoc/images/bullet_toggle_minus.pngbin0 -> 207 bytes
-rwxr-xr-xdoc/images/bullet_toggle_plus.pngbin0 -> 209 bytes
-rwxr-xr-xdoc/images/date.pngbin0 -> 626 bytes
-rwxr-xr-xdoc/images/find.pngbin0 -> 659 bytes
-rw-r--r--doc/images/loadingAnimation.gifbin0 -> 5886 bytes
-rw-r--r--doc/images/macFFBgHack.pngbin0 -> 207 bytes
-rwxr-xr-xdoc/images/package.pngbin0 -> 853 bytes
-rwxr-xr-xdoc/images/page_green.pngbin0 -> 621 bytes
-rwxr-xr-xdoc/images/page_white_text.pngbin0 -> 342 bytes
-rwxr-xr-xdoc/images/page_white_width.pngbin0 -> 309 bytes
-rwxr-xr-xdoc/images/plugin.pngbin0 -> 591 bytes
-rwxr-xr-xdoc/images/ruby.pngbin0 -> 592 bytes
-rwxr-xr-xdoc/images/tag_green.pngbin0 -> 613 bytes
-rwxr-xr-xdoc/images/wrench.pngbin0 -> 610 bytes
-rwxr-xr-xdoc/images/wrench_orange.pngbin0 -> 584 bytes
-rwxr-xr-xdoc/images/zoom.pngbin0 -> 692 bytes
-rw-r--r--doc/index.html1012
-rw-r--r--doc/js/darkfish.js116
-rw-r--r--doc/js/jquery.js32
-rw-r--r--doc/js/quicksearch.js114
-rw-r--r--doc/js/thickbox-compressed.js10
-rw-r--r--doc/lib/json/add/core_rb.html60
-rw-r--r--doc/lib/json/add/rails_rb.html58
-rw-r--r--doc/lib/json/common_rb.html56
-rw-r--r--doc/lib/json/editor_rb.html66
-rw-r--r--doc/lib/json/ext_rb.html58
-rw-r--r--doc/lib/json/pure/generator_rb.html52
-rw-r--r--doc/lib/json/pure/parser_rb.html54
-rw-r--r--doc/lib/json/pure_rb.html60
-rw-r--r--doc/lib/json/version_rb.html52
-rw-r--r--doc/lib/json_rb.html60
-rw-r--r--doc/rdoc.css696
98 files changed, 27726 insertions, 0 deletions
diff --git a/doc/Class.html b/doc/Class.html
new file mode 100644
index 0000000..e031d9b
--- /dev/null
+++ b/doc/Class.html
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Class</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000040">#json_creatable?</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Class</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="json-creatable--method" class="method-detail ">
+ <a name="M000040"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_creatable?</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true, if this class can be used to create an instance from a
+serialised <a href="JSON.html">JSON</a> string. The class has to implement
+a class method <em>json_create</em> that expects a hash as first parameter,
+which includes the required data.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="json-creatable--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 369</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json_creatable?</span>
+ <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:json_create</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Date.html b/doc/Date.html
new file mode 100644
index 0000000..6b56134
--- /dev/null
+++ b/doc/Date.html
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Date</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000006">::json_create</a></li>
+
+ <li><a href="#M000007">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Date</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000006"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 32</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">civil</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">object</span>.<span class="ruby-identifier">values_at</span>(<span class="ruby-value str">'y'</span>, <span class="ruby-value str">'m'</span>, <span class="ruby-value str">'d'</span>, <span class="ruby-value str">'sg'</span>))
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000007"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 38</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'y'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">year</span>,
+ <span class="ruby-value str">'m'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">month</span>,
+ <span class="ruby-value str">'d'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">day</span>,
+ <span class="ruby-value str">'sg'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">start</span>,
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/DateTime.html b/doc/DateTime.html
new file mode 100644
index 0000000..2190721
--- /dev/null
+++ b/doc/DateTime.html
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: DateTime</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000008">::json_create</a></li>
+
+ <li><a href="#M000009">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">DateTime</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000008"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 50</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">args</span> = <span class="ruby-identifier">object</span>.<span class="ruby-identifier">values_at</span>(<span class="ruby-value str">'y'</span>, <span class="ruby-value str">'m'</span>, <span class="ruby-value str">'d'</span>, <span class="ruby-value str">'H'</span>, <span class="ruby-value str">'M'</span>, <span class="ruby-value str">'S'</span>)
+ <span class="ruby-identifier">of_a</span>, <span class="ruby-identifier">of_b</span> = <span class="ruby-identifier">object</span>[<span class="ruby-value str">'of'</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">of_b</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">of_b</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'0'</span>
+ <span class="ruby-identifier">args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Rational</span>(<span class="ruby-identifier">of_a</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">of_b</span>.<span class="ruby-identifier">to_i</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">of_a</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">object</span>[<span class="ruby-value str">'sg'</span>]
+ <span class="ruby-identifier">civil</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000009"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 64</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'y'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">year</span>,
+ <span class="ruby-value str">'m'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">month</span>,
+ <span class="ruby-value str">'d'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">day</span>,
+ <span class="ruby-value str">'H'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">hour</span>,
+ <span class="ruby-value str">'M'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">min</span>,
+ <span class="ruby-value str">'S'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sec</span>,
+ <span class="ruby-value str">'of'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">offset</span>.<span class="ruby-identifier">to_s</span>,
+ <span class="ruby-value str">'sg'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">start</span>,
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Enumerable.html b/doc/Enumerable.html
new file mode 100644
index 0000000..3e00533
--- /dev/null
+++ b/doc/Enumerable.html
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: Enumerable</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/rails_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/rails.rb">lib/json/add/rails.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000003">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">Enumerable</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000003"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*a)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/rails.rb, line 38</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Exception.html b/doc/Exception.html
new file mode 100644
index 0000000..f1bd1a5
--- /dev/null
+++ b/doc/Exception.html
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Exception</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000014">::json_create</a></li>
+
+ <li><a href="#M000015">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Exception</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000014"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 108</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">new</span>(<span class="ruby-identifier">object</span>[<span class="ruby-value str">'m'</span>])
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">set_backtrace</span> <span class="ruby-identifier">object</span>[<span class="ruby-value str">'b'</span>]
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000015"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 114</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'m'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">message</span>,
+ <span class="ruby-value str">'b'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">backtrace</span>,
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON.html b/doc/JSON.html
new file mode 100644
index 0000000..49415e1
--- /dev/null
+++ b/doc/JSON.html
@@ -0,0 +1,1099 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json.rb">lib/json.rb</a></li>
+
+ <li><a href="./lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ <li><a href="./lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ <li><a href="./lib/json/pure/parser_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/parser.rb">lib/json/pure/parser.rb</a></li>
+
+ <li><a href="./lib/json/pure_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure.rb">lib/json/pure.rb</a></li>
+
+ <li><a href="./lib/json/ext_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/ext.rb">lib/json/ext.rb</a></li>
+
+ <li><a href="./lib/json/version_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/version.rb">lib/json/version.rb</a></li>
+
+ <li><a href="./lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ <li><a href="./ext/json/ext/parser_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/parser.c">ext/json/ext/parser.c</a></li>
+
+ <li><a href="./ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><span class="type">MODULE</span> <a href="JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><span class="type">MODULE</span> <a href="JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><span class="type">CLASS</span> <a href="JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><span class="type">CLASS</span> <a href="JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><span class="type">CLASS</span> <a href="JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><span class="type">CLASS</span> <a href="JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><span class="type">CLASS</span> <a href="JSON/ParserError.html">JSON::ParserError</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000018">::[]</a></li>
+
+ <li><a href="#M000033">::iconv</a></li>
+
+ <li><a href="#M000031">::restore</a></li>
+
+ <li><a href="#M000032">#dump</a></li>
+
+ <li><a href="#M000025">#fast_generate</a></li>
+
+ <li><a href="#M000024">#generate</a></li>
+
+ <li><a href="#M000027">#load</a></li>
+
+ <li><a href="#M000022">#parse</a></li>
+
+ <li><a href="#M000023">#parse!</a></li>
+
+ <li><a href="#M000026">#pretty_generate</a></li>
+
+ <li><a href="#M000030">#recurse_proc</a></li>
+
+ <li><a href="#M000031">#restore</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+ <div id="constants-list" class="section">
+ <h3 class="section-header">Constants</h3>
+ <dl>
+
+ <dt><a name="NaN">NaN</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="Infinity">Infinity</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="MinusInfinity">MinusInfinity</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="UnparserError">UnparserError</a></dt>
+
+ <dd class="description"><p>
+For backwards compatibility
+</p></dd>
+
+
+ <dt><a name="JSON_LOADED">JSON_LOADED</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="JSON_LOADED">JSON_LOADED</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="VERSION">VERSION</a></dt>
+
+ <dd class="description"><p>
+<a href="JSON.html">JSON</a> version
+</p></dd>
+
+
+ </dl>
+ </div>
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="parser-attribute-method" class="method-detail">
+ <a name="parser"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">parser</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the <a href="JSON.html">JSON</a> parser class, that is used by <a
+href="JSON.html">JSON</a>. This might be either <a
+href="JSON/Ext/Parser.html">JSON::Ext::Parser</a> or <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a>.
+</p>
+
+ </div>
+ </div>
+
+ <div id="generator-attribute-method" class="method-detail">
+ <a name="generator"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">generator</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the <a href="JSON.html">JSON</a> generator modul, that is used by
+<a href="JSON.html">JSON</a>. This might be either <a
+href="JSON/Ext/Generator.html">JSON::Ext::Generator</a> or <a
+href="JSON/Pure/Generator.html">JSON::Pure::Generator</a>.
+</p>
+
+ </div>
+ </div>
+
+ <div id="state-attribute-method" class="method-detail">
+ <a name="state"></a>
+
+ <a name="state="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">state</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the <a href="JSON.html">JSON</a> generator state class, that is
+used by <a href="JSON.html">JSON</a>. This might be either <a
+href="JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a> or <a
+href="JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a>.
+</p>
+
+ </div>
+ </div>
+
+ <div id="create-id-attribute-method" class="method-detail">
+ <a name="create_id"></a>
+
+ <a name="create_id="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">create_id</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This is create identifier, that is used to decide, if the
+<em>json_create</em> hook of a class should be called. It defaults to
+&#8216;json_class&#8217;.
+</p>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="--method" class="method-detail ">
+ <a name="M000018"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">[]</span><span
+ class="method-args">(object, opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+If <em>object</em> is string-like parse the string and return the parsed
+result as a Ruby data structure. Otherwise generate a <a
+href="JSON.html">JSON</a> text from the Ruby data structure object and
+return it.
+</p>
+<p>
+The <em>opts</em> argument is passed through to generate/parse
+respectively, see generate and parse for their documentation.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 12</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_str</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">object</span>.<span class="ruby-identifier">to_str</span>, <span class="ruby-identifier">opts</span> =<span class="ruby-operator">&gt;</span> {})
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">opts</span> =<span class="ruby-operator">&gt;</span> {})
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="iconv-method" class="method-detail ">
+ <a name="M000033"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">iconv</span><span
+ class="method-args">(to, from, string)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Shortuct for iconv.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="iconv-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 323</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">from</span>, <span class="ruby-identifier">string</span>)
+ <span class="ruby-constant">Iconv</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">from</span>, <span class="ruby-identifier">string</span>).<span class="ruby-identifier">first</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="restore-method" class="method-detail method-alias">
+ <a name="M000031"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">restore</span><span
+ class="method-args">(source, proc = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Alias for <a href="JSON.html#M000027">load</a>
+</p>
+
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="dump-method" class="method-detail ">
+ <a name="M000032"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">dump</span><span
+ class="method-args">(obj, anIO = nil, limit = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Dumps <em>obj</em> as a <a href="JSON.html">JSON</a> string, i.e. calls
+generate on the object and returns the result.
+</p>
+<p>
+If anIO (an IO like object or an object that responds to the write method)
+was given, the resulting <a href="JSON.html">JSON</a> is written to it.
+</p>
+<p>
+If the number of nested arrays or objects exceeds <em>limit</em> an
+ArgumentError exception is raised. This argument is similar (but not
+exactly the same!) to the <em>limit</em> argument in Marshal.dump.
+</p>
+<p>
+This method is part of the implementation of the load/dump interface of
+Marshal and YAML.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="dump-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 302</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">anIO</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">anIO</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">nil?</span>
+ <span class="ruby-identifier">anIO</span> = <span class="ruby-identifier">anIO</span>.<span class="ruby-identifier">to_io</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">anIO</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_io</span>)
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">anIO</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:write</span>)
+ <span class="ruby-identifier">limit</span> = <span class="ruby-identifier">anIO</span>
+ <span class="ruby-identifier">anIO</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">limit</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">:allow_nan</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">limit</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">anIO</span>
+ <span class="ruby-identifier">anIO</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">result</span>
+ <span class="ruby-identifier">anIO</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-constant">NestingError</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;exceed depth limit&quot;</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="fast-generate-method" class="method-detail ">
+ <a name="M000025"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">fast_generate</span><span
+ class="method-args">(obj, opts = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Generate a <a href="JSON.html">JSON</a> document from the Ruby data
+structure <em>obj</em> and return it. This method disables the checks for
+circles in Ruby objects.
+</p>
+<p>
+<b>WARNING</b>: Be careful not to pass any Ruby data structures with
+circles as <em>obj</em> argument, because this will cause <a
+href="JSON.html">JSON</a> to go into an infinite loop.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="fast-generate-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 196</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fast_generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">opts</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">''</span>,
+ <span class="ruby-identifier">:space</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">''</span>,
+ <span class="ruby-identifier">:object_nl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&quot;</span>,
+ <span class="ruby-identifier">:array_nl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;&quot;</span>
+ )
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_hash</span>
+ <span class="ruby-identifier">opts</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_hash</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_h</span>
+ <span class="ruby-identifier">opts</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_h</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;can't convert #{opts.class} into Hash&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-identifier">opts</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="generate-method" class="method-detail ">
+ <a name="M000024"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">generate</span><span
+ class="method-args">(obj, state = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Generate a <a href="JSON.html">JSON</a> document from the Ruby data
+structure <em>obj</em> and return it. <em>state</em> is * a JSON::State
+object,
+</p>
+<ul>
+<li>or a Hash like object (responding to to_hash),
+
+</li>
+<li>an object convertible into a hash by a to_h method,
+
+</li>
+</ul>
+<p>
+that is used as or to configure a State object.
+</p>
+<p>
+It defaults to a state object, that creates the shortest possible <a
+href="JSON.html">JSON</a> text in one line, checks for circular data
+structures and doesn&#8217;t allow <a href="JSON.html#NaN">NaN</a>, <a
+href="JSON.html#Infinity">Infinity</a>, and -<a
+href="JSON.html#Infinity">Infinity</a>.
+</p>
+<p>
+A <em>state</em> hash can have the following keys:
+</p>
+<ul>
+<li><b>indent</b>: a string used to indent levels (default: &#8217;&#8217;),
+
+</li>
+<li><b>space</b>: a string that is put after, a : or , delimiter (default:
+&#8217;&#8217;),
+
+</li>
+<li><b>space_before</b>: a string that is put before a : pair delimiter
+(default: &#8217;&#8217;),
+
+</li>
+<li><b>object_nl</b>: a string that is put at the end of a <a
+href="JSON.html">JSON</a> object (default: &#8217;&#8217;),
+
+</li>
+<li><b>array_nl</b>: a string that is put at the end of a <a
+href="JSON.html">JSON</a> array (default: &#8217;&#8217;),
+
+</li>
+<li><b>allow_nan</b>: true if <a href="JSON.html#NaN">NaN</a>, <a
+href="JSON.html#Infinity">Infinity</a>, and -<a
+href="JSON.html#Infinity">Infinity</a> should be generated, otherwise an
+exception is thrown, if these values are encountered. This options defaults
+to false.
+
+</li>
+<li><b>max_nesting</b>: The maximum depth of nesting allowed in the data
+structures from which <a href="JSON.html">JSON</a> is to be generated.
+Disable depth checking with :max_nesting => false, it defaults to 19.
+
+</li>
+</ul>
+<p>
+See also the <a href="JSON.html#M000025">fast_generate</a> for the fastest
+creation method with the least amount of sanity checks, and the <a
+href="JSON.html#M000026">pretty_generate</a> method for some defaults for a
+pretty output.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="generate-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 175</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">state</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">State</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">state</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">State</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="load-method" class="method-detail ">
+ <a name="M000027"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">load</span><span
+ class="method-args">(source, proc = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Load a ruby data structure from a <a href="JSON.html">JSON</a>
+<em>source</em> and return it. A source can either be a string-like object,
+an IO like object, or an object responding to the read method. If
+<em>proc</em> was given, it will be called with any nested Ruby object as
+an argument recursively in depth first order.
+</p>
+<p>
+This method is part of the implementation of the load/dump interface of
+Marshal and YAML.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="load-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 261</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">proc</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_str</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">to_str</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_io</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">to_io</span>.<span class="ruby-identifier">read</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">read</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:allow_nan</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)
+ <span class="ruby-identifier">recurse_proc</span>(<span class="ruby-identifier">result</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">proc</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">proc</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ <div class="aliases">
+ Also aliased as: <a href="JSON.html#M000031">restore</a>
+ </div>
+
+ </div>
+
+
+ <div id="parse-method" class="method-detail ">
+ <a name="M000022"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse</span><span
+ class="method-args">(source, opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Parse the <a href="JSON.html">JSON</a> document <em>source</em> into a Ruby
+data structure and return it.
+</p>
+<p>
+<em>opts</em> can have the following keys:
+</p>
+<ul>
+<li><b>max_nesting</b>: The maximum depth of nesting allowed in the parsed data
+structures. Disable depth checking with :max_nesting => false, it defaults
+to 19.
+
+</li>
+<li><b>allow_nan</b>: If set to true, allow <a href="JSON.html#NaN">NaN</a>, <a
+href="JSON.html#Infinity">Infinity</a> and -<a
+href="JSON.html#Infinity">Infinity</a> in defiance of RFC 4627 to be parsed
+by the Parser. This option defaults to false.
+
+</li>
+<li><b>create_additions</b>: If set to false, the Parser doesn&#8217;t create
+additions even if a matchin class and <a
+href="JSON.html#create_id">create_id</a> was found. This option defaults to
+true.
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="parse-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 122</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">opts</span>).<span class="ruby-identifier">parse</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="parse--method" class="method-detail ">
+ <a name="M000023"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse!</span><span
+ class="method-args">(source, opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Parse the <a href="JSON.html">JSON</a> document <em>source</em> into a Ruby
+data structure and return it. The bang version of the parse method,
+defaults to the more dangerous values for the <em>opts</em> hash, so be
+sure only to parse trusted <em>source</em> documents.
+</p>
+<p>
+<em>opts</em> can have the following keys:
+</p>
+<ul>
+<li><b>max_nesting</b>: The maximum depth of nesting allowed in the parsed data
+structures. Enable depth checking with :max_nesting => anInteger. The
+parse! methods defaults to not doing max depth checking: This can be
+dangerous, if someone wants to fill up your stack.
+
+</li>
+<li><b>allow_nan</b>: If set to true, allow <a href="JSON.html#NaN">NaN</a>, <a
+href="JSON.html#Infinity">Infinity</a>, and -<a
+href="JSON.html#Infinity">Infinity</a> in defiance of RFC 4627 to be parsed
+by the Parser. This option defaults to true.
+
+</li>
+<li><b>create_additions</b>: If set to false, the Parser doesn&#8217;t create
+additions even if a matchin class and <a
+href="JSON.html#create_id">create_id</a> was found. This option defaults to
+true.
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="parse--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 141</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse!</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-identifier">opts</span> = {
+ <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>,
+ <span class="ruby-identifier">:allow_nan</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
+ }.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">opts</span>)
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">opts</span>).<span class="ruby-identifier">parse</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="pretty-generate-method" class="method-detail ">
+ <a name="M000026"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">pretty_generate</span><span
+ class="method-args">(obj, opts = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Generate a <a href="JSON.html">JSON</a> document from the Ruby data
+structure <em>obj</em> and return it. The returned document is a prettier
+form of the document returned by unparse.
+</p>
+<p>
+The <em>opts</em> argument can be used to configure the generator, see the
+generate method for a more detailed explanation.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="pretty-generate-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 228</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty_generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">opts</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">' '</span>,
+ <span class="ruby-identifier">:space</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">' '</span>,
+ <span class="ruby-identifier">:object_nl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;\n&quot;</span>,
+ <span class="ruby-identifier">:array_nl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
+ )
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_hash</span>
+ <span class="ruby-identifier">opts</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_hash</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_h</span>
+ <span class="ruby-identifier">opts</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_h</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-node">&quot;can't convert #{opts.class} into Hash&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-identifier">opts</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="recurse-proc-method" class="method-detail ">
+ <a name="M000030"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">recurse_proc</span><span
+ class="method-args">(result, &proc)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="recurse-proc-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 274</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recurse_proc</span>(<span class="ruby-identifier">result</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">proc</span>)
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">recurse_proc</span> <span class="ruby-identifier">x</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">proc</span> }
+ <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">recurse_proc</span> <span class="ruby-identifier">x</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">proc</span>; <span class="ruby-identifier">recurse_proc</span> <span class="ruby-identifier">y</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">proc</span> }
+ <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">proc</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="restore-method" class="method-detail method-alias">
+ <a name="M000031"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">restore</span><span
+ class="method-args">(source, proc = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Alias for <a href="JSON.html#M000027">load</a>
+</p>
+
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor.html b/doc/JSON/Editor.html
new file mode 100644
index 0000000..882e581
--- /dev/null
+++ b/doc/JSON/Editor.html
@@ -0,0 +1,712 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Editor</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><span class="type">MODULE</span> <a href="Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000084">::data2model</a></li>
+
+ <li><a href="#M000192">::edit</a></li>
+
+ <li><a href="#M000081">::error_dialog</a></li>
+
+ <li><a href="#M000077">::fetch_icon</a></li>
+
+ <li><a href="#M000083">::model2data</a></li>
+
+ <li><a href="#M000082">::question_dialog</a></li>
+
+ <li><a href="#M000191">::start</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Editor</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+ <div id="constants-list" class="section">
+ <h3 class="section-header">Constants</h3>
+ <dl>
+
+ <dt><a name="TITLE">TITLE</a></dt>
+
+ <dd class="description"><p>
+Beginning of the editor window title
+</p></dd>
+
+
+ <dt><a name="CONTENT_COL">CONTENT_COL</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="CONTAINER_TYPES">CONTAINER_TYPES</a></dt>
+
+ <dd class="description"><p>
+<a href="../JSON.html">JSON</a> primitive types (Containers)
+</p></dd>
+
+
+ <dt><a name="ALL_TYPES">ALL_TYPES</a></dt>
+
+ <dd class="description"><p>
+All <a href="../JSON.html">JSON</a> primitive types
+</p></dd>
+
+
+ <dt><a name="ALL_NODES">ALL_NODES</a></dt>
+
+ <dd class="description"><p>
+The Nodes necessary for the tree representation of a <a
+href="../JSON.html">JSON</a> document
+</p></dd>
+
+
+ <dt><a name="DEFAULT_DIALOG_KEY_PRESS_HANDLER">DEFAULT_DIALOG_KEY_PRESS_HANDLER</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ </dl>
+ </div>
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="window-attribute-method" class="method-detail">
+ <a name="window"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">window</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="data-model-method" class="method-detail ">
+ <a name="M000084"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">data2model</span><span
+ class="method-args">(data, model = nil, parent = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Convert the Ruby data structure <em>data</em> into tree model data for <a
+href="Editor/Gtk.html">Gtk</a> and returns the whole model. If the
+parameter <em>model</em> wasn&#8217;t given a new Gtk::TreeStore is created
+as the model. The <em>parent</em> parameter specifies the parent node
+(iter, Gtk:TreeIter instance) to which the data is appended, alternativeley
+the result of the yielded block is used as iter.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="data-model-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 121</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">model</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">model</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">TreeStore</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Pixbuf</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">String</span>)
+ <span class="ruby-identifier">iter</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">model</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">append</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">data</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-identifier">data</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">pair_iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">append</span>(<span class="ruby-identifier">iter</span>)
+ <span class="ruby-identifier">pair_iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'Key'</span>
+ <span class="ruby-identifier">pair_iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">pair_iter</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">iter</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Numeric</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'Numeric'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-value str">'null'</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'String'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">model</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="edit-method" class="method-detail ">
+ <a name="M000192"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">edit</span><span
+ class="method-args">(json, encoding = 'utf8')</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Edit the string <em>json</em> with encoding <em>encoding</em> in the
+editor.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="edit-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1362</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">json</span>, <span class="ruby-identifier">encoding</span> = <span class="ruby-value str">'utf8'</span>)
+ <span class="ruby-identifier">start</span>(<span class="ruby-identifier">encoding</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">window</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">edit</span> <span class="ruby-identifier">json</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="error-dialog-method" class="method-detail ">
+ <a name="M000081"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">error_dialog</span><span
+ class="method-args">(window, text)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Opens an error dialog on top of <em>window</em> showing the error message
+<em>text</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="error-dialog-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 50</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-identifier">window</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">MessageDialog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">window</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">MODAL</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">ERROR</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">BUTTONS_CLOSE</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span>
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TypeError</span>
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">MessageDialog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Editor</span>.<span class="ruby-identifier">window</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">MODAL</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">ERROR</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">BUTTONS_CLOSE</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="fetch-icon-method" class="method-detail ">
+ <a name="M000077"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">fetch_icon</span><span
+ class="method-args">(name)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the Gdk::Pixbuf of the icon named <em>name</em> from the icon
+cache.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="fetch-icon-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 39</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">fetch_icon</span>(<span class="ruby-identifier">name</span>)
+ <span class="ruby-ivar">@icon_cache</span> <span class="ruby-operator">||=</span> {}
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@icon_cache</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
+ <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>)
+ <span class="ruby-ivar">@icon_cache</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Pixbuf</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.xpm'</span>))
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-ivar">@icon_cache</span>[<span class="ruby-identifier">name</span>]
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="model-data-method" class="method-detail ">
+ <a name="M000083"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">model2data</span><span
+ class="method-args">(iter)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Convert the tree model starting from <a
+href="Editor/Gtk/TreeIter.html">Gtk::TreeIter</a> <em>iter</em> into a Ruby
+data structure and return it.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="model-data-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 83</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">iter</span>)
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">nil?</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-identifier">hash</span> = {}
+ <span class="ruby-identifier">iter</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">hash</span>[<span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span>] = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">c</span>.<span class="ruby-identifier">first_child</span>) }
+ <span class="ruby-identifier">hash</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">array</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">iter</span>.<span class="ruby-identifier">n_children</span>)
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">c</span>) }
+ <span class="ruby-identifier">array</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Key'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'String'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span>
+ <span class="ruby-identifier">content</span> = <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/\./</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">content</span>)
+ <span class="ruby-identifier">content</span>.<span class="ruby-identifier">to_f</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">content</span>.<span class="ruby-identifier">to_i</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span>
+ <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span>
+ <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'NilClass'</span>
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Unknown type found in model: #{iter.type}&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="question-dialog-method" class="method-detail ">
+ <a name="M000082"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">question_dialog</span><span
+ class="method-args">(window, text)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Opens a yes/no question dialog on top of <em>window</em> showing the error
+message <em>text</em>. If yes was answered <em>true</em> is returned,
+otherwise <em>false</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="question-dialog-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 69</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">question_dialog</span>(<span class="ruby-identifier">window</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">MessageDialog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">window</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">MODAL</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">QUESTION</span>,
+ <span class="ruby-constant">MessageDialog</span><span class="ruby-operator">::</span><span class="ruby-constant">BUTTONS_YES_NO</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Gtk</span><span class="ruby-operator">::</span><span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_YES</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">response</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="start-method" class="method-detail ">
+ <a name="M000191"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">start</span><span
+ class="method-args">(encoding = 'utf8')</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Starts a <a href="../JSON.html">JSON</a> <a href="Editor.html">Editor</a>.
+If a block was given, it yields to the <a
+href="Editor/MainWindow.html">JSON::Editor::MainWindow</a> instance.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="start-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1352</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start</span>(<span class="ruby-identifier">encoding</span> = <span class="ruby-value str">'utf8'</span>) <span class="ruby-comment cmt"># :yield: window</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">init</span>
+ <span class="ruby-ivar">@window</span> = <span class="ruby-constant">Editor</span><span class="ruby-operator">::</span><span class="ruby-constant">MainWindow</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">encoding</span>)
+ <span class="ruby-ivar">@window</span>.<span class="ruby-identifier">icon_list</span> = [ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">fetch_icon</span>(<span class="ruby-value str">'json'</span>) ]
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@window</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
+ <span class="ruby-ivar">@window</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/EditMenu.html b/doc/JSON/Editor/EditMenu.html
new file mode 100644
index 0000000..a3c16bc
--- /dev/null
+++ b/doc/JSON/Editor/EditMenu.html
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::EditMenu</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000147">#copy</a></li>
+
+ <li><a href="#M000152">#create</a></li>
+
+ <li><a href="#M000149">#find</a></li>
+
+ <li><a href="#M000150">#find_again</a></li>
+
+ <li><a href="#M000148">#paste</a></li>
+
+ <li><a href="#M000151">#sort</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::EditMenu</h1>
+
+ <div id="description">
+ <p>
+This class creates the Edit pulldown menu.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="copy-method" class="method-detail ">
+ <a name="M000147"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">copy</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Copy data from model into primary clipboard.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="copy-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 548</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">data</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">model</span>.<span class="ruby-identifier">iter_first</span>)
+ <span class="ruby-identifier">json</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">pretty_generate</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">c</span> = <span class="ruby-constant">Gtk</span><span class="ruby-operator">::</span><span class="ruby-constant">Clipboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Selection</span><span class="ruby-operator">::</span><span class="ruby-constant">PRIMARY</span>)
+ <span class="ruby-identifier">c</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">json</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-method" class="method-detail ">
+ <a name="M000152"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Create the menu.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 645</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">title</span> = <span class="ruby-constant">MenuItem</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Edit'</span>)
+ <span class="ruby-identifier">title</span>.<span class="ruby-identifier">submenu</span> = <span class="ruby-identifier">menu</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Copy'</span>, <span class="ruby-value">?c</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:copy</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Paste'</span>, <span class="ruby-value">?v</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:paste</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Find'</span>, <span class="ruby-value">?f</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:find</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Find Again'</span>, <span class="ruby-value">?g</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:find_again</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Sort'</span>, <span class="ruby-value">?S</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:sort</span>))
+ <span class="ruby-identifier">title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="find-method" class="method-detail ">
+ <a name="M000149"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">find</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Find a string in all nodes&#8217; contents and select the found node in the
+treeview.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="find-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 570</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-ivar">@search</span> = <span class="ruby-identifier">ask_for_find_term</span>(<span class="ruby-ivar">@search</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">get_iter</span>(<span class="ruby-value str">'0'</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">recursive_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@iter</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@iter</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">i</span>
+ <span class="ruby-keyword kw">next</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@iter</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">next</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@search</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">i</span>[<span class="ruby-constant">CONTENT_COL</span>])
+ <span class="ruby-identifier">set_cursor</span>(<span class="ruby-identifier">i</span>.<span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-ivar">@iter</span> = <span class="ruby-identifier">i</span>
+ <span class="ruby-keyword kw">break</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="find-again-method" class="method-detail ">
+ <a name="M000150"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">find_again</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Repeat the last search given by <a href="EditMenu.html#M000149">find</a>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="find-again-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 590</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_again</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-ivar">@search</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">get_iter</span>(<span class="ruby-value str">'0'</span>)
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">recursive_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@iter</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@iter</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">i</span>
+ <span class="ruby-keyword kw">next</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@iter</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">next</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@search</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">i</span>[<span class="ruby-constant">CONTENT_COL</span>])
+ <span class="ruby-identifier">set_cursor</span>(<span class="ruby-identifier">i</span>.<span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-ivar">@iter</span> = <span class="ruby-identifier">i</span>
+ <span class="ruby-keyword kw">break</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="paste-method" class="method-detail ">
+ <a name="M000148"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">paste</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Copy json text from primary clipboard into model.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="paste-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 556</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">paste</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">c</span> = <span class="ruby-constant">Gtk</span><span class="ruby-operator">::</span><span class="ruby-constant">Clipboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Selection</span><span class="ruby-operator">::</span><span class="ruby-constant">PRIMARY</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">json</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">wait_for_text</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">ask_save</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@changed</span>
+ <span class="ruby-keyword kw">begin</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">edit</span> <span class="ruby-identifier">json</span>
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-constant">ParserError</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">clear</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="sort-method" class="method-detail ">
+ <a name="M000151"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">sort</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Sort (Reverse sort) all elements of the selected array by the given
+expression. <em>x</em> is the element in question.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="sort-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 611</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">ary</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">order</span>, <span class="ruby-identifier">reverse</span> = <span class="ruby-identifier">ask_for_order</span>
+ <span class="ruby-identifier">order</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">begin</span>
+ <span class="ruby-identifier">block</span> = <span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;lambda { |x| #{order} }&quot;</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reverse</span>
+ <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">sort!</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">block</span>[<span class="ruby-identifier">b</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">block</span>[<span class="ruby-identifier">a</span>] }
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">sort!</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">block</span>[<span class="ruby-identifier">a</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">block</span>[<span class="ruby-identifier">b</span>] }
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-node">&quot;Failed to sort Array with #{order}: #{e}!&quot;</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">ary</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">parent</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">m</span>.<span class="ruby-identifier">insert_before</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">remove</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Array has been sorted.&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Only Array nodes can be sorted!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Select an Array to sort first!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/FileMenu.html b/doc/JSON/Editor/FileMenu.html
new file mode 100644
index 0000000..144b9b3
--- /dev/null
+++ b/doc/JSON/Editor/FileMenu.html
@@ -0,0 +1,579 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::FileMenu</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000146">#create</a></li>
+
+ <li><a href="#M000139">#new</a></li>
+
+ <li><a href="#M000140">#open</a></li>
+
+ <li><a href="#M000141">#open_location</a></li>
+
+ <li><a href="#M000145">#quit</a></li>
+
+ <li><a href="#M000142">#revert</a></li>
+
+ <li><a href="#M000143">#save</a></li>
+
+ <li><a href="#M000144">#save_as</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::FileMenu</h1>
+
+ <div id="description">
+ <p>
+This class creates the File pulldown menu.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="create-method" class="method-detail ">
+ <a name="M000146"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Create the menu.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 527</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">title</span> = <span class="ruby-constant">MenuItem</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'File'</span>)
+ <span class="ruby-identifier">title</span>.<span class="ruby-identifier">submenu</span> = <span class="ruby-identifier">menu</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'New'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:new</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Open'</span>, <span class="ruby-value">?o</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:open</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Open location'</span>, <span class="ruby-value">?l</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:open_location</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Revert'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:revert</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Save'</span>, <span class="ruby-value">?s</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:save</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Save As'</span>, <span class="ruby-value">?S</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:save_as</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Quit'</span>, <span class="ruby-value">?q</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:quit</span>))
+ <span class="ruby-identifier">title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000139"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Clear the model and filename, but ask to save the <a
+href="../../JSON.html">JSON</a> document, if unsaved changes have occured.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 490</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">clear</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="open-method" class="method-detail ">
+ <a name="M000140"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">open</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Open a file and load it into the editor. Ask to save the <a
+href="../../JSON.html">JSON</a> document first, if unsaved changes have
+occured.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="open-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 496</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">file_open</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="open-location-method" class="method-detail ">
+ <a name="M000141"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">open_location</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="open-location-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 500</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open_location</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">location_open</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="quit-method" class="method-detail ">
+ <a name="M000145"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">quit</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Quit the editor, after asking to save any unsaved changes first.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="quit-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 522</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quit</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">quit</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="revert-method" class="method-detail ">
+ <a name="M000142"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">revert</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Revert the current <a href="../../JSON.html">JSON</a> document in the
+editor to the saved version.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="revert-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 505</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">revert</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-keyword kw">do</span>
+ <span class="ruby-ivar">@filename</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">file_open</span>(<span class="ruby-ivar">@filename</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="save-method" class="method-detail ">
+ <a name="M000143"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">save</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Save the current <a href="../../JSON.html">JSON</a> document.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="save-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 512</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">file_save</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="save-as-method" class="method-detail ">
+ <a name="M000144"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">save_as</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Save the current <a href="../../JSON.html">JSON</a> document under the
+given filename.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="save-as-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 517</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_as</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">file_save_as</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/Gtk.html b/doc/JSON/Editor/Gtk.html
new file mode 100644
index 0000000..d26f493
--- /dev/null
+++ b/doc/JSON/Editor/Gtk.html
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Editor::Gtk</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">CLASS</span> <a href="Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Editor::Gtk</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/Gtk/TreeIter.html b/doc/JSON/Editor/Gtk/TreeIter.html
new file mode 100644
index 0000000..37e578a
--- /dev/null
+++ b/doc/JSON/Editor/Gtk/TreeIter.html
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::Gtk::TreeIter</title>
+
+ <link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000090">#content</a></li>
+
+ <li><a href="#M000091">#content=</a></li>
+
+ <li><a href="#M000085">#each</a></li>
+
+ <li><a href="#M000086">#recursive_each</a></li>
+
+ <li><a href="#M000087">#remove_subtree</a></li>
+
+ <li><a href="#M000088">#type</a></li>
+
+ <li><a href="#M000089">#type=</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../../Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../Class.html">Class</a></li>
+
+ <li><a href="../../../Date.html">Date</a></li>
+
+ <li><a href="../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../Object.html">Object</a></li>
+
+ <li><a href="../../../Range.html">Range</a></li>
+
+ <li><a href="../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::Gtk::TreeIter</h1>
+
+ <div id="description">
+ <p>
+The <a href="TreeIter.html">Gtk::TreeIter</a> class is reopened and some
+auxiliary methods are added.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="content-method" class="method-detail ">
+ <a name="M000090"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">content</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the content of this node.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="content-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 195</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">CONTENT_COL</span>]
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="content--method" class="method-detail ">
+ <a name="M000091"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">content=</span><span
+ class="method-args">(value)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Sets the content of this node to <em>value</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="content--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 200</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">content=</span>(<span class="ruby-identifier">value</span>)
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">CONTENT_COL</span>] = <span class="ruby-identifier">value</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="each-method" class="method-detail ">
+ <a name="M000085"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">each</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Traverse each of this <a href="TreeIter.html">Gtk::TreeIter</a>
+instance&#8217;s children and yield to them.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="each-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 161</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+ <span class="ruby-identifier">n_children</span>.<span class="ruby-identifier">times</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">nth_child</span>(<span class="ruby-identifier">i</span>) }
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="recursive-each-method" class="method-detail ">
+ <a name="M000086"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">recursive_each</span><span
+ class="method-args">(&block)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Recursively traverse all nodes of this Gtk::TreeIter&#8217;s subtree
+(including self) and yield to them.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="recursive-each-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 167</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
+ <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">i</span>.<span class="ruby-identifier">recursive_each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="remove-subtree-method" class="method-detail ">
+ <a name="M000087"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">remove_subtree</span><span
+ class="method-args">(model)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Remove the subtree of this <a href="TreeIter.html">Gtk::TreeIter</a>
+instance from the model <em>model</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="remove-subtree-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 176</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_subtree</span>(<span class="ruby-identifier">model</span>)
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">first_child</span>
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">remove</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="type-method" class="method-detail ">
+ <a name="M000088"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">type</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the type of this node.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="type-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 183</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">TYPE_COL</span>]
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="type--method" class="method-detail ">
+ <a name="M000089"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">type=</span><span
+ class="method-args">(value)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Sets the type of this node to <em>value</em>. This implies setting the
+respective icon accordingly.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="type--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 189</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">type=</span>(<span class="ruby-identifier">value</span>)
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">TYPE_COL</span>] = <span class="ruby-identifier">value</span>
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-constant">ICON_COL</span>] = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">fetch_icon</span>(<span class="ruby-identifier">value</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/JSONTreeView.html b/doc/JSON/Editor/JSONTreeView.html
new file mode 100644
index 0000000..e80eca0
--- /dev/null
+++ b/doc/JSON/Editor/JSONTreeView.html
@@ -0,0 +1,1035 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::JSONTreeView</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">Gtk::TreeView</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000156">::new</a></li>
+
+ <li><a href="#M000157">#add_columns</a></li>
+
+ <li><a href="#M000161">#add_popup_menu</a></li>
+
+ <li><a href="#M000164">#ask_for_element</a></li>
+
+ <li><a href="#M000166">#ask_for_find_term</a></li>
+
+ <li><a href="#M000163">#ask_for_hash_pair</a></li>
+
+ <li><a href="#M000165">#ask_for_order</a></li>
+
+ <li><a href="#M000159">#cell_edited</a></li>
+
+ <li><a href="#M000160">#configure_value</a></li>
+
+ <li><a href="#M000162">#create_node</a></li>
+
+ <li><a href="#M000167">#expand_collapse</a></li>
+
+ <li><a href="#M000158">#unify_key</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::JSONTreeView</h1>
+
+ <div id="description">
+ <p>
+This class inherits from Gtk::TreeView, to configure it and to add a lot of
+behaviour to it.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="window-attribute-method" class="method-detail">
+ <a name="window"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">window</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the <a href="MainWindow.html">MainWindow</a> instance of this <a
+href="JSONTreeView.html">JSONTreeView</a>.
+</p>
+
+ </div>
+ </div>
+
+ <div id="expanded-attribute-method" class="method-detail">
+ <a name="expanded"></a>
+
+ <a name="expanded="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">expanded</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true, if nodes are autoexpanding, false otherwise.
+</p>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000156"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(window)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Creates a <a href="JSONTreeView.html">JSONTreeView</a> instance, the
+parameter <em>window</em> is a <a href="MainWindow.html">MainWindow</a>
+instance and used for self delegation.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 701</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">window</span>)
+ <span class="ruby-ivar">@window</span> = <span class="ruby-identifier">window</span>
+ <span class="ruby-keyword kw">super</span>(<span class="ruby-constant">TreeStore</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Pixbuf</span>, <span class="ruby-constant">String</span>, <span class="ruby-constant">String</span>))
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">selection</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-constant">SELECTION_BROWSE</span>
+
+ <span class="ruby-ivar">@expanded</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">headers_visible</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">add_columns</span>
+ <span class="ruby-identifier">add_popup_menu</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="ask-for-element-method" class="method-detail ">
+ <a name="M000164"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_for_element</span><span
+ class="method-args">(parent = nil, default_type = nil, value_text = @content)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ask for an element to be appended <em>parent</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-for-element-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 902</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_element</span>(<span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">default_type</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value_text</span> = <span class="ruby-ivar">@content</span>)
+ <span class="ruby-identifier">type_input</span> = <span class="ruby-identifier">value_input</span> = <span class="ruby-keyword kw">nil</span>
+
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-node">&quot;New element into #{parent ? parent.type : 'root'}&quot;</span>,
+ <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ],
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ]
+ )
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Type:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">type_input</span> = <span class="ruby-constant">ComboBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>))
+ <span class="ruby-identifier">default_active</span> = <span class="ruby-value">0</span>
+ <span class="ruby-identifier">types</span> = <span class="ruby-identifier">parent</span> <span class="ruby-value">? </span><span class="ruby-constant">ALL_TYPES</span> <span class="ruby-operator">:</span> <span class="ruby-constant">CONTAINER_TYPES</span>
+ <span class="ruby-identifier">types</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">append_text</span>(<span class="ruby-identifier">t</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">default_type</span>
+ <span class="ruby-identifier">default_active</span> = <span class="ruby-identifier">i</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">default_active</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:changed</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value_input</span>, <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>])
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Value:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">value_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">value_text</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value_text</span>
+ <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value_input</span>, <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>])
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span>
+ <span class="ruby-identifier">type</span> = <span class="ruby-identifier">types</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>]
+ <span class="ruby-ivar">@content</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span>
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">'Infinity'</span>
+ <span class="ruby-value">1</span> <span class="ruby-operator">/</span> <span class="ruby-value">0</span><span class="ruby-value">.0</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-value">0</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span>
+ <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">type</span>, <span class="ruby-ivar">@content</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ask-for-find-term-method" class="method-detail ">
+ <a name="M000166"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_for_find_term</span><span
+ class="method-args">(search = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ask for a find term to search for in the tree. Returns the term as a
+string.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-for-find-term-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 997</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_find_term</span>(<span class="ruby-identifier">search</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-value str">&quot;Find a node matching regex in tree.&quot;</span>,
+ <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ],
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ]
+ )
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Regex:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">regex_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">icase_checkbox</span> = <span class="ruby-constant">CheckButton</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Icase'</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">search</span>
+ <span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">search</span>.<span class="ruby-identifier">source</span>
+ <span class="ruby-identifier">icase_checkbox</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">search</span>.<span class="ruby-identifier">casefold?</span>
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span>
+ <span class="ruby-keyword kw">begin</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">regex_input</span>.<span class="ruby-identifier">text</span>, <span class="ruby-identifier">icase_checkbox</span>.<span class="ruby-identifier">active?</span> <span class="ruby-value">? </span><span class="ruby-constant">Regexp</span><span class="ruby-operator">::</span><span class="ruby-constant">IGNORECASE</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)
+ <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-node">&quot;Evaluation of regex /#{regex_input.text}/ failed: #{e}!&quot;</span>)
+ <span class="ruby-keyword kw">return</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">return</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ask-for-hash-pair-method" class="method-detail ">
+ <a name="M000163"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_for_hash_pair</span><span
+ class="method-args">(parent)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ask for a hash key, value pair to be added to the Hash node
+<em>parent</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-for-hash-pair-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 831</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_hash_pair</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-identifier">key_input</span> = <span class="ruby-identifier">type_input</span> = <span class="ruby-identifier">value_input</span> = <span class="ruby-keyword kw">nil</span>
+
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;New (key, value) pair for Hash&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ],
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ]
+ )
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">width_request</span> = <span class="ruby-value">640</span>
+
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Key:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">key_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@key</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:activate</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> }
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key already exists in Hash!'</span>)
+ <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key has been changed.'</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Type:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">type_input</span> = <span class="ruby-constant">ComboBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>))
+ <span class="ruby-constant">ALL_TYPES</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">append_text</span>(<span class="ruby-identifier">t</span>) }
+ <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span> = <span class="ruby-ivar">@type</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:changed</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-constant">ALL_TYPES</span>[<span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>]
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>, <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'true'</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'false'</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'NilClass'</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'null'</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Value:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">value_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span>
+ <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@value</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span>
+ <span class="ruby-ivar">@key</span> = <span class="ruby-identifier">key_input</span>.<span class="ruby-identifier">text</span>
+ <span class="ruby-identifier">type</span> = <span class="ruby-constant">ALL_TYPES</span>[<span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type_input</span>.<span class="ruby-identifier">active</span>]
+ <span class="ruby-identifier">content</span> = <span class="ruby-identifier">value_input</span>.<span class="ruby-identifier">text</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@key</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ask-for-order-method" class="method-detail ">
+ <a name="M000165"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_for_order</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ask for an order criteria for sorting, using <em>x</em> for the element in
+question. Returns the order criterium, and true/false for reverse sorting.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-for-order-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 964</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_order</span>
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-value str">&quot;Give an order criterium for 'x'.&quot;</span>,
+ <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ],
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ]
+ )
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Order:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">order_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@order</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'x'</span>
+ <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span>
+
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">reverse_checkbox</span> = <span class="ruby-constant">CheckButton</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Reverse'</span>), <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">focus</span> = <span class="ruby-identifier">dialog</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@order</span> = <span class="ruby-identifier">order_input</span>.<span class="ruby-identifier">text</span>, <span class="ruby-identifier">reverse_checkbox</span>.<span class="ruby-identifier">active?</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-node-method" class="method-detail ">
+ <a name="M000162"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create_node</span><span
+ class="method-args">(parent, type, content)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Create a <em>type</em> node with content <em>content</em>, and add it to
+<em>parent</em> in the model. If <em>parent</em> is nil, create a new model
+and put it into the editor treeview.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 817</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_node</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>)
+ <span class="ruby-identifier">iter</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">append</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">new_model</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">view_new_model</span>(<span class="ruby-identifier">new_model</span>)
+ <span class="ruby-identifier">new_model</span>.<span class="ruby-identifier">iter_first</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>
+ <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">parent</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">iter</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="expand-collapse-method" class="method-detail ">
+ <a name="M000167"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">expand_collapse</span><span
+ class="method-args">(iter)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Expand or collapse row pointed to by <em>iter</em> according to the <a
+href="JSONTreeView.html#expanded">expanded</a> attribute.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="expand-collapse-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1037</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">iter</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">expanded</span>
+ <span class="ruby-identifier">expand_row</span>(<span class="ruby-identifier">iter</span>.<span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">true</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">collapse_row</span>(<span class="ruby-identifier">iter</span>.<span class="ruby-identifier">path</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="add-columns-method" class="method-detail ">
+ <a name="M000157"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">add_columns</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="add-columns-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 720</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_columns</span>
+ <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererPixbuf</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Icon'</span>, <span class="ruby-identifier">cell</span>,
+ <span class="ruby-value str">'pixbuf'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">ICON_COL</span>
+ )
+ <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>)
+
+ <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererText</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Type'</span>, <span class="ruby-identifier">cell</span>,
+ <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">TYPE_COL</span>
+ )
+ <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>)
+
+ <span class="ruby-identifier">cell</span> = <span class="ruby-constant">CellRendererText</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">column</span> = <span class="ruby-constant">TreeViewColumn</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Content'</span>, <span class="ruby-identifier">cell</span>,
+ <span class="ruby-value str">'text'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">CONTENT_COL</span>
+ )
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:edited</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:cell_edited</span>))
+ <span class="ruby-identifier">append_column</span>(<span class="ruby-identifier">column</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="add-popup-menu-method" class="method-detail ">
+ <a name="M000161"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">add_popup_menu</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="add-popup-menu-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 807</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_popup_menu</span>
+ <span class="ruby-identifier">menu</span> = <span class="ruby-constant">PopUpMenu</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
+ <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">create</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="cell-edited-method" class="method-detail ">
+ <a name="M000159"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">cell_edited</span><span
+ class="method-args">(cell, path, value)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="cell-edited-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 755</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cell_edited</span>(<span class="ruby-identifier">cell</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">value</span>)
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">get_iter</span>(<span class="ruby-identifier">path</span>)
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Key'</span>
+ <span class="ruby-identifier">unify_key</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">value</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">'Key has been changed.'</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">downcase!</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'true'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-value str">'TrueClass'</span>, <span class="ruby-value str">'true'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">downcase!</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'false'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-value str">'FalseClass'</span>, <span class="ruby-value str">'false'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> =
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Infinity'</span>
+ <span class="ruby-identifier">value</span>
+ <span class="ruby-keyword kw">else</span>
+ (<span class="ruby-constant">Integer</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">value</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-value">0</span>).<span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'String'</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">value</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Hash'</span>, <span class="ruby-value str">'Array'</span>
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">fail</span> <span class="ruby-node">&quot;Unknown type found in model: #{iter.type}&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="configure-value-method" class="method-detail ">
+ <a name="M000160"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">configure_value</span><span
+ class="method-args">(value, type)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="configure-value-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 788</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">type</span>)
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>, <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'TrueClass'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'true'</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'FalseClass'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'false'</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'NilClass'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> = <span class="ruby-value str">'null'</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Numeric'</span>, <span class="ruby-value str">'String'</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">value</span>.<span class="ruby-identifier">editable</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unknown type '#{type}' encountered&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="unify-key-method" class="method-detail ">
+ <a name="M000158"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">unify_key</span><span
+ class="method-args">(iter, key)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="unify-key-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 742</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unify_key</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">key</span>)
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Key'</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">parent</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">iter</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key</span> }
+ <span class="ruby-identifier">old_key</span> = <span class="ruby-identifier">key</span>
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
+ <span class="ruby-keyword kw">begin</span>
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;%s.%d&quot;</span>, <span class="ruby-identifier">old_key</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>)
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">iter</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">content</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">key</span> }
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">key</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/MainWindow.html b/doc/JSON/Editor/MainWindow.html
new file mode 100644
index 0000000..d56c5de
--- /dev/null
+++ b/doc/JSON/Editor/MainWindow.html
@@ -0,0 +1,1298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::MainWindow</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">Gtk::Window</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000168">::new</a></li>
+
+ <li><a href="#M000190">#ask_for_location</a></li>
+
+ <li><a href="#M000174">#ask_save</a></li>
+
+ <li><a href="#M000170">#change</a></li>
+
+ <li><a href="#M000178">#check_pretty_printed</a></li>
+
+ <li><a href="#M000177">#clear</a></li>
+
+ <li><a href="#M000169">#create_menu_bar</a></li>
+
+ <li><a href="#M000173">#display_status</a></li>
+
+ <li><a href="#M000176">#display_title</a></li>
+
+ <li><a href="#M000181">#edit</a></li>
+
+ <li><a href="#M000180">#file_open</a></li>
+
+ <li><a href="#M000182">#file_save</a></li>
+
+ <li><a href="#M000183">#file_save_as</a></li>
+
+ <li><a href="#M000185">#load_file</a></li>
+
+ <li><a href="#M000186">#load_location</a></li>
+
+ <li><a href="#M000179">#location_open</a></li>
+
+ <li><a href="#M000187">#parse_json</a></li>
+
+ <li><a href="#M000175">#quit</a></li>
+
+ <li><a href="#M000188">#read_data</a></li>
+
+ <li><a href="#M000189">#select_file</a></li>
+
+ <li><a href="#M000184">#store_file</a></li>
+
+ <li><a href="#M000171">#unchange</a></li>
+
+ <li><a href="#M000172">#view_new_model</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::MainWindow</h1>
+
+ <div id="description">
+ <p>
+The editor main window
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000168"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(encoding)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1050</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">encoding</span>)
+ <span class="ruby-ivar">@changed</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-ivar">@encoding</span> = <span class="ruby-identifier">encoding</span>
+ <span class="ruby-keyword kw">super</span>(<span class="ruby-constant">TOPLEVEL</span>)
+ <span class="ruby-identifier">display_title</span>
+ <span class="ruby-identifier">set_default_size</span>(<span class="ruby-value">800</span>, <span class="ruby-value">600</span>)
+ <span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:delete_event</span>) { <span class="ruby-identifier">quit</span> }
+
+ <span class="ruby-identifier">vbox</span> = <span class="ruby-constant">VBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">0</span>)
+ <span class="ruby-identifier">add</span>(<span class="ruby-identifier">vbox</span>)
+ <span class="ruby-comment cmt">#vbox.border_width = 0</span>
+
+ <span class="ruby-ivar">@treeview</span> = <span class="ruby-constant">JSONTreeView</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
+ <span class="ruby-ivar">@treeview</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'cursor-changed'</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">display_status</span>(<span class="ruby-value str">''</span>)
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">menu_bar</span> = <span class="ruby-identifier">create_menu_bar</span>
+ <span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">menu_bar</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">0</span>)
+
+ <span class="ruby-identifier">sw</span> = <span class="ruby-constant">ScrolledWindow</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">sw</span>.<span class="ruby-identifier">shadow_type</span> = <span class="ruby-constant">SHADOW_ETCHED_IN</span>
+ <span class="ruby-identifier">sw</span>.<span class="ruby-identifier">set_policy</span>(<span class="ruby-constant">POLICY_AUTOMATIC</span>, <span class="ruby-constant">POLICY_AUTOMATIC</span>)
+ <span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">sw</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-value">0</span>)
+ <span class="ruby-identifier">sw</span>.<span class="ruby-identifier">add</span>(<span class="ruby-ivar">@treeview</span>)
+
+ <span class="ruby-ivar">@status_bar</span> = <span class="ruby-constant">Statusbar</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-ivar">@status_bar</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value">0</span>)
+
+ <span class="ruby-ivar">@filename</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@filename</span>
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">read_data</span>(<span class="ruby-ivar">@filename</span>)
+ <span class="ruby-identifier">view_new_model</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">data</span>)
+ <span class="ruby-keyword kw">end</span>
+
+ <span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:button_release_event</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">_</span>,<span class="ruby-identifier">event</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span>.<span class="ruby-identifier">button</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
+ <span class="ruby-identifier">c</span> = <span class="ruby-constant">Gtk</span><span class="ruby-operator">::</span><span class="ruby-constant">Clipboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Selection</span><span class="ruby-operator">::</span><span class="ruby-constant">PRIMARY</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span> = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">wait_for_text</span>
+ <span class="ruby-identifier">location_open</span> <span class="ruby-identifier">url</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="ask-for-location-method" class="method-detail ">
+ <a name="M000190"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_for_location</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ask for location URI a to load data from. Returns the URI as a string.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-for-location-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1320</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_for_location</span>
+ <span class="ruby-identifier">dialog</span> = <span class="ruby-constant">Dialog</span>.<span class="ruby-identifier">new</span>(
+ <span class="ruby-value str">&quot;Load data from location...&quot;</span>,
+ <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">OK</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span> ],
+ [ <span class="ruby-constant">Stock</span><span class="ruby-operator">::</span><span class="ruby-constant">CANCEL</span>, <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_REJECT</span> ]
+ )
+ <span class="ruby-identifier">hbox</span> = <span class="ruby-constant">HBox</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, <span class="ruby-value">5</span>)
+
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-constant">Label</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;Location:&quot;</span>), <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-identifier">hbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">location_input</span> = <span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>)
+ <span class="ruby-identifier">location_input</span>.<span class="ruby-identifier">width_chars</span> = <span class="ruby-value">60</span>
+ <span class="ruby-identifier">location_input</span>.<span class="ruby-identifier">text</span> = <span class="ruby-ivar">@location</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">vbox</span>.<span class="ruby-identifier">pack_start</span>(<span class="ruby-identifier">hbox</span>, <span class="ruby-keyword kw">false</span>)
+
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>, <span class="ruby-operator">&amp;</span><span class="ruby-constant">DEFAULT_DIALOG_KEY_PRESS_HANDLER</span>)
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">run</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Dialog</span><span class="ruby-operator">::</span><span class="ruby-constant">RESPONSE_ACCEPT</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@location</span> = <span class="ruby-identifier">location_input</span>.<span class="ruby-identifier">text</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">ensure</span>
+ <span class="ruby-identifier">dialog</span>.<span class="ruby-identifier">destroy</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dialog</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ask-save-method" class="method-detail ">
+ <a name="M000174"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ask_save</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Opens a dialog, asking, if changes should be saved to a file.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ask-save-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1141</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ask_save</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">question_dialog</span>(<span class="ruby-keyword kw">self</span>,
+ <span class="ruby-value str">&quot;Unsaved changes to JSON model. Save?&quot;</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@filename</span>
+ <span class="ruby-identifier">file_save</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">file_save_as</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="change-method" class="method-detail ">
+ <a name="M000170"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">change</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Sets editor status to changed, to indicate that the edited data containts
+unsaved changes.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="change-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1112</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">change</span>
+ <span class="ruby-ivar">@changed</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">display_title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="clear-method" class="method-detail ">
+ <a name="M000177"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">clear</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Clear the current model, after asking to save all unsaved changes.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="clear-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1171</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
+ <span class="ruby-identifier">ask_save</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@changed</span>
+ <span class="ruby-ivar">@filename</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">view_new_model</span> <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-menu-bar-method" class="method-detail ">
+ <a name="M000169"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create_menu_bar</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Creates the menu bar with the pulldown menus and returns it.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-menu-bar-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1099</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_menu_bar</span>
+ <span class="ruby-identifier">menu_bar</span> = <span class="ruby-constant">MenuBar</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-ivar">@file_menu</span> = <span class="ruby-constant">FileMenu</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@treeview</span>)
+ <span class="ruby-identifier">menu_bar</span>.<span class="ruby-identifier">append</span> <span class="ruby-ivar">@file_menu</span>.<span class="ruby-identifier">create</span>
+ <span class="ruby-ivar">@edit_menu</span> = <span class="ruby-constant">EditMenu</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@treeview</span>)
+ <span class="ruby-identifier">menu_bar</span>.<span class="ruby-identifier">append</span> <span class="ruby-ivar">@edit_menu</span>.<span class="ruby-identifier">create</span>
+ <span class="ruby-ivar">@options_menu</span> = <span class="ruby-constant">OptionsMenu</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@treeview</span>)
+ <span class="ruby-identifier">menu_bar</span>.<span class="ruby-identifier">append</span> <span class="ruby-ivar">@options_menu</span>.<span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">menu_bar</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="display-status-method" class="method-detail ">
+ <a name="M000173"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">display_status</span><span
+ class="method-args">(text)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Displays <em>text</em> in the status bar.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="display-status-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1133</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_status</span>(<span class="ruby-identifier">text</span>)
+ <span class="ruby-ivar">@cid</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-ivar">@status_bar</span>.<span class="ruby-identifier">pop</span>(<span class="ruby-ivar">@cid</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cid</span>
+ <span class="ruby-ivar">@cid</span> = <span class="ruby-ivar">@status_bar</span>.<span class="ruby-identifier">get_context_id</span>(<span class="ruby-value str">'dummy'</span>)
+ <span class="ruby-ivar">@status_bar</span>.<span class="ruby-identifier">push</span>(<span class="ruby-ivar">@cid</span>, <span class="ruby-identifier">text</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="display-title-method" class="method-detail ">
+ <a name="M000176"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">display_title</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Display the new title according to the editor&#8217;s current state.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="display-title-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1163</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_title</span>
+ <span class="ruby-identifier">title</span> = <span class="ruby-constant">TITLE</span>.<span class="ruby-identifier">dup</span>
+ <span class="ruby-identifier">title</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;: #@filename&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@filename</span>
+ <span class="ruby-identifier">title</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; *&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@changed</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">title</span> = <span class="ruby-identifier">title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="edit-method" class="method-detail ">
+ <a name="M000181"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">edit</span><span
+ class="method-args">(json)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Edit the string <em>json</em> in the editor.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="edit-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1202</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">json</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:read</span>
+ <span class="ruby-identifier">json</span> = <span class="ruby-identifier">json</span>.<span class="ruby-identifier">read</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">parse_json</span> <span class="ruby-identifier">json</span>
+ <span class="ruby-identifier">view_new_model</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">data</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="file-open-method" class="method-detail ">
+ <a name="M000180"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">file_open</span><span
+ class="method-args">(filename = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Open the file <em>filename</em> or call the <a
+href="MainWindow.html#M000189">select_file</a> method to ask for a
+filename.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="file-open-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1195</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_open</span>(<span class="ruby-identifier">filename</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">filename</span> = <span class="ruby-identifier">select_file</span>(<span class="ruby-value str">'Open as a JSON file'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">filename</span>
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">view_new_model</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">data</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="file-save-method" class="method-detail ">
+ <a name="M000182"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">file_save</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Save the current file.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="file-save-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1211</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_save</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@filename</span>
+ <span class="ruby-identifier">store_file</span>(<span class="ruby-ivar">@filename</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">file_save_as</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="file-save-as-method" class="method-detail ">
+ <a name="M000183"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">file_save_as</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Save the current file as the filename
+</p>
+
+
+
+ <div class="method-source-code"
+ id="file-save-as-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1220</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_save_as</span>
+ <span class="ruby-identifier">filename</span> = <span class="ruby-identifier">select_file</span>(<span class="ruby-value str">'Save as a JSON file'</span>)
+ <span class="ruby-identifier">store_file</span>(<span class="ruby-identifier">filename</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="load-file-method" class="method-detail ">
+ <a name="M000185"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">load_file</span><span
+ class="method-args">(filename)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Load the file named <em>filename</em> into the editor as a <a
+href="../../JSON.html">JSON</a> document.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="load-file-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1247</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">filename</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">filename</span>)
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-value str">&quot;Try to select a JSON file!&quot;</span>)
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">filename</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">data</span> = <span class="ruby-identifier">read_data</span>(<span class="ruby-identifier">filename</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Loaded data from '#@filename'.&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">display_title</span>
+ <span class="ruby-identifier">data</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="load-location-method" class="method-detail ">
+ <a name="M000186"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">load_location</span><span
+ class="method-args">(uri)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Load the data at location <em>uri</em> into the editor as a <a
+href="../../JSON.html">JSON</a> document.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="load-location-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1264</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_location</span>(<span class="ruby-identifier">uri</span>)
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">read_data</span>(<span class="ruby-identifier">uri</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-ivar">@filename</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-node">&quot;Loaded data from '#{uri}'.&quot;</span>)
+ <span class="ruby-identifier">display_title</span>
+ <span class="ruby-identifier">data</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="location-open-method" class="method-detail ">
+ <a name="M000179"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">location_open</span><span
+ class="method-args">(uri = nil)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Open the data at the location <em>uri</em>, if given. Otherwise open a
+dialog to ask for the <em>uri</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="location-open-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1185</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">location_open</span>(<span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">nil</span>)
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">ask_for_location</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
+ <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">ask_save</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@changed</span>
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">load_location</span>(<span class="ruby-identifier">uri</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">view_new_model</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">data</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="quit-method" class="method-detail ">
+ <a name="M000175"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">quit</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Quit this editor, that is, leave this editor&#8217;s main loop.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="quit-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1153</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quit</span>
+ <span class="ruby-identifier">ask_save</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@changed</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main_level</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">destroy</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main_quit</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="read-data-method" class="method-detail ">
+ <a name="M000188"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">read_data</span><span
+ class="method-args">(filename)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Read a <a href="../../JSON.html">JSON</a> document from the file named
+<em>filename</em>, parse it into a ruby data structure, and return the
+data.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="read-data-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1284</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_data</span>(<span class="ruby-identifier">filename</span>)
+ <span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">json</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-node">&quot;Failed to parse JSON file: #{e}!&quot;</span>)
+ <span class="ruby-keyword kw">return</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="select-file-method" class="method-detail ">
+ <a name="M000189"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">select_file</span><span
+ class="method-args">(message)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Open a file selecton dialog, displaying <em>message</em>, and return the
+selected filename or nil, if no file was selected.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="select-file-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1296</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">select_file</span>(<span class="ruby-identifier">message</span>)
+ <span class="ruby-identifier">filename</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-identifier">fs</span> = <span class="ruby-constant">FileSelection</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>)
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">set_modal</span>(<span class="ruby-keyword kw">true</span>)
+ <span class="ruby-ivar">@default_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>, <span class="ruby-value str">''</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@default_dir</span>
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">set_filename</span>(<span class="ruby-ivar">@default_dir</span>)
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">set_transient_for</span>(<span class="ruby-keyword kw">self</span>)
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:destroy</span>) { <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main_quit</span> }
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">ok_button</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:clicked</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">filename</span> = <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">filename</span>
+ <span class="ruby-ivar">@default_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">filename</span>), <span class="ruby-value str">''</span>)
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">destroy</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main_quit</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">cancel_button</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:clicked</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">destroy</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main_quit</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">fs</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-constant">Gtk</span>.<span class="ruby-identifier">main</span>
+ <span class="ruby-identifier">filename</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="store-file-method" class="method-detail ">
+ <a name="M000184"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">store_file</span><span
+ class="method-args">(path)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Store the current <a href="../../JSON.html">JSON</a> document to
+<em>path</em>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="store-file-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1226</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store_file</span>(<span class="ruby-identifier">path</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
+ <span class="ruby-identifier">data</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-ivar">@treeview</span>.<span class="ruby-identifier">model</span>.<span class="ruby-identifier">iter_first</span>)
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.tmp'</span>, <span class="ruby-value str">'wb'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">output</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">data</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">break</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options_menu</span>.<span class="ruby-identifier">pretty_item</span>.<span class="ruby-identifier">active?</span>
+ <span class="ruby-identifier">output</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">pretty_generate</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">rename</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.tmp'</span>, <span class="ruby-identifier">path</span>
+ <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">path</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Saved data to '#@filename'.&quot;</span>)
+ <span class="ruby-identifier">unchange</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SystemCallError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">error_dialog</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-node">&quot;Failed to store JSON file: #{e}!&quot;</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="unchange-method" class="method-detail ">
+ <a name="M000171"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">unchange</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Sets editor status to unchanged, to indicate that the edited data
+doesn&#8217;t containt unsaved changes.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="unchange-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1119</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unchange</span>
+ <span class="ruby-ivar">@changed</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">display_title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="view-new-model-method" class="method-detail ">
+ <a name="M000172"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">view_new_model</span><span
+ class="method-args">(model)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Puts a new model <em>model</em> into the Gtk::TreeView to be edited.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="view-new-model-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1125</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">view_new_model</span>(<span class="ruby-identifier">model</span>)
+ <span class="ruby-ivar">@treeview</span>.<span class="ruby-identifier">model</span> = <span class="ruby-identifier">model</span>
+ <span class="ruby-ivar">@treeview</span>.<span class="ruby-identifier">expanded</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-ivar">@treeview</span>.<span class="ruby-identifier">expand_all</span>
+ <span class="ruby-identifier">unchange</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="check-pretty-printed-method" class="method-detail ">
+ <a name="M000178"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">check_pretty_printed</span><span
+ class="method-args">(json)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="check-pretty-printed-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1177</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_pretty_printed</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-identifier">pretty</span> = <span class="ruby-operator">!</span><span class="ruby-operator">!</span>((<span class="ruby-identifier">nl_index</span> = <span class="ruby-identifier">json</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;\n&quot;</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">nl_index</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">json</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
+ <span class="ruby-ivar">@options_menu</span>.<span class="ruby-identifier">pretty_item</span>.<span class="ruby-identifier">active</span> = <span class="ruby-identifier">pretty</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="parse-json-method" class="method-detail ">
+ <a name="M000187"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse_json</span><span
+ class="method-args">(json)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 1272</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-identifier">check_pretty_printed</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@encoding</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-regexp re">/^utf8$/i</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@encoding</span>)
+ <span class="ruby-identifier">iconverter</span> = <span class="ruby-constant">Iconv</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'utf8'</span>, <span class="ruby-ivar">@encoding</span>)
+ <span class="ruby-identifier">json</span> = <span class="ruby-identifier">iconverter</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-identifier">json</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse</span>(<span class="ruby-identifier">json</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:create_additions</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/MenuExtension.html b/doc/JSON/Editor/MenuExtension.html
new file mode 100644
index 0000000..d4c5712
--- /dev/null
+++ b/doc/JSON/Editor/MenuExtension.html
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Editor::MenuExtension</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000092">::new</a></li>
+
+ <li><a href="#M000094">#add_item</a></li>
+
+ <li><a href="#M000093">#add_separator</a></li>
+
+ <li><a href="#M000095">#create</a></li>
+
+ <li><a href="#M000096">#method_missing</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Editor::MenuExtension</h1>
+
+ <div id="description">
+ <p>
+This module bundles some method, that can be used to create a menu. It
+should be included into the class in question.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="treeview-attribute-method" class="method-detail">
+ <a name="treeview"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">treeview</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the Gtk::TreeView of this menu.
+</p>
+
+ </div>
+ </div>
+
+ <div id="menu-attribute-method" class="method-detail">
+ <a name="menu"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">menu</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the menu.
+</p>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000092"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(treeview)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Creates a Menu, that includes <a
+href="MenuExtension.html">MenuExtension</a>. <em>treeview</em> is the
+Gtk::TreeView, on which it operates.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 212</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">treeview</span>)
+ <span class="ruby-ivar">@treeview</span> = <span class="ruby-identifier">treeview</span>
+ <span class="ruby-ivar">@menu</span> = <span class="ruby-constant">Menu</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="add-item-method" class="method-detail ">
+ <a name="M000094"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">add_item</span><span
+ class="method-args">(label, keyval = nil, klass = MenuItem, &callback)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Adds a Gtk::MenuItem to this instance&#8217;s <a
+href="MenuExtension.html#menu">menu</a>. <em>label</em> is the label
+string, <em>klass</em> is the item type, and <em>callback</em> is the
+procedure, that is called if the <em>item</em> is activated.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="add-item-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 231</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_item</span>(<span class="ruby-identifier">label</span>, <span class="ruby-identifier">keyval</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">klass</span> = <span class="ruby-constant">MenuItem</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">callback</span>)
+ <span class="ruby-identifier">label</span> = <span class="ruby-node">&quot;#{label} (C-#{keyval.chr})&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keyval</span>
+ <span class="ruby-identifier">item</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">label</span>)
+ <span class="ruby-identifier">item</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:activate</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">callback</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keyval</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:'key-press-event'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">event</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span>.<span class="ruby-identifier">state</span> <span class="ruby-operator">&amp;</span> <span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Window</span><span class="ruby-operator">::</span><span class="ruby-constant">ModifierType</span><span class="ruby-operator">::</span><span class="ruby-constant">CONTROL_MASK</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span>
+ <span class="ruby-identifier">event</span>.<span class="ruby-identifier">keyval</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">keyval</span>
+ <span class="ruby-identifier">callback</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">item</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">menu</span>.<span class="ruby-identifier">append</span> <span class="ruby-identifier">item</span>
+ <span class="ruby-identifier">item</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="add-separator-method" class="method-detail ">
+ <a name="M000093"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">add_separator</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Adds a Gtk::SeparatorMenuItem to this instance&#8217;s <a
+href="MenuExtension.html#menu">menu</a>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="add-separator-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 224</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">append</span> <span class="ruby-constant">SeparatorMenuItem</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-method" class="method-detail ">
+ <a name="M000095"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This method should be implemented in subclasses to create the <a
+href="MenuExtension.html#menu">menu</a> of this instance. It has to be
+called after an instance of this class is created, to build the menu.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 250</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="method-missing-method" class="method-detail ">
+ <a name="M000096"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">method_missing</span><span
+ class="method-args">(*a, &b)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="method-missing-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 254</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
+ <span class="ruby-identifier">treeview</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/OptionsMenu.html b/doc/JSON/Editor/OptionsMenu.html
new file mode 100644
index 0000000..8416742
--- /dev/null
+++ b/doc/JSON/Editor/OptionsMenu.html
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::OptionsMenu</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000153">#collapsed_nodes</a></li>
+
+ <li><a href="#M000155">#create</a></li>
+
+ <li><a href="#M000154">#pretty_saving</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::OptionsMenu</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="pretty-item-attribute-method" class="method-detail">
+ <a name="pretty_item"></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">pretty_item</span><span
+ class="attribute-access-type">[R]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="collapsed-nodes-method" class="method-detail ">
+ <a name="M000153"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">collapsed_nodes</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Collapse/Expand all nodes by default.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="collapsed-nodes-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 663</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collapsed_nodes</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">expanded</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">expanded</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">collapse_all</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">expanded</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">expand_all</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-method" class="method-detail ">
+ <a name="M000155"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Create the menu.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 682</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">title</span> = <span class="ruby-constant">MenuItem</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'Options'</span>)
+ <span class="ruby-identifier">title</span>.<span class="ruby-identifier">submenu</span> = <span class="ruby-identifier">menu</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Collapsed nodes'</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">CheckMenuItem</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:collapsed_nodes</span>))
+ <span class="ruby-ivar">@pretty_item</span> = <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">'Pretty saving'</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">CheckMenuItem</span>,
+ <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:pretty_saving</span>))
+ <span class="ruby-ivar">@pretty_item</span>.<span class="ruby-identifier">active</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">unchange</span>
+ <span class="ruby-identifier">title</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="pretty-saving-method" class="method-detail ">
+ <a name="M000154"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">pretty_saving</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Toggle pretty saving mode on/off.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="pretty-saving-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 674</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pretty_saving</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-ivar">@pretty_item</span>.<span class="ruby-identifier">toggled</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Editor/PopUpMenu.html b/doc/JSON/Editor/PopUpMenu.html
new file mode 100644
index 0000000..9a702de
--- /dev/null
+++ b/doc/JSON/Editor/PopUpMenu.html
@@ -0,0 +1,772 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Editor::PopUpMenu</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/editor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/editor.rb">lib/json/editor.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000102">#append_new_node</a></li>
+
+ <li><a href="#M000097">#change_node</a></li>
+
+ <li><a href="#M000117">#collapse_expand</a></li>
+
+ <li><a href="#M000099">#copy_node</a></li>
+
+ <li><a href="#M000133">#create</a></li>
+
+ <li><a href="#M000098">#cut_node</a></li>
+
+ <li><a href="#M000112">#insert_new_node</a></li>
+
+ <li><a href="#M000100">#paste_node_appending</a></li>
+
+ <li><a href="#M000101">#paste_node_inserting_before</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ <div id="includes-section" class="section">
+ <h3 class="section-header">Included Modules</h3>
+ <ul class="link-list">
+
+
+ <li><a class="include" href="../Editor.html">JSON::Editor</a></li>
+
+
+ </ul>
+ </div>
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Editor::PopUpMenu</h1>
+
+ <div id="description">
+ <p>
+This class creates the popup menu, that opens when clicking onto the
+treeview.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="append-new-node-method" class="method-detail ">
+ <a name="M000102"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">append_new_node</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Append a new node to the selected Hash or Array.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="append-new-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 388</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">append_new_node</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-identifier">parent_type</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">parent_type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-identifier">key</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ask_for_hash_pair</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-identifier">key</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">create_node</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-value str">'Key'</span>, <span class="ruby-identifier">key</span>)
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">create_node</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Added a (key, value)-pair to '#{parent_type}'.&quot;</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ask_for_element</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-identifier">type</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">create_node</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-node">&quot;Appendend an element to '#{parent_type}'.&quot;</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-node">&quot;Cannot append to '#{parent_type}'!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ask_for_element</span>
+ <span class="ruby-identifier">type</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">create_node</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="change-node-method" class="method-detail ">
+ <a name="M000097"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">change_node</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Change the type or content of the selected node.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="change-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 265</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">change_node</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">old_type</span>, <span class="ruby-identifier">old_content</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">current</span>.<span class="ruby-identifier">content</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">ALL_TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">old_type</span>)
+ <span class="ruby-ivar">@clipboard_data</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ask_for_element</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span>,
+ <span class="ruby-identifier">current</span>.<span class="ruby-identifier">content</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span>
+ <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">current</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>
+ <span class="ruby-identifier">current</span>.<span class="ruby-identifier">remove_subtree</span>(<span class="ruby-identifier">model</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Changed a node in tree.&quot;</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Cannot change node of type #{old_type} in tree!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="collapse-expand-method" class="method-detail ">
+ <a name="M000117"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">collapse_expand</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Recursively collapse/expand a subtree starting from the selected node.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="collapse-expand-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 444</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collapse_expand</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">row_expanded?</span>(<span class="ruby-identifier">current</span>.<span class="ruby-identifier">path</span>)
+ <span class="ruby-identifier">collapse_row</span>(<span class="ruby-identifier">current</span>.<span class="ruby-identifier">path</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">expand_row</span>(<span class="ruby-identifier">current</span>.<span class="ruby-identifier">path</span>, <span class="ruby-keyword kw">true</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Append a node into the root first!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="copy-node-method" class="method-detail ">
+ <a name="M000099"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">copy_node</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Copy the selected node and its subtree, and save it into the clipboard.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="copy-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 305</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_node</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Key'</span>
+ <span class="ruby-ivar">@clipboard_data</span> = {
+ <span class="ruby-identifier">current</span>.<span class="ruby-identifier">content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>.<span class="ruby-identifier">first_child</span>)
+ }
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@clipboard_data</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Copied a node from tree.&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="create-method" class="method-detail ">
+ <a name="M000133"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">create</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Create the menu.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 457</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Change node&quot;</span>, <span class="ruby-value">?n</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:change_node</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Cut node&quot;</span>, <span class="ruby-value">?X</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:cut_node</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Copy node&quot;</span>, <span class="ruby-value">?C</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:copy_node</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Paste node (appending)&quot;</span>, <span class="ruby-value">?A</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:paste_node_appending</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Paste node (inserting before)&quot;</span>, <span class="ruby-value">?I</span>,
+ <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:paste_node_inserting_before</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Append new node&quot;</span>, <span class="ruby-value">?a</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:append_new_node</span>))
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Insert new node before&quot;</span>, <span class="ruby-value">?i</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:insert_new_node</span>))
+ <span class="ruby-identifier">add_separator</span>
+ <span class="ruby-identifier">add_item</span>(<span class="ruby-value str">&quot;Collapse/Expand node (recursively)&quot;</span>, <span class="ruby-value">?e</span>,
+ <span class="ruby-operator">&amp;</span><span class="ruby-identifier">method</span>(<span class="ruby-identifier">:collapse_expand</span>))
+
+ <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">show_all</span>
+ <span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:button_press_event</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">widget</span>, <span class="ruby-identifier">event</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">EventButton</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">event</span>.<span class="ruby-identifier">button</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span>
+ <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">popup</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">button</span>, <span class="ruby-identifier">event</span>.<span class="ruby-identifier">time</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">signal_connect</span>(<span class="ruby-identifier">:popup_menu</span>) <span class="ruby-keyword kw">do</span>
+ <span class="ruby-identifier">menu</span>.<span class="ruby-identifier">popup</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">0</span>, <span class="ruby-constant">Gdk</span><span class="ruby-operator">::</span><span class="ruby-constant">Event</span><span class="ruby-operator">::</span><span class="ruby-constant">CURRENT_TIME</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="cut-node-method" class="method-detail ">
+ <a name="M000098"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">cut_node</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Cut the selected node and its subtree, and save it into the clipboard.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="cut-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 288</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cut_node</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Key'</span>
+ <span class="ruby-ivar">@clipboard_data</span> = {
+ <span class="ruby-identifier">current</span>.<span class="ruby-identifier">content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>.<span class="ruby-identifier">first_child</span>)
+ }
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@clipboard_data</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">remove</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Cut a node from tree.&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="insert-new-node-method" class="method-detail ">
+ <a name="M000112"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">insert_new_node</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Insert a new node into an Array before the selected element.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="insert-new-node-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 418</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert_new_node</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">parent</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">parent_parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">parent_type</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">selected_index</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">break</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ask_for_element</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-identifier">type</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">iter</span> = <span class="ruby-identifier">model</span>.<span class="ruby-identifier">insert_before</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">iter</span>.<span class="ruby-identifier">content</span> = <span class="ruby-identifier">type</span>, <span class="ruby-identifier">content</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Inserted an element to &quot;</span> <span class="ruby-operator">+</span>
+ <span class="ruby-node">&quot;'#{parent_type}' before index #{selected_index}.&quot;</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Cannot insert node below '#{parent_type}'!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Append a node into the root first!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="paste-node-appending-method" class="method-detail ">
+ <a name="M000100"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">paste_node_appending</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Paste the data in the clipboard into the selected Array or Hash by
+appending it.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="paste-node-appending-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 321</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">paste_node_appending</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@clipboard_data</span>
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">current</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-ivar">@clipboard_data</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'Hash'</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@clipboard_data</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">hash</span> = <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">model2data</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">model</span>.<span class="ruby-identifier">remove</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-ivar">@clipboard_data</span>)
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">parent</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
+ <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">parent</span>)
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@expanded</span>
+ <span class="ruby-identifier">expand_all</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Cannot paste non-#{current.type} data into '#{current.type}'!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Cannot paste node below '#{current.type}'!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Nothing to paste in clipboard!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Append a node into the root first!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="paste-node-inserting-before-method" class="method-detail ">
+ <a name="M000101"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">paste_node_inserting_before</span><span
+ class="method-args">(item)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Paste the data in the clipboard into the selected Array inserting it before
+the selected element.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="paste-node-inserting-before-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/editor.rb, line 359</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">paste_node_inserting_before</span>(<span class="ruby-identifier">item</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> = <span class="ruby-identifier">selection</span>.<span class="ruby-identifier">selected</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@clipboard_data</span>
+ <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">current</span>.<span class="ruby-identifier">parent</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span>
+ <span class="ruby-identifier">parent_type</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">type</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'Array'</span>
+ <span class="ruby-identifier">selected_index</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+ <span class="ruby-keyword kw">break</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-constant">Editor</span>.<span class="ruby-identifier">data2model</span>(<span class="ruby-ivar">@clipboard_data</span>, <span class="ruby-identifier">model</span>, <span class="ruby-identifier">parent</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">m</span>.<span class="ruby-identifier">insert_before</span>(<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">current</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">expand_collapse</span>(<span class="ruby-identifier">current</span>)
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Inserted an element to &quot;</span> <span class="ruby-operator">+</span>
+ <span class="ruby-node">&quot;'#{parent_type}' before index #{selected_index}.&quot;</span>)
+ <span class="ruby-identifier">window</span>.<span class="ruby-identifier">change</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(
+ <span class="ruby-node">&quot;Cannot insert node below '#{parent_type}'!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Nothing to paste in clipboard!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">toplevel</span>.<span class="ruby-identifier">display_status</span>(<span class="ruby-value str">&quot;Append a node into the root first!&quot;</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext.html b/doc/JSON/Ext.html
new file mode 100644
index 0000000..9156e47
--- /dev/null
+++ b/doc/JSON/Ext.html
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/ext_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/ext.rb">lib/json/ext.rb</a></li>
+
+ <li><a href="../ext/json/ext/parser_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/parser.c">ext/json/ext/parser.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext</h1>
+
+ <div id="description">
+ <p>
+This module holds all the modules/classes that implement JSON&#8217;s
+functionality as C extensions.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator.html b/doc/JSON/Ext/Generator.html
new file mode 100644
index 0000000..f52fe96
--- /dev/null
+++ b/doc/JSON/Ext/Generator.html
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../ext/json/ext/parser_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/parser.c">ext/json/ext/parser.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator</h1>
+
+ <div id="description">
+ <p>
+This is the <a href="../../JSON.html">JSON</a> generator implemented as a C
+extension. It can be configured to be used by setting
+</p>
+<pre>
+ JSON.generator = JSON::Ext::Generator
+</pre>
+<p>
+with the method generator= in <a href="../../JSON.html">JSON</a>.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods.html b/doc/JSON/Ext/Generator/GeneratorMethods.html
new file mode 100644
index 0000000..d338603
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods.html
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods</title>
+
+ <link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../Class.html">Class</a></li>
+
+ <li><a href="../../../Date.html">Date</a></li>
+
+ <li><a href="../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../Object.html">Object</a></li>
+
+ <li><a href="../../../Range.html">Range</a></li>
+
+ <li><a href="../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Array.html b/doc/JSON/Ext/Generator/GeneratorMethods/Array.html
new file mode 100644
index 0000000..88f2591
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/Array.html
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::Array</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000127">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::Array</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000127"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(state = nil, depth = 0)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string containing a <a
+href="../../../../JSON.html">JSON</a> array, that is generated from this <a
+href="Array.html">Array</a> instance. <em>state</em> is a JSON::State
+object, that can also be used to configure the produced <a
+href="../../../../JSON.html">JSON</a> string output further. <em>depth</em>
+is used to find out nesting depth, to indent accordingly.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self) </pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html
new file mode 100644
index 0000000..884c679
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::FalseClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000137">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::FalseClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000137"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string for false:
+&#8216;false&#8217;.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Float.html b/doc/JSON/Ext/Generator/GeneratorMethods/Float.html
new file mode 100644
index 0000000..2e50cca
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/Float.html
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::Float</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000129">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::Float</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000129"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string representation
+for this <a href="Float.html">Float</a> number.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html b/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html
new file mode 100644
index 0000000..4637783
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::Hash</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000126">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::Hash</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000126"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(state = nil, depth = 0)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string containing a <a
+href="../../../../JSON.html">JSON</a> object, that is generated from this
+<a href="Hash.html">Hash</a> instance. <em>state</em> is a JSON::State
+object, that can also be used to configure the produced <a
+href="../../../../JSON.html">JSON</a> string output further. <em>depth</em>
+is used to find out nesting depth, to indent accordingly.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html b/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html
new file mode 100644
index 0000000..ec4a106
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::Integer</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000128">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::Integer</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000128"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string representation
+for this <a href="Integer.html">Integer</a> number.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mInteger_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html
new file mode 100644
index 0000000..c185b0a
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::NilClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000138">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::NilClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000138"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Object.html b/doc/JSON/Ext/Generator/GeneratorMethods/Object.html
new file mode 100644
index 0000000..90c280d
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/Object.html
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::Object</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000125">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::Object</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000125"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Converts this object to a string (calling to_s), converts it to a <a
+href="../../../../JSON.html">JSON</a> string, and returns the result. This
+is a fallback, if no special method <a
+href="Object.html#M000125">to_json</a> was defined for some object.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ VALUE string = rb_funcall(self, i_to_s, 0);
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ Check_Type(string, T_STRING);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, string, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/String.html b/doc/JSON/Ext/Generator/GeneratorMethods/String.html
new file mode 100644
index 0000000..39b12c2
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/String.html
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::String</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000130">::included</a></li>
+
+ <li><a href="#M000131">#to_json</a></li>
+
+ <li><a href="#M000132">#to_json_raw</a></li>
+
+ <li><a href="#M000134">#to_json_raw_object</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::String</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="included-method" class="method-detail ">
+ <a name="M000130"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">included(modul)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Extends <em>modul</em> with the <a
+href="String/Extend.html">String::Extend</a> module.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="included-source">
+<pre>
+static VALUE mString_included_s(VALUE self, VALUE modul) </pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000131"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string should be encoded with UTF-8 A call to this method returns a <a
+href="../../../../JSON.html">JSON</a> string encoded with UTF16 big endian
+characters as u????.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-json-raw-method" class="method-detail ">
+ <a name="M000132"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json_raw(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This method creates a <a href="../../../../JSON.html">JSON</a> text from
+the result of a call to <a
+href="String.html#M000134">to_json_raw_object</a> of this <a
+href="String.html">String</a>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-raw-source">
+<pre>
+static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self)
+{
+ VALUE obj = mString_to_json_raw_object(self);
+ Check_Type(obj, T_HASH);
+ return mHash_to_json(argc, argv, obj);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-json-raw-object-method" class="method-detail ">
+ <a name="M000134"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json_raw_object()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This method creates a raw object hash, that can be nested into other data
+structures and will be generated as a raw string. This method should be
+used, if you want to convert raw strings to <a
+href="../../../../JSON.html">JSON</a> instead of UTF-8 strings, e. g.
+binary data.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-raw-object-source">
+<pre>
+static VALUE mString_to_json_raw_object(VALUE self)
+{
+ VALUE ary;
+ VALUE result = rb_hash_new();
+ rb_hash_aset(result, rb_funcall(mJSON, i_create_id, 0), rb_class_name(rb_obj_class(self)));
+ ary = rb_funcall(self, i_unpack, 1, rb_str_new2(&quot;C*&quot;));
+ rb_hash_aset(result, rb_str_new2(&quot;raw&quot;), ary);
+ return result;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html b/doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html
new file mode 100644
index 0000000..093824a
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::String::Extend</title>
+
+ <link rel="stylesheet" href="../../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000135">#json_create</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::String::Extend</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000135"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">json_create(o)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Raw Strings are <a href="../../../../../JSON.html">JSON</a> Objects (the
+raw bytes are stored in an array for the key &#8220;raw&#8221;). The Ruby
+<a href="../String.html">String</a> can be created by this module method.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+static VALUE mString_Extend_json_create(VALUE self, VALUE o)
+{
+ VALUE ary;
+ Check_Type(o, T_HASH);
+ ary = rb_hash_aref(o, rb_str_new2(&quot;raw&quot;));
+ return rb_funcall(ary, i_pack, 1, rb_str_new2(&quot;C*&quot;));
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html
new file mode 100644
index 0000000..9e508c3
--- /dev/null
+++ b/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Ext::Generator::GeneratorMethods::TrueClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000136">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Ext::Generator::GeneratorMethods::TrueClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000136"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_json(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string for true:
+&#8216;true&#8217;.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self)
+{
+ VALUE state, depth;
+ rb_scan_args(argc, argv, &quot;02&quot;, &amp;state, &amp;depth);
+ state = cState_from_state_s(cState, state);
+ return cState_partial_generate(state, self, depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Generator/State.html b/doc/JSON/Ext/Generator/State.html
new file mode 100644
index 0000000..39b6a88
--- /dev/null
+++ b/doc/JSON/Ext/Generator/State.html
@@ -0,0 +1,1204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Ext::Generator::State</title>
+
+ <link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../ext/json/ext/generator_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/generator.c">ext/json/ext/generator.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000103">::from_state</a></li>
+
+ <li><a href="#M000104">::new</a></li>
+
+ <li><a href="#M000119">#allow_nan?</a></li>
+
+ <li><a href="#M000114">#array_nl</a></li>
+
+ <li><a href="#M000115">#array_nl=</a></li>
+
+ <li><a href="#M000120">#ascii_only?</a></li>
+
+ <li><a href="#M000121">#configure</a></li>
+
+ <li><a href="#M000123">#generate</a></li>
+
+ <li><a href="#M000105">#indent</a></li>
+
+ <li><a href="#M000106">#indent=</a></li>
+
+ <li><a href="#M000116">#max_nesting</a></li>
+
+ <li><a href="#M000118">#max_nesting=</a></li>
+
+ <li><a href="#M000111">#object_nl</a></li>
+
+ <li><a href="#M000113">#object_nl=</a></li>
+
+ <li><a href="#M000124">#partial_generate</a></li>
+
+ <li><a href="#M000107">#space</a></li>
+
+ <li><a href="#M000108">#space=</a></li>
+
+ <li><a href="#M000109">#space_before</a></li>
+
+ <li><a href="#M000110">#space_before=</a></li>
+
+ <li><a href="#M000122">#to_h</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../Class.html">Class</a></li>
+
+ <li><a href="../../../Date.html">Date</a></li>
+
+ <li><a href="../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../Object.html">Object</a></li>
+
+ <li><a href="../../../Range.html">Range</a></li>
+
+ <li><a href="../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Ext::Generator::State</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="from-state-method" class="method-detail ">
+ <a name="M000103"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">from_state(opts)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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 class="method-source-code"
+ id="from-state-source">
+<pre>
+static VALUE cState_from_state_s(VALUE self, VALUE opts)
+{
+ if (rb_obj_is_kind_of(opts, self)) {
+ return opts;
+ } else if (rb_obj_is_kind_of(opts, rb_cHash)) {
+ return rb_funcall(self, i_new, 1, opts);
+ } else {
+ return rb_funcall(self, i_new, 0);
+ }
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000104"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">new(opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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><b>indent</b>: a string used to indent levels (default: &#8217;&#8217;),
+
+</li>
+<li><b>space</b>: a string that is put after, a : or , delimiter (default:
+&#8217;&#8217;),
+
+</li>
+<li><b><a href="State.html#M000109">space_before</a></b>: a string that is put
+before a : pair delimiter (default: &#8217;&#8217;),
+
+</li>
+<li><b><a href="State.html#M000111">object_nl</a></b>: a string that is put at
+the end of a <a href="../../../JSON.html">JSON</a> object (default:
+&#8217;&#8217;),
+
+</li>
+<li><b><a href="State.html#M000114">array_nl</a></b>: a string that is put at
+the end of a <a href="../../../JSON.html">JSON</a> array (default:
+&#8217;&#8217;),
+
+</li>
+<li><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.
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+static VALUE cState_initialize(int argc, VALUE *argv, VALUE self)
+{
+ VALUE opts;
+ GET_STATE(self);
+ MEMZERO(state, JSON_Generator_State, 1);
+ state-&gt;max_nesting = 19;
+ rb_scan_args(argc, argv, &quot;01&quot;, &amp;opts);
+ if (!NIL_P(opts)) cState_configure(self, opts);
+ return self;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="allow-nan--method" class="method-detail ">
+ <a name="M000119"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">allow_nan?</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true, if NaN, Infinity, and -Infinity should be generated,
+otherwise returns false.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="allow-nan--source">
+<pre>
+static VALUE cState_allow_nan_p(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;allow_nan ? Qtrue : Qfalse;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="array-nl-method" class="method-detail ">
+ <a name="M000114"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">array_nl()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> array.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="array-nl-source">
+<pre>
+static VALUE cState_array_nl(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;array_nl ? rb_str_new2(state-&gt;array_nl) : rb_str_new2(&quot;&quot;);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="array-nl--method" class="method-detail ">
+ <a name="M000115"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">array_nl=(array_nl)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> array.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="array-nl--source">
+<pre>
+static VALUE cState_array_nl_set(VALUE self, VALUE array_nl)
+{
+ GET_STATE(self);
+ Check_Type(array_nl, T_STRING);
+ if (RSTRING_LEN(array_nl) == 0) {
+ if (state-&gt;array_nl) {
+ ruby_xfree(state-&gt;array_nl);
+ state-&gt;array_nl = NULL;
+ }
+ } else {
+ if (state-&gt;array_nl) ruby_xfree(state-&gt;array_nl);
+ state-&gt;array_nl = strdup(RSTRING_PTR(array_nl));
+ }
+ return Qnil;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ascii-only--method" class="method-detail ">
+ <a name="M000120"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">ascii_only?</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true, if NaN, Infinity, and -Infinity should be generated,
+otherwise returns false.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="ascii-only--source">
+<pre>
+static VALUE cState_ascii_only_p(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;ascii_only ? Qtrue : Qfalse;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="configure-method" class="method-detail ">
+ <a name="M000121"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">configure(opts)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Configure this <a href="State.html">State</a> instance with the Hash
+<em>opts</em>, and return itself.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="configure-source">
+<pre>
+static VALUE cState_configure(VALUE self, VALUE opts)
+{
+ VALUE tmp;
+ GET_STATE(self);
+ tmp = rb_convert_type(opts, T_HASH, &quot;Hash&quot;, &quot;to_hash&quot;);
+ if (NIL_P(tmp)) tmp = rb_convert_type(opts, T_HASH, &quot;Hash&quot;, &quot;to_h&quot;);
+ if (NIL_P(tmp)) {
+ rb_raise(rb_eArgError, &quot;opts has to be hash like or convertable into a hash&quot;);
+ }
+ opts = tmp;
+ tmp = rb_hash_aref(opts, ID2SYM(i_indent));
+ if (RTEST(tmp)) {
+ Check_Type(tmp, T_STRING);
+ state-&gt;indent = strdup(RSTRING_PTR(tmp));
+ state-&gt;indent_len = strlen(state-&gt;indent);
+ }
+ tmp = rb_hash_aref(opts, ID2SYM(i_space));
+ if (RTEST(tmp)) {
+ Check_Type(tmp, T_STRING);
+ state-&gt;space = strdup(RSTRING_PTR(tmp));
+ state-&gt;space_len = strlen(state-&gt;space);
+ }
+ tmp = rb_hash_aref(opts, ID2SYM(i_space_before));
+ if (RTEST(tmp)) {
+ Check_Type(tmp, T_STRING);
+ state-&gt;space_before = strdup(RSTRING_PTR(tmp));
+ state-&gt;space_before_len = strlen(state-&gt;space_before);
+ }
+ tmp = rb_hash_aref(opts, ID2SYM(i_array_nl));
+ if (RTEST(tmp)) {
+ Check_Type(tmp, T_STRING);
+ state-&gt;array_nl = strdup(RSTRING_PTR(tmp));
+ state-&gt;array_nl_len = strlen(state-&gt;array_nl);
+ }
+ tmp = rb_hash_aref(opts, ID2SYM(i_object_nl));
+ if (RTEST(tmp)) {
+ Check_Type(tmp, T_STRING);
+ state-&gt;object_nl = strdup(RSTRING_PTR(tmp));
+ state-&gt;object_nl_len = strlen(state-&gt;object_nl);
+ }
+ tmp = ID2SYM(i_max_nesting);
+ state-&gt;max_nesting = 19;
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ VALUE max_nesting = rb_hash_aref(opts, tmp);
+ if (RTEST(max_nesting)) {
+ Check_Type(max_nesting, T_FIXNUM);
+ state-&gt;max_nesting = FIX2LONG(max_nesting);
+ } else {
+ state-&gt;max_nesting = 0;
+ }
+ }
+ tmp = rb_hash_aref(opts, ID2SYM(i_allow_nan));
+ state-&gt;allow_nan = RTEST(tmp);
+ tmp = rb_hash_aref(opts, ID2SYM(i_ascii_only));
+ state-&gt;ascii_only = RTEST(tmp);
+ return self;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="generate-method" class="method-detail ">
+ <a name="M000123"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">generate(obj)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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 class="method-source-code"
+ id="generate-source">
+<pre>
+static VALUE cState_generate(VALUE self, VALUE obj)
+{
+ VALUE result = cState_partial_generate(self, obj, Qnil);
+ VALUE re, args[2];
+ args[0] = rb_str_new2(&quot;\\A\\s*(?:\\[.*\\]|\\{.*\\})\\s*\\Z&quot;);
+ args[1] = CRegexp_MULTILINE;
+ re = rb_class_new_instance(2, args, rb_cRegexp);
+ if (NIL_P(rb_reg_match(re, result))) {
+ rb_raise(eGeneratorError, &quot;only generation of JSON objects or arrays allowed&quot;);
+ }
+ return result;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="indent-method" class="method-detail ">
+ <a name="M000105"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">indent()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to indent levels in the <a
+href="../../../JSON.html">JSON</a> text.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="indent-source">
+<pre>
+static VALUE cState_indent(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;indent ? rb_str_new2(state-&gt;indent) : rb_str_new2(&quot;&quot;);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="indent--method" class="method-detail ">
+ <a name="M000106"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">indent=(indent)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to indent levels in the <a
+href="../../../JSON.html">JSON</a> text.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="indent--source">
+<pre>
+static VALUE cState_indent_set(VALUE self, VALUE indent)
+{
+ GET_STATE(self);
+ Check_Type(indent, T_STRING);
+ if (RSTRING_LEN(indent) == 0) {
+ if (state-&gt;indent) {
+ ruby_xfree(state-&gt;indent);
+ state-&gt;indent = NULL;
+ }
+ } else {
+ if (state-&gt;indent) ruby_xfree(state-&gt;indent);
+ state-&gt;indent = strdup(RSTRING_PTR(indent));
+ }
+ return Qnil;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="max-nesting-method" class="method-detail ">
+ <a name="M000116"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">max_nesting</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This integer returns the maximum level of data structure nesting in the
+generated <a href="../../../JSON.html">JSON</a>, <a
+href="State.html#M000116">max_nesting</a> = 0 if no maximum is checked.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="max-nesting-source">
+<pre>
+static VALUE cState_max_nesting(VALUE self)
+{
+ GET_STATE(self);
+ return LONG2FIX(state-&gt;max_nesting);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="max-nesting--method" class="method-detail ">
+ <a name="M000118"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">max_nesting=(depth)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This sets the maximum level of data structure nesting in the generated <a
+href="../../../JSON.html">JSON</a> to the integer depth, <a
+href="State.html#M000116">max_nesting</a> = 0 if no maximum should be
+checked.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="max-nesting--source">
+<pre>
+static VALUE cState_max_nesting_set(VALUE self, VALUE depth)
+{
+ GET_STATE(self);
+ Check_Type(depth, T_FIXNUM);
+ return state-&gt;max_nesting = FIX2LONG(depth);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="object-nl-method" class="method-detail ">
+ <a name="M000111"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">object_nl()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> object (or Hash).
+</p>
+
+
+
+ <div class="method-source-code"
+ id="object-nl-source">
+<pre>
+static VALUE cState_object_nl(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;object_nl ? rb_str_new2(state-&gt;object_nl) : rb_str_new2(&quot;&quot;);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="object-nl--method" class="method-detail ">
+ <a name="M000113"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">object_nl=(object_nl)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> object (or Hash).
+</p>
+
+
+
+ <div class="method-source-code"
+ id="object-nl--source">
+<pre>
+static VALUE cState_object_nl_set(VALUE self, VALUE object_nl)
+{
+ GET_STATE(self);
+ Check_Type(object_nl, T_STRING);
+ if (RSTRING_LEN(object_nl) == 0) {
+ if (state-&gt;object_nl) {
+ ruby_xfree(state-&gt;object_nl);
+ state-&gt;object_nl = NULL;
+ }
+ } else {
+ if (state-&gt;object_nl) ruby_xfree(state-&gt;object_nl);
+ state-&gt;object_nl = strdup(RSTRING_PTR(object_nl));
+ }
+ return Qnil;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="partial-generate-method" class="method-detail ">
+ <a name="M000124"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">partial_generate(obj)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Generates a part of a <a href="../../../JSON.html">JSON</a> document from
+object <tt>obj</tt> and returns the result.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="partial-generate-source">
+<pre>
+static VALUE cState_partial_generate(VALUE self, VALUE obj, VALUE depth)
+{
+ VALUE result;
+ FBuffer *buffer = fbuffer_alloc();
+ GET_STATE(self);
+
+ if (state-&gt;object_delim) {
+ fbuffer_clear(state-&gt;object_delim);
+ } else {
+ state-&gt;object_delim = fbuffer_alloc_with_length(16);
+ }
+ fbuffer_append_char(state-&gt;object_delim, ',');
+ if (state-&gt;object_delim2) {
+ fbuffer_clear(state-&gt;object_delim2);
+ } else {
+ state-&gt;object_delim2 = fbuffer_alloc_with_length(16);
+ }
+ fbuffer_append_char(state-&gt;object_delim2, ':');
+ if (state-&gt;space) fbuffer_append(state-&gt;object_delim2, state-&gt;space, state-&gt;space_len);
+
+ if (state-&gt;array_delim) {
+ fbuffer_clear(state-&gt;array_delim);
+ } else {
+ state-&gt;array_delim = fbuffer_alloc_with_length(16);
+ }
+ fbuffer_append_char(state-&gt;array_delim, ',');
+ if (state-&gt;array_nl) fbuffer_append(state-&gt;array_delim, state-&gt;array_nl, state-&gt;array_nl_len);
+
+ generate_json(buffer, self, state, obj, NIL_P(depth) ? 0 : FIX2INT(depth));
+ result = fbuffer2rstring(buffer);
+ fbuffer_free_only_buffer(buffer);
+ FORCE_UTF8(result);
+ return result;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="space-method" class="method-detail ">
+ <a name="M000107"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">space()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space between the tokens in a <a
+href="../../../JSON.html">JSON</a> string.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="space-source">
+<pre>
+static VALUE cState_space(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;space ? rb_str_new2(state-&gt;space) : rb_str_new2(&quot;&quot;);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="space--method" class="method-detail ">
+ <a name="M000108"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">space=(space)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space between the tokens in a <a
+href="../../../JSON.html">JSON</a> string.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="space--source">
+<pre>
+static VALUE cState_space_set(VALUE self, VALUE space)
+{
+ GET_STATE(self);
+ Check_Type(space, T_STRING);
+ if (RSTRING_LEN(space) == 0) {
+ if (state-&gt;space) {
+ ruby_xfree(state-&gt;space);
+ state-&gt;space = NULL;
+ }
+ } else {
+ if (state-&gt;space) ruby_xfree(state-&gt;space);
+ state-&gt;space = strdup(RSTRING_PTR(space));
+ }
+ return Qnil;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="space-before-method" class="method-detail ">
+ <a name="M000109"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">space_before()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space before the &#8217;:&#8217; in <a
+href="../../../JSON.html">JSON</a> objects.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="space-before-source">
+<pre>
+static VALUE cState_space_before(VALUE self)
+{
+ GET_STATE(self);
+ return state-&gt;space_before ? rb_str_new2(state-&gt;space_before) : rb_str_new2(&quot;&quot;);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="space-before--method" class="method-detail ">
+ <a name="M000110"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">space_before=(space_before)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space before the &#8217;:&#8217; in <a
+href="../../../JSON.html">JSON</a> objects.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="space-before--source">
+<pre>
+static VALUE cState_space_before_set(VALUE self, VALUE space_before)
+{
+ GET_STATE(self);
+ Check_Type(space_before, T_STRING);
+ if (RSTRING_LEN(space_before) == 0) {
+ if (state-&gt;space_before) {
+ ruby_xfree(state-&gt;space_before);
+ state-&gt;space_before = NULL;
+ }
+ } else {
+ if (state-&gt;space_before) ruby_xfree(state-&gt;space_before);
+ state-&gt;space_before = strdup(RSTRING_PTR(space_before));
+ }
+ return Qnil;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-h-method" class="method-detail ">
+ <a name="M000122"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">to_h</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the configuration instance variables as a hash, that can be passed
+to the configure method.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-h-source">
+<pre>
+static VALUE cState_to_h(VALUE self)
+{
+ VALUE result = rb_hash_new();
+ GET_STATE(self);
+ rb_hash_aset(result, ID2SYM(i_indent), rb_str_new2(state-&gt;indent));
+ rb_hash_aset(result, ID2SYM(i_space), rb_str_new2(state-&gt;space));
+ rb_hash_aset(result, ID2SYM(i_space_before), rb_str_new2(state-&gt;space_before));
+ rb_hash_aset(result, ID2SYM(i_object_nl), rb_str_new2(state-&gt;object_nl));
+ rb_hash_aset(result, ID2SYM(i_array_nl), rb_str_new2(state-&gt;array_nl));
+ rb_hash_aset(result, ID2SYM(i_allow_nan), state-&gt;allow_nan ? Qtrue : Qfalse);
+ rb_hash_aset(result, ID2SYM(i_ascii_only), state-&gt;ascii_only ? Qtrue : Qfalse);
+ rb_hash_aset(result, ID2SYM(i_max_nesting), LONG2FIX(state-&gt;max_nesting));
+ return result;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Ext/Parser.html b/doc/JSON/Ext/Parser.html
new file mode 100644
index 0000000..8c2162c
--- /dev/null
+++ b/doc/JSON/Ext/Parser.html
@@ -0,0 +1,642 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Ext::Parser</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../ext/json/ext/parser_c.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="ext/json/ext/parser.c">ext/json/ext/parser.c</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000078">::new</a></li>
+
+ <li><a href="#M000079">#parse</a></li>
+
+ <li><a href="#M000080">#source</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Ext::Parser</h1>
+
+ <div id="description">
+ <p>
+This is the <a href="../../JSON.html">JSON</a> parser implemented as a C
+extension. It can be configured to be used by setting
+</p>
+<pre>
+ JSON.parser = JSON::Ext::Parser
+</pre>
+<p>
+with the method parser= in <a href="../../JSON.html">JSON</a>.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000078"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">new(source, opts => {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Creates a new <a href="Parser.html">JSON::Ext::Parser</a> instance for the
+string <em>source</em>.
+</p>
+<p>
+Creates a new <a href="Parser.html">JSON::Ext::Parser</a> instance for the
+string <em>source</em>.
+</p>
+<p>
+It will be configured by the <em>opts</em> hash. <em>opts</em> can have the
+following keys:
+</p>
+<p>
+<em>opts</em> can have the following keys:
+</p>
+<ul>
+<li><b>max_nesting</b>: The maximum depth of nesting allowed in the parsed data
+structures. Disable depth checking with :max_nesting => false|nil|0, it
+defaults to 19.
+
+</li>
+<li><b>allow_nan</b>: If set to true, allow NaN, Infinity and -Infinity in
+defiance of RFC 4627 to be parsed by the <a href="Parser.html">Parser</a>.
+This option defaults to false.
+
+</li>
+<li><b>create_additions</b>: If set to false, the <a
+href="Parser.html">Parser</a> doesn&#8217;t create additions even if a
+matchin class and create_id was found. This option defaults to true.
+
+</li>
+<li><b>object_class</b>: Defaults to Hash
+
+</li>
+<li><b>array_class</b>: Defaults to Array
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)
+{
+ char *ptr;
+ long len;
+ VALUE source, opts;
+ GET_PARSER;
+ rb_scan_args(argc, argv, &quot;11&quot;, &amp;source, &amp;opts);
+ source = convert_encoding(StringValue(source));
+ ptr = RSTRING_PTR(source);
+ len = RSTRING_LEN(source);
+ if (!NIL_P(opts)) {
+ opts = rb_convert_type(opts, T_HASH, &quot;Hash&quot;, &quot;to_hash&quot;);
+ if (NIL_P(opts)) {
+ rb_raise(rb_eArgError, &quot;opts needs to be like a hash&quot;);
+ } else {
+ VALUE tmp = ID2SYM(i_max_nesting);
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ VALUE max_nesting = rb_hash_aref(opts, tmp);
+ if (RTEST(max_nesting)) {
+ Check_Type(max_nesting, T_FIXNUM);
+ json-&gt;max_nesting = FIX2INT(max_nesting);
+ } else {
+ json-&gt;max_nesting = 0;
+ }
+ } else {
+ json-&gt;max_nesting = 19;
+ }
+ tmp = ID2SYM(i_allow_nan);
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ VALUE allow_nan = rb_hash_aref(opts, tmp);
+ json-&gt;allow_nan = RTEST(allow_nan) ? 1 : 0;
+ } else {
+ json-&gt;allow_nan = 0;
+ }
+ tmp = ID2SYM(i_create_additions);
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ VALUE create_additions = rb_hash_aref(opts, tmp);
+ if (RTEST(create_additions)) {
+ json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);
+ } else {
+ json-&gt;create_id = Qnil;
+ }
+ } else {
+ json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);
+ }
+ tmp = ID2SYM(i_object_class);
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ json-&gt;object_class = rb_hash_aref(opts, tmp);
+ } else {
+ json-&gt;object_class = Qnil;
+ }
+ tmp = ID2SYM(i_array_class);
+ if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
+ json-&gt;array_class = rb_hash_aref(opts, tmp);
+ } else {
+ json-&gt;array_class = Qnil;
+ }
+ }
+ } else {
+ json-&gt;max_nesting = 19;
+ json-&gt;allow_nan = 0;
+ json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);
+ json-&gt;object_class = Qnil;
+ json-&gt;array_class = Qnil;
+ }
+ json-&gt;current_nesting = 0;
+ json-&gt;len = len;
+ json-&gt;source = ptr;
+ json-&gt;Vsource = source;
+ return self;
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="parse-method" class="method-detail ">
+ <a name="M000079"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">parse()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Parses the current <a href="../../JSON.html">JSON</a> text <em>source</em>
+and returns the complete data structure as a result.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-source">
+<pre>
+static VALUE cParser_parse(VALUE self)
+{
+ char *p, *pe;
+ int cs = EVIL;
+ VALUE result = Qnil;
+ GET_PARSER;
+
+
+#line 1685 &quot;parser.c&quot;
+ {
+ cs = JSON_start;
+ }
+
+#line 682 &quot;parser.rl&quot;
+ p = json-&gt;source;
+ pe = p + json-&gt;len;
+
+#line 1694 &quot;parser.c&quot;
+ {
+ if ( p == pe )
+ goto _test_eof;
+ switch ( cs )
+ {
+st1:
+ if ( ++p == pe )
+ goto _test_eof1;
+case 1:
+ switch( (*p) ) {
+ case 13: goto st1;
+ case 32: goto st1;
+ case 47: goto st2;
+ case 91: goto tr3;
+ case 123: goto tr4;
+ }
+ if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )
+ goto st1;
+ goto st0;
+st0:
+cs = 0;
+ goto _out;
+st2:
+ if ( ++p == pe )
+ goto _test_eof2;
+case 2:
+ switch( (*p) ) {
+ case 42: goto st3;
+ case 47: goto st5;
+ }
+ goto st0;
+st3:
+ if ( ++p == pe )
+ goto _test_eof3;
+case 3:
+ if ( (*p) == 42 )
+ goto st4;
+ goto st3;
+st4:
+ if ( ++p == pe )
+ goto _test_eof4;
+case 4:
+ switch( (*p) ) {
+ case 42: goto st4;
+ case 47: goto st1;
+ }
+ goto st3;
+st5:
+ if ( ++p == pe )
+ goto _test_eof5;
+case 5:
+ if ( (*p) == 10 )
+ goto st1;
+ goto st5;
+tr3:
+#line 500 &quot;parser.rl&quot;
+ {
+ char *np;
+ json-&gt;current_nesting = 1;
+ np = JSON_parse_array(json, p, pe, &amp;result);
+ if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
+ }
+ goto st10;
+tr4:
+#line 493 &quot;parser.rl&quot;
+ {
+ char *np;
+ json-&gt;current_nesting = 1;
+ np = JSON_parse_object(json, p, pe, &amp;result);
+ if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
+ }
+ goto st10;
+st10:
+ if ( ++p == pe )
+ goto _test_eof10;
+case 10:
+#line 1771 &quot;parser.c&quot;
+ switch( (*p) ) {
+ case 13: goto st10;
+ case 32: goto st10;
+ case 47: goto st6;
+ }
+ if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )
+ goto st10;
+ goto st0;
+st6:
+ if ( ++p == pe )
+ goto _test_eof6;
+case 6:
+ switch( (*p) ) {
+ case 42: goto st7;
+ case 47: goto st9;
+ }
+ goto st0;
+st7:
+ if ( ++p == pe )
+ goto _test_eof7;
+case 7:
+ if ( (*p) == 42 )
+ goto st8;
+ goto st7;
+st8:
+ if ( ++p == pe )
+ goto _test_eof8;
+case 8:
+ switch( (*p) ) {
+ case 42: goto st8;
+ case 47: goto st10;
+ }
+ goto st7;
+st9:
+ if ( ++p == pe )
+ goto _test_eof9;
+case 9:
+ if ( (*p) == 10 )
+ goto st10;
+ goto st9;
+ }
+ _test_eof1: cs = 1; goto _test_eof;
+ _test_eof2: cs = 2; goto _test_eof;
+ _test_eof3: cs = 3; goto _test_eof;
+ _test_eof4: cs = 4; goto _test_eof;
+ _test_eof5: cs = 5; goto _test_eof;
+ _test_eof10: cs = 10; goto _test_eof;
+ _test_eof6: cs = 6; goto _test_eof;
+ _test_eof7: cs = 7; goto _test_eof;
+ _test_eof8: cs = 8; goto _test_eof;
+ _test_eof9: cs = 9; goto _test_eof;
+
+ _test_eof: {}
+ _out: {}
+ }
+
+#line 685 &quot;parser.rl&quot;
+
+ if (cs &gt;= JSON_first_final &amp;&amp; p == pe) {
+ return result;
+ } else {
+ rb_raise(eParserError, &quot;%u: unexpected token at '%s'&quot;, __LINE__, p);
+ }
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="source-method" class="method-detail ">
+ <a name="M000080"></a>
+
+ <div class="method-heading">
+
+ <span class="method-callseq">source()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a copy of the current <em>source</em> string, that was used to
+construct this <a href="Parser.html">Parser</a>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="source-source">
+<pre>
+static VALUE cParser_source(VALUE self)
+{
+ GET_PARSER;
+ return rb_str_dup(json-&gt;Vsource);
+}</pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/GeneratorError.html b/doc/JSON/GeneratorError.html
new file mode 100644
index 0000000..3ab965c
--- /dev/null
+++ b/doc/JSON/GeneratorError.html
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::GeneratorError</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">JSONError</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::GeneratorError</h1>
+
+ <div id="description">
+ <p>
+This exception is raised, if a generator or unparser error occurs.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/JSONError.html b/doc/JSON/JSONError.html
new file mode 100644
index 0000000..9c3bc22
--- /dev/null
+++ b/doc/JSON/JSONError.html
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::JSONError</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">StandardError</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::JSONError</h1>
+
+ <div id="description">
+ <p>
+The base exception for <a href="../JSON.html">JSON</a> errors.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/MissingUnicodeSupport.html b/doc/JSON/MissingUnicodeSupport.html
new file mode 100644
index 0000000..960dc82
--- /dev/null
+++ b/doc/JSON/MissingUnicodeSupport.html
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::MissingUnicodeSupport</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">JSONError</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::MissingUnicodeSupport</h1>
+
+ <div id="description">
+ <p>
+This exception is raised, if the required unicode support is missing on the
+system. Usually this means, that the iconv library is not installed.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/NestingError.html b/doc/JSON/NestingError.html
new file mode 100644
index 0000000..f90488c
--- /dev/null
+++ b/doc/JSON/NestingError.html
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::NestingError</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">ParserError</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::NestingError</h1>
+
+ <div id="description">
+ <p>
+This exception is raised, if the nesting of parsed datastructures is too
+deep.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/ParserError.html b/doc/JSON/ParserError.html
new file mode 100644
index 0000000..3ad5f30
--- /dev/null
+++ b/doc/JSON/ParserError.html
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::ParserError</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">JSONError</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::ParserError</h1>
+
+ <div id="description">
+ <p>
+This exception is raised, if a parser error occurs.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure.html b/doc/JSON/Pure.html
new file mode 100644
index 0000000..074acec
--- /dev/null
+++ b/doc/JSON/Pure.html
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure</title>
+
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ <li><a href="../lib/json/pure/parser_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/parser.rb">lib/json/pure/parser.rb</a></li>
+
+ <li><a href="../lib/json/pure_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure.rb">lib/json/pure.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../JSON.html">JSON</a></li>
+
+ <li><a href="../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../Class.html">Class</a></li>
+
+ <li><a href="../Date.html">Date</a></li>
+
+ <li><a href="../DateTime.html">DateTime</a></li>
+
+ <li><a href="../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../Exception.html">Exception</a></li>
+
+ <li><a href="../Kernel.html">Kernel</a></li>
+
+ <li><a href="../Object.html">Object</a></li>
+
+ <li><a href="../Range.html">Range</a></li>
+
+ <li><a href="../Regexp.html">Regexp</a></li>
+
+ <li><a href="../Struct.html">Struct</a></li>
+
+ <li><a href="../Symbol.html">Symbol</a></li>
+
+ <li><a href="../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure</h1>
+
+ <div id="description">
+ <p>
+This module holds all the modules/classes that implement JSON&#8217;s
+functionality in pure ruby.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator.html b/doc/JSON/Pure/Generator.html
new file mode 100644
index 0000000..8b30102
--- /dev/null
+++ b/doc/JSON/Pure/Generator.html
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><span class="type">CLASS</span> <a href="Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods.html b/doc/JSON/Pure/Generator/GeneratorMethods.html
new file mode 100644
index 0000000..3c5202a
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods.html
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods</title>
+
+ <link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><span class="type">MODULE</span> <a href="GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../Class.html">Class</a></li>
+
+ <li><a href="../../../Date.html">Date</a></li>
+
+ <li><a href="../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../Object.html">Object</a></li>
+
+ <li><a href="../../../Range.html">Range</a></li>
+
+ <li><a href="../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Array.html b/doc/JSON/Pure/Generator/GeneratorMethods/Array.html
new file mode 100644
index 0000000..2c99ebf
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/Array.html
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::Array</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000054">#json_transform</a></li>
+
+ <li><a href="#M000053">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::Array</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000053"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(state = nil, depth = 0, *)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string containing a <a
+href="../../../../JSON.html">JSON</a> array, that is unparsed from this <a
+href="Array.html">Array</a> instance. <em>state</em> is a JSON::State
+object, that can also be used to configure the produced <a
+href="../../../../JSON.html">JSON</a> string output further. <em>depth</em>
+is used to find out nesting depth, to indent accordingly.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 300</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">depth</span> = <span class="ruby-value">0</span>, <span class="ruby-operator">*</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">state</span>)
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">check_max_nesting</span>(<span class="ruby-identifier">depth</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">json_transform</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="json-transform-method" class="method-detail ">
+ <a name="M000054"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_transform</span><span
+ class="method-args">(state, depth)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-transform-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 310</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json_transform</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">delim</span> = <span class="ruby-value str">','</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
+ <span class="ruby-identifier">delim</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">array_nl</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">'['</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">array_nl</span>
+ <span class="ruby-identifier">depth</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">state</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">state</span>.<span class="ruby-identifier">array_nl</span>.<span class="ruby-identifier">empty?</span>
+ <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">delim</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">indent</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
+ }
+ <span class="ruby-identifier">depth</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">array_nl</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">indent</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">']'</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-value str">'['</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_json</span> }.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">delim</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">']'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html
new file mode 100644
index 0000000..d28aa62
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::FalseClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000066">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::FalseClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000066"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string for false:
+&#8216;false&#8217;.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 437</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>) <span class="ruby-value str">'false'</span> <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Float.html b/doc/JSON/Pure/Generator/GeneratorMethods/Float.html
new file mode 100644
index 0000000..3f8c14c
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/Float.html
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::Float</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000057">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::Float</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000057"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(state = nil, *)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string representation
+for this <a href="Float.html">Float</a> number.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 342</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">*</span>)
+ <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">infinite?</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">allow_nan?</span>
+ <span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">GeneratorError</span>, <span class="ruby-node">&quot;#{self} not allowed in JSON&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">nan?</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">allow_nan?</span>
+ <span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">GeneratorError</span>, <span class="ruby-node">&quot;#{self} not allowed in JSON&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">to_s</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html b/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html
new file mode 100644
index 0000000..7360f1d
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::Hash</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000051">#json_shift</a></li>
+
+ <li><a href="#M000052">#json_transform</a></li>
+
+ <li><a href="#M000050">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::Hash</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000050"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(state = nil, depth = 0, *)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string containing a <a
+href="../../../../JSON.html">JSON</a> object, that is unparsed from this <a
+href="Hash.html">Hash</a> instance. <em>state</em> is a JSON::State object,
+that can also be used to configure the produced <a
+href="../../../../JSON.html">JSON</a> string output further. <em>depth</em>
+is used to find out nesting depth, to indent accordingly.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 245</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">depth</span> = <span class="ruby-value">0</span>, <span class="ruby-operator">*</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
+ <span class="ruby-identifier">state</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">state</span>)
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">check_max_nesting</span>(<span class="ruby-identifier">depth</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">json_transform</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="json-shift-method" class="method-detail ">
+ <a name="M000051"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_shift</span><span
+ class="method-args">(state, depth)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-shift-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 255</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json_shift</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">state</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">object_nl</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">indent</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">depth</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="json-transform-method" class="method-detail ">
+ <a name="M000052"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_transform</span><span
+ class="method-args">(state, depth)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-transform-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 260</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json_transform</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">delim</span> = <span class="ruby-value str">','</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>
+ <span class="ruby-identifier">delim</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">object_nl</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">'{'</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">object_nl</span>
+ <span class="ruby-identifier">depth</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">indent</span> = <span class="ruby-identifier">state</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">state</span>.<span class="ruby-identifier">object_nl</span>.<span class="ruby-identifier">empty?</span>
+ <span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">delim</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">indent</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">space_before</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">':'</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">space</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-identifier">state</span>, <span class="ruby-identifier">depth</span>)
+ <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
+ }
+ <span class="ruby-identifier">depth</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">object_nl</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">indent</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">depth</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">indent</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'}'</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-value str">'{'</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_json</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">':'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_json</span>
+ }.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">delim</span>)
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'}'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html b/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html
new file mode 100644
index 0000000..3b8b4ce
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::Integer</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000056">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::Integer</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000056"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string representation
+for this <a href="Integer.html">Integer</a> number.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 337</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>) <span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html
new file mode 100644
index 0000000..0dbcc96
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::NilClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000067">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::NilClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000067"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string for nil:
+&#8216;null&#8217;.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 442</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>) <span class="ruby-value str">'null'</span> <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Object.html b/doc/JSON/Pure/Generator/GeneratorMethods/Object.html
new file mode 100644
index 0000000..7bbc6e4
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/Object.html
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::Object</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000049">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::Object</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000049"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Converts this object to a string (calling to_s), converts it to a <a
+href="../../../../JSON.html">JSON</a> string, and returns the result. This
+is a fallback, if no special method <a
+href="Object.html#M000049">to_json</a> was defined for some object.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 236</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>) <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_json</span> <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/String.html b/doc/JSON/Pure/Generator/GeneratorMethods/String.html
new file mode 100644
index 0000000..9971804
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/String.html
@@ -0,0 +1,481 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::String</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+ <div id="namespace-list-section" class="section">
+ <h3 class="section-header">Namespace</h3>
+ <ul class="link-list">
+
+ <li><span class="type">MODULE</span> <a href="String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000061">::included</a></li>
+
+ <li><a href="#M000058">#to_json</a></li>
+
+ <li><a href="#M000059">#to_json</a></li>
+
+ <li><a href="#M000063">#to_json_raw</a></li>
+
+ <li><a href="#M000062">#to_json_raw_object</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::String</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="included-method" class="method-detail ">
+ <a name="M000061"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">included</span><span
+ class="method-args">(modul)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Extends <em>modul</em> with the <a
+href="String/Extend.html">String::Extend</a> module.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="included-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 408</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">included</span>(<span class="ruby-identifier">modul</span>)
+ <span class="ruby-identifier">modul</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">Extend</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000058"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string should be encoded with UTF-8 A call to this method returns a <a
+href="../../../../JSON.html">JSON</a> string encoded with UTF16 big endian
+characters as u????.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 367</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-identifier">state</span>, = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
+ <span class="ruby-identifier">state</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">state</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">encoding</span> <span class="ruby-operator">==</span> <span class="ruby-operator">::</span><span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>
+ <span class="ruby-identifier">string</span> = <span class="ruby-keyword kw">self</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">string</span> = <span class="ruby-identifier">encode</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">ascii_only?</span>
+ <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">utf8_to_json_ascii</span>(<span class="ruby-identifier">string</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">utf8_to_json</span>(<span class="ruby-identifier">string</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000059"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string should be encoded with UTF-8 A call to this method returns a <a
+href="../../../../JSON.html">JSON</a> string encoded with UTF16 big endian
+characters as u????.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 385</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-identifier">state</span>, = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
+ <span class="ruby-identifier">state</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">state</span>.<span class="ruby-identifier">from_state</span>(<span class="ruby-identifier">state</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">state</span>.<span class="ruby-identifier">ascii_only?</span>
+ <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">utf8_to_json_ascii</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">utf8_to_json</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&quot;'</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-json-raw-method" class="method-detail ">
+ <a name="M000063"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json_raw</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This method creates a <a href="../../../../JSON.html">JSON</a> text from
+the result of a call to <a
+href="String.html#M000062">to_json_raw_object</a> of this <a
+href="String.html">String</a>.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-raw-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 425</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json_raw</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-identifier">to_json_raw_object</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-json-raw-object-method" class="method-detail ">
+ <a name="M000062"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json_raw_object</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This method creates a raw object hash, that can be nested into other data
+structures and will be unparsed as a raw string. This method should be
+used, if you want to convert raw strings to <a
+href="../../../../JSON.html">JSON</a> instead of UTF-8 strings, e. g.
+binary data.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-raw-object-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 416</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json_raw_object</span>
+ {
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">create_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'raw'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C*'</span>),
+ }
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html b/doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html
new file mode 100644
index 0000000..1b7150b
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::String::Extend</title>
+
+ <link rel="stylesheet" href="../../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000060">#json_create</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::String::Extend</h1>
+
+ <div id="description">
+ <p>
+Module that holds the extinding methods if, the <a
+href="../String.html">String</a> module is included.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000060"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(o)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Raw Strings are <a href="../../../../../JSON.html">JSON</a> Objects (the
+raw bytes are stored in an array for the key &#8220;raw&#8221;). The Ruby
+<a href="../String.html">String</a> can be created by this module method.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 402</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">o</span>)
+ <span class="ruby-identifier">o</span>[<span class="ruby-value str">'raw'</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'C*'</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html
new file mode 100644
index 0000000..ac36b51
--- /dev/null
+++ b/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: JSON::Pure::Generator::GeneratorMethods::TrueClass</title>
+
+ <link rel="stylesheet" href="../../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000064">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../../Class.html">Class</a></li>
+
+ <li><a href="../../../../Date.html">Date</a></li>
+
+ <li><a href="../../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../../Object.html">Object</a></li>
+
+ <li><a href="../../../../Range.html">Range</a></li>
+
+ <li><a href="../../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">JSON::Pure::Generator::GeneratorMethods::TrueClass</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000064"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns a <a href="../../../../JSON.html">JSON</a> string for true:
+&#8216;true&#8217;.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 432</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>) <span class="ruby-value str">'true'</span> <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Generator/State.html b/doc/JSON/Pure/Generator/State.html
new file mode 100644
index 0000000..74084a1
--- /dev/null
+++ b/doc/JSON/Pure/Generator/State.html
@@ -0,0 +1,775 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Pure::Generator::State</title>
+
+ <link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../../lib/json/pure/generator_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/generator.rb">lib/json/pure/generator.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="../../../Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000039">::from_state</a></li>
+
+ <li><a href="#M000041">::new</a></li>
+
+ <li><a href="#M000044">#allow_nan?</a></li>
+
+ <li><a href="#M000045">#ascii_only?</a></li>
+
+ <li><a href="#M000043">#check_circular?</a></li>
+
+ <li><a href="#M000046">#configure</a></li>
+
+ <li><a href="#M000048">#generate</a></li>
+
+ <li><a href="#M000047">#to_h</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../../JSON.html">JSON</a></li>
+
+ <li><a href="../../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../../Class.html">Class</a></li>
+
+ <li><a href="../../../Date.html">Date</a></li>
+
+ <li><a href="../../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../../Exception.html">Exception</a></li>
+
+ <li><a href="../../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../../Object.html">Object</a></li>
+
+ <li><a href="../../../Range.html">Range</a></li>
+
+ <li><a href="../../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../../Struct.html">Struct</a></li>
+
+ <li><a href="../../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Pure::Generator::State</h1>
+
+ <div id="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>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+ <div id="attribute-method-details" class="method-section section">
+ <h3 class="section-header">Attributes</h3>
+
+
+ <div id="indent-attribute-method" class="method-detail">
+ <a name="indent"></a>
+
+ <a name="indent="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">indent</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to indent levels in the <a
+href="../../../JSON.html">JSON</a> text.
+</p>
+
+ </div>
+ </div>
+
+ <div id="space-attribute-method" class="method-detail">
+ <a name="space"></a>
+
+ <a name="space="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">space</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space between the tokens in a <a
+href="../../../JSON.html">JSON</a> string.
+</p>
+
+ </div>
+ </div>
+
+ <div id="space-before-attribute-method" class="method-detail">
+ <a name="space_before"></a>
+
+ <a name="space_before="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">space_before</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is used to insert a space before the &#8217;:&#8217; in <a
+href="../../../JSON.html">JSON</a> objects.
+</p>
+
+ </div>
+ </div>
+
+ <div id="object-nl-attribute-method" class="method-detail">
+ <a name="object_nl"></a>
+
+ <a name="object_nl="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">object_nl</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> object (or Hash).
+</p>
+
+ </div>
+ </div>
+
+ <div id="array-nl-attribute-method" class="method-detail">
+ <a name="array_nl"></a>
+
+ <a name="array_nl="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">array_nl</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <p>
+This string is put at the end of a line that holds a <a
+href="../../../JSON.html">JSON</a> array.
+</p>
+
+ </div>
+ </div>
+
+ <div id="max-nesting-attribute-method" class="method-detail">
+ <a name="max_nesting"></a>
+
+ <a name="max_nesting="></a>
+
+ <div class="method-heading attribute-method-heading">
+ <span class="method-name">max_nesting</span><span
+ class="attribute-access-type">[RW]</span>
+ </div>
+
+ <div class="method-description">
+
+ <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>
+
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="from-state-method" class="method-detail ">
+ <a name="M000039"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">from_state</span><span
+ class="method-args">(opts)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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 class="method-source-code"
+ id="from-state-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 108</span>
+ <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>)
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">opts</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">self</span>
+ <span class="ruby-identifier">opts</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">opts</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">new</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000041"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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><b>indent</b>: a string used to indent levels (default: &#8217;&#8217;),
+
+</li>
+<li><b>space</b>: a string that is put after, a : or , delimiter (default:
+&#8217;&#8217;),
+
+</li>
+<li><b><a href="State.html#space_before">space_before</a></b>: a string that is
+put before a : pair delimiter (default: &#8217;&#8217;),
+
+</li>
+<li><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;),
+
+</li>
+<li><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;),
+
+</li>
+<li><b>check_circular</b>: is deprecated now, use the :<a
+href="State.html#max_nesting">max_nesting</a> option instead,
+
+</li>
+<li><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.
+
+</li>
+<li><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.
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 134</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-ivar">@indent</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-ivar">@space</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-ivar">@space_before</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-ivar">@object_nl</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-ivar">@array_nl</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-ivar">@allow_nan</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-ivar">@ascii_only</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">configure</span> <span class="ruby-identifier">opts</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="allow-nan--method" class="method-detail ">
+ <a name="M000044"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">allow_nan?</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true if NaN, Infinity, and -Infinity should be considered as valid
+<a href="../../../JSON.html">JSON</a> and output.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="allow-nan--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 181</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allow_nan?</span>
+ <span class="ruby-ivar">@allow_nan</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="ascii-only--method" class="method-detail ">
+ <a name="M000045"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">ascii_only?</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="ascii-only--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 185</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ascii_only?</span>
+ <span class="ruby-ivar">@ascii_only</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="check-circular--method" class="method-detail ">
+ <a name="M000043"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">check_circular?</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns true, if circular data structures are checked, otherwise returns
+false.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="check-circular--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 175</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_circular?</span>
+ <span class="ruby-operator">!</span><span class="ruby-operator">!</span><span class="ruby-ivar">@max_nesting</span>.<span class="ruby-identifier">zero?</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="configure-method" class="method-detail ">
+ <a name="M000046"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">configure</span><span
+ class="method-args">(opts)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Configure this <a href="State.html">State</a> instance with the Hash
+<em>opts</em>, and return itself.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="configure-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 191</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure</span>(<span class="ruby-identifier">opts</span>)
+ <span class="ruby-ivar">@indent</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:indent</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">:indent</span>)
+ <span class="ruby-ivar">@space</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:space</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">:space</span>)
+ <span class="ruby-ivar">@space_before</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">: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-identifier">:space_before</span>)
+ <span class="ruby-ivar">@object_nl</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">: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-identifier">:object_nl</span>)
+ <span class="ruby-ivar">@array_nl</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">: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-identifier">:array_nl</span>)
+ <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-identifier">: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-identifier">:allow_nan</span>)
+ <span class="ruby-ivar">@ascii_only</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">: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-identifier">:ascii_only</span>)
+ <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-identifier">:max_nesting</span>) <span class="ruby-comment cmt"># defaults to 19</span>
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">19</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:max_nesting</span>]
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:max_nesting</span>]
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">0</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">self</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="generate-method" class="method-detail ">
+ <a name="M000048"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">generate</span><span
+ class="method-args">(obj)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-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 class="method-source-code"
+ id="generate-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 222</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>)
+ <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>)
+ <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><span class="ruby-identifier">m</span>
+ <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>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="to-h-method" class="method-detail ">
+ <a name="M000047"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_h</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Returns the configuration instance variables as a hash, that can be passed
+to the configure method.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="to-h-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/generator.rb, line 211</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
+ <span class="ruby-identifier">result</span> = {}
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">iv</span> <span class="ruby-keyword kw">in</span> <span class="ruby-node">%w[indent space space_before object_nl array_nl check_circular allow_nan max_nesting]</span>
+ <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>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/JSON/Pure/Parser.html b/doc/JSON/Pure/Parser.html
new file mode 100644
index 0000000..cb38492
--- /dev/null
+++ b/doc/JSON/Pure/Parser.html
@@ -0,0 +1,804 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: JSON::Pure::Parser</title>
+
+ <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="../../lib/json/pure/parser_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/pure/parser.rb">lib/json/pure/parser.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link">StringScanner</p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000055">::new</a></li>
+
+ <li><a href="#M000065">#parse</a></li>
+
+ <li><a href="#M000070">#parse_array</a></li>
+
+ <li><a href="#M000071">#parse_object</a></li>
+
+ <li><a href="#M000068">#parse_string</a></li>
+
+ <li><a href="#M000069">#parse_value</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="../../README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="../../images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="../../JSON.html">JSON</a></li>
+
+ <li><a href="../../JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="../../JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="../../JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="../../JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="../../JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="../../JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="../../JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="../../JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="../../JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="../../JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="../../JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="../../JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="../../JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="../../JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="../../JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="../../JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="../../JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="../../JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="../../JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="../../JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="../../JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="../../Class.html">Class</a></li>
+
+ <li><a href="../../Date.html">Date</a></li>
+
+ <li><a href="../../DateTime.html">DateTime</a></li>
+
+ <li><a href="../../Enumerable.html">Enumerable</a></li>
+
+ <li><a href="../../Exception.html">Exception</a></li>
+
+ <li><a href="../../Kernel.html">Kernel</a></li>
+
+ <li><a href="../../Object.html">Object</a></li>
+
+ <li><a href="../../Range.html">Range</a></li>
+
+ <li><a href="../../Regexp.html">Regexp</a></li>
+
+ <li><a href="../../Struct.html">Struct</a></li>
+
+ <li><a href="../../Symbol.html">Symbol</a></li>
+
+ <li><a href="../../Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">JSON::Pure::Parser</h1>
+
+ <div id="description">
+ <p>
+This class implements the <a href="../../JSON.html">JSON</a> parser that is
+used to parse a <a href="../../JSON.html">JSON</a> string into a Ruby data
+structure.
+</p>
+
+ </div>
+
+ <!-- Constants -->
+
+ <div id="constants-list" class="section">
+ <h3 class="section-header">Constants</h3>
+ <dl>
+
+ <dt><a name="STRING">STRING</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="INTEGER">INTEGER</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="FLOAT">FLOAT</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="NAN">NAN</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="INFINITY">INFINITY</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="MINUS_INFINITY">MINUS_INFINITY</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="OBJECT_OPEN">OBJECT_OPEN</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="OBJECT_CLOSE">OBJECT_CLOSE</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="ARRAY_OPEN">ARRAY_OPEN</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="ARRAY_CLOSE">ARRAY_CLOSE</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="PAIR_DELIMITER">PAIR_DELIMITER</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="COLLECTION_DELIMITER">COLLECTION_DELIMITER</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="TRUE">TRUE</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="FALSE">FALSE</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="NULL">NULL</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="IGNORE">IGNORE</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="UNPARSED">UNPARSED</a></dt>
+
+ <dd class="description missing-docs">(Not documented)</dd>
+
+
+ <dt><a name="UNESCAPE_MAP">UNESCAPE_MAP</a></dt>
+
+ <dd class="description"><p>
+Unescape characters in strings.
+</p></dd>
+
+
+ </dl>
+ </div>
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="new-method" class="method-detail ">
+ <a name="M000055"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">new</span><span
+ class="method-args">(source, opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Creates a new <a href="Parser.html">JSON::Pure::Parser</a> instance for the
+string <em>source</em>.
+</p>
+<p>
+It will be configured by the <em>opts</em> hash. <em>opts</em> can have the
+following keys:
+</p>
+<ul>
+<li><b>max_nesting</b>: The maximum depth of nesting allowed in the parsed data
+structures. Disable depth checking with :max_nesting => false|nil|0, it
+defaults to 19.
+
+</li>
+<li><b>allow_nan</b>: If set to true, allow NaN, Infinity and -Infinity in
+defiance of RFC 4627 to be parsed by the <a href="Parser.html">Parser</a>.
+This option defaults to false.
+
+</li>
+<li><b>create_additions</b>: If set to false, the <a
+href="Parser.html">Parser</a> doesn&#8217;t create additions even if a
+matchin class and create_id was found. This option defaults to true.
+
+</li>
+<li><b>object_class</b>: Defaults to Hash
+
+</li>
+<li><b>array_class</b>: Defaults to Array
+
+</li>
+</ul>
+
+
+
+ <div class="method-source-code"
+ id="new-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 68</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Encoding</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">encoding</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">ASCII_8BIT</span>
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">source</span>[<span class="ruby-value">0</span>, <span class="ruby-value">4</span>].<span class="ruby-identifier">bytes</span>.<span class="ruby-identifier">to_a</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_32BE</span>).<span class="ruby-identifier">encode!</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_16BE</span>).<span class="ruby-identifier">encode!</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_32LE</span>).<span class="ruby-identifier">encode!</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_16LE</span>).<span class="ruby-identifier">encode!</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">dup</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-identifier">source</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">source</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">ASCII_8BIT</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">source</span>
+ <span class="ruby-identifier">source</span> = <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-value str">'utf-8'</span>, <span class="ruby-value str">'utf-32be'</span>, <span class="ruby-identifier">b</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-value str">'utf-8'</span>, <span class="ruby-value str">'utf-16be'</span>, <span class="ruby-identifier">b</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-value str">'utf-8'</span>, <span class="ruby-value str">'utf-32le'</span>, <span class="ruby-identifier">b</span>)
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">4</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-value str">'utf-8'</span>, <span class="ruby-value str">'utf-16le'</span>, <span class="ruby-identifier">b</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">b</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">super</span> <span class="ruby-identifier">source</span>
+ <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-identifier">:max_nesting</span>) <span class="ruby-comment cmt"># defaults to 19</span>
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">19</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:max_nesting</span>]
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:max_nesting</span>]
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-ivar">@max_nesting</span> = <span class="ruby-value">0</span>
+ <span class="ruby-keyword kw">end</span>
+ <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-identifier">:allow_nan</span>]
+ <span class="ruby-identifier">ca</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-identifier">ca</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:create_additions</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">:create_additions</span>)
+ <span class="ruby-ivar">@create_id</span> = <span class="ruby-identifier">ca</span> <span class="ruby-value">? </span><span class="ruby-constant">JSON</span>.<span class="ruby-identifier">create_id</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-ivar">@object_class</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:object_class</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Hash</span>
+ <span class="ruby-ivar">@array_class</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:array_class</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Array</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="parse-method" class="method-detail ">
+ <a name="M000065"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Parses the current <a href="../../JSON.html">JSON</a> string
+<em>source</em> and returns the complete data structure as a result.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 123</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>
+ <span class="ruby-identifier">reset</span>
+ <span class="ruby-identifier">obj</span> = <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">eos?</span>
+ <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">OBJECT_OPEN</span>)
+ <span class="ruby-identifier">obj</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;source '#{peek(20)}' not in JSON!&quot;</span>
+ <span class="ruby-ivar">@current_nesting</span> = <span class="ruby-value">1</span>
+ <span class="ruby-identifier">obj</span> = <span class="ruby-identifier">parse_object</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">ARRAY_OPEN</span>)
+ <span class="ruby-identifier">obj</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;source '#{peek(20)}' not in JSON!&quot;</span>
+ <span class="ruby-ivar">@current_nesting</span> = <span class="ruby-value">1</span>
+ <span class="ruby-identifier">obj</span> = <span class="ruby-identifier">parse_array</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ ;
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;source '#{peek(20)}' not in JSON!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">obj</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-value str">&quot;source did not contain any JSON!&quot;</span>
+ <span class="ruby-identifier">obj</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="parse-array-method" class="method-detail ">
+ <a name="M000070"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse_array</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-array-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 224</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_array</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">NestingError</span>, <span class="ruby-value str">&quot;nesting of #@current_nesting is too deep&quot;</span> <span class="ruby-keyword kw">if</span>
+ <span class="ruby-ivar">@max_nesting</span>.<span class="ruby-identifier">nonzero?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@max_nesting</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@array_class</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">eos?</span>
+ <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> (<span class="ruby-identifier">value</span> = <span class="ruby-identifier">parse_value</span>) <span class="ruby-operator">!=</span> <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>
+ <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">COLLECTION_DELIMITER</span>)
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">match?</span>(<span class="ruby-constant">ARRAY_CLOSE</span>)
+ ;
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected ',' or ']' in array at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">ARRAY_CLOSE</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">delim</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected next element in array at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">break</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ ;
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;unexpected token in array at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="parse-object-method" class="method-detail ">
+ <a name="M000071"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse_object</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-object-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 256</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_object</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">NestingError</span>, <span class="ruby-value str">&quot;nesting of #@current_nesting is too deep&quot;</span> <span class="ruby-keyword kw">if</span>
+ <span class="ruby-ivar">@max_nesting</span>.<span class="ruby-identifier">nonzero?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@max_nesting</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@object_class</span>.<span class="ruby-identifier">new</span>
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">eos?</span>
+ <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> (<span class="ruby-identifier">string</span> = <span class="ruby-identifier">parse_string</span>) <span class="ruby-operator">!=</span> <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">PAIR_DELIMITER</span>)
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected ':' in object at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">value</span> = <span class="ruby-identifier">parse_value</span>).<span class="ruby-identifier">equal?</span> <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-identifier">result</span>[<span class="ruby-identifier">string</span>] = <span class="ruby-identifier">value</span>
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">false</span>
+ <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">COLLECTION_DELIMITER</span>)
+ <span class="ruby-identifier">delim</span> = <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">match?</span>(<span class="ruby-constant">OBJECT_CLOSE</span>)
+ ;
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected ',' or '}' in object at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected value in object at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">OBJECT_CLOSE</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">delim</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;expected next name, value pair in object at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@create_id</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">klassname</span> = <span class="ruby-identifier">result</span>[<span class="ruby-ivar">@create_id</span>]
+ <span class="ruby-identifier">klass</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">deep_const_get</span> <span class="ruby-identifier">klassname</span>
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">klass</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">json_creatable?</span>
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">result</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">break</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">skip</span>(<span class="ruby-constant">IGNORE</span>)
+ ;
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ParserError</span>, <span class="ruby-node">&quot;unexpected token in object at '#{peek(20)}'!&quot;</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="parse-string-method" class="method-detail ">
+ <a name="M000068"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse_string</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-string-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 162</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_string</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">STRING</span>)
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">empty?</span>
+ <span class="ruby-identifier">string</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">%r((?:\\[\\bfnrt&quot;/]|(?:\\u(?:[A-Fa-f\d]{4}))+|\\[\x20-\xff]))n</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">u</span> = <span class="ruby-constant">UNESCAPE_MAP</span>[<span class="ruby-identifier">$&amp;</span>[<span class="ruby-value">1</span>]]
+ <span class="ruby-identifier">u</span>
+ <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># \uXXXX</span>
+ <span class="ruby-identifier">bytes</span> = <span class="ruby-value str">''</span>
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">6</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?\\</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">6</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?u</span>
+ <span class="ruby-identifier">bytes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">6</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span>, <span class="ruby-value">2</span>].<span class="ruby-identifier">to_i</span>(<span class="ruby-value">16</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>[<span class="ruby-value">6</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">4</span>, <span class="ruby-value">2</span>].<span class="ruby-identifier">to_i</span>(<span class="ruby-value">16</span>)
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF16toUTF8</span>.<span class="ruby-identifier">iconv</span>(<span class="ruby-identifier">bytes</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:force_encoding</span>)
+ <span class="ruby-identifier">string</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">UTF_8</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">string</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Iconv</span><span class="ruby-operator">::</span><span class="ruby-constant">Failure</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">GeneratorError</span>, <span class="ruby-node">&quot;Caught #{e.class}: #{e}&quot;</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="parse-value-method" class="method-detail ">
+ <a name="M000069"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">parse_value</span><span
+ class="method-args">()</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="parse-value-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/pure/parser.rb, line 189</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_value</span>
+ <span class="ruby-keyword kw">case</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">FLOAT</span>)
+ <span class="ruby-constant">Float</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span>])
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">INTEGER</span>)
+ <span class="ruby-constant">Integer</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span>])
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">TRUE</span>)
+ <span class="ruby-keyword kw">true</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">FALSE</span>)
+ <span class="ruby-keyword kw">false</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">NULL</span>)
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">when</span> (<span class="ruby-identifier">string</span> = <span class="ruby-identifier">parse_string</span>) <span class="ruby-operator">!=</span> <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-identifier">string</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">ARRAY_OPEN</span>)
+ <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">ary</span> = <span class="ruby-identifier">parse_array</span>
+ <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">ary</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">OBJECT_OPEN</span>)
+ <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">obj</span> = <span class="ruby-identifier">parse_object</span>
+ <span class="ruby-ivar">@current_nesting</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+ <span class="ruby-identifier">obj</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-ivar">@allow_nan</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">NAN</span>)
+ <span class="ruby-constant">NaN</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-ivar">@allow_nan</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">INFINITY</span>)
+ <span class="ruby-constant">Infinity</span>
+ <span class="ruby-keyword kw">when</span> <span class="ruby-ivar">@allow_nan</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scan</span>(<span class="ruby-constant">MINUS_INFINITY</span>)
+ <span class="ruby-constant">MinusInfinity</span>
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">UNPARSED</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Kernel.html b/doc/Kernel.html
new file mode 100644
index 0000000..c899b08
--- /dev/null
+++ b/doc/Kernel.html
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Module: Kernel</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="module">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/common_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/common.rb">lib/json/common.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000038">#JSON</a></li>
+
+ <li><a href="#M000036">#j</a></li>
+
+ <li><a href="#M000037">#jj</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="module">Kernel</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="private-instance-method-details" class="method-section section">
+ <h3 class="section-header">Private Instance Methods</h3>
+
+
+ <div id="--method" class="method-detail ">
+ <a name="M000038"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">JSON</span><span
+ class="method-args">(object, opts = {})</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+If <em>object</em> is string-like parse the string and return the parsed
+result as a Ruby data structure. Otherwise generate a <a
+href="Kernel.html#M000038">JSON</a> text from the Ruby data structure
+object and return it.
+</p>
+<p>
+The <em>opts</em> argument is passed through to generate/parse
+respectively, see generate and parse for their documentation.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="--source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 355</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">JSON</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">opts</span> = {})
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:to_str</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">object</span>.<span class="ruby-identifier">to_str</span>, <span class="ruby-identifier">opts</span>)
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">generate</span>(<span class="ruby-identifier">object</span>, <span class="ruby-identifier">opts</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="j-method" class="method-detail ">
+ <a name="M000036"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">j</span><span
+ class="method-args">(*objs)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Outputs <em>objs</em> to STDOUT as <a href="Kernel.html#M000038">JSON</a>
+strings in the shortest form, that is in one line.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="j-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 333</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">j</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">objs</span>)
+ <span class="ruby-identifier">objs</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>
+ <span class="ruby-identifier">puts</span> <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-identifier">generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">:allow_nan</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div id="jj-method" class="method-detail ">
+ <a name="M000037"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">jj</span><span
+ class="method-args">(*objs)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Ouputs <em>objs</em> to STDOUT as <a href="Kernel.html#M000038">JSON</a>
+strings in a pretty format, with indentation and over many lines.
+</p>
+
+
+
+ <div class="method-source-code"
+ id="jj-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/common.rb, line 342</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">jj</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">objs</span>)
+ <span class="ruby-identifier">objs</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>
+ <span class="ruby-identifier">puts</span> <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-identifier">pretty_generate</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">:allow_nan</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">nil</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Object.html b/doc/Object.html
new file mode 100644
index 0000000..1d810ea
--- /dev/null
+++ b/doc/Object.html
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Object</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/rails_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/rails.rb">lib/json/add/rails.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000000">::json_create</a></li>
+
+ <li><a href="#M000001">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Object</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000000"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/rails.rb, line 10</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">obj</span> = <span class="ruby-identifier">new</span>
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">object</span>
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'json_class'</span>
+ <span class="ruby-identifier">instance_variable_set</span> <span class="ruby-node">&quot;@#{key}&quot;</span>, <span class="ruby-identifier">value</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">obj</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000001"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*a)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/rails.rb, line 19</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-identifier">result</span> = {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
+ }
+ <span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-identifier">result</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">r</span>[<span class="ruby-identifier">name</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]] = <span class="ruby-identifier">instance_variable_get</span> <span class="ruby-identifier">name</span>
+ <span class="ruby-identifier">r</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/README.html b/doc/README.html
new file mode 100644
index 0000000..bffab06
--- /dev/null
+++ b/doc/README.html
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: README [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file">
+ <div id="metadata">
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h2>Description</h2>
+<p>
+This is a implementation of the <a href="JSON.html">JSON</a> specification
+according to RFC 4627 (<a
+href="http://www.ietf.org/rfc/rfc4627.txt">www.ietf.org/rfc/rfc4627.txt</a>).
+Starting from version 1.0.0 on there will be two variants available:
+</p>
+<ul>
+<li>A pure ruby variant, that relies on the iconv and the stringscan
+extensions, which are both part of the ruby standard library.
+
+</li>
+<li>The quite a bit faster C extension variant, which is in parts implemented
+in C and comes with its own unicode conversion functions and a parser
+generated by the ragel state machine compiler (<a
+href="http://www.cs.queensu.ca/~thurston/ragel">www.cs.queensu.ca/~thurston/ragel</a>).
+
+</li>
+</ul>
+<p>
+Both variants of the <a href="JSON.html">JSON</a> generator escape all
+non-ASCII and control characters with uXXXX escape sequences, and support
+UTF-16 surrogate pairs in order to be able to generate the whole range of
+unicode code points. This means that generated <a href="JSON.html">JSON</a>
+document is encoded as UTF-8 (because ASCII is a subset of UTF-8) and at
+the same time avoids decoding problems for receiving endpoints, that
+don&#8217;t expect UTF-8 encoded texts. On the negative side this may lead
+to a bit longer strings than necessarry.
+</p>
+<p>
+All strings, that are to be encoded as <a href="JSON.html">JSON</a>
+strings, should be UTF-8 byte sequences on the Ruby side. To encode raw
+binary strings, that aren&#8217;t UTF-8 encoded, please use the
+to_json_raw_object method of String (which produces an object, that
+contains a byte array) and decode the result on the receiving endpoint.
+</p>
+<p>
+The <a href="JSON.html">JSON</a> parsers can parse UTF-8, UTF-16BE,
+UTF-16LE, UTF-32BE, and UTF-32LE <a href="JSON.html">JSON</a> documents
+under Ruby 1.8. Under Ruby 1.9 they take advantage of Ruby&#8217;s M17n
+features and can parse all documents which have the correct String#encoding
+set. If a document string has ASCII-8BIT as an encoding the parser attempts
+to figure out which of the UTF encodings from above it is and trys to parse
+it.
+</p>
+<h2>Installation</h2>
+<p>
+It&#8217;s recommended to use the extension variant of <a
+href="JSON.html">JSON</a>, because it&#8217;s faster than the pure ruby
+variant. If you cannot build it on your system, you can settle for the
+latter.
+</p>
+<p>
+Just type into the command line as root:
+</p>
+<pre>
+ # rake install
+</pre>
+<p>
+The above command will build the extensions and install them on your
+system.
+</p>
+<pre>
+ # rake install_pure
+</pre>
+<p>
+or
+</p>
+<pre>
+ # ruby install.rb
+</pre>
+<p>
+will just install the pure ruby implementation of <a
+href="JSON.html">JSON</a>.
+</p>
+<p>
+If you use Rubygems you can type
+</p>
+<pre>
+ # gem install json
+</pre>
+<p>
+instead, to install the newest <a href="JSON.html">JSON</a> version.
+</p>
+<p>
+There is also a pure ruby json only variant of the gem, that can be
+installed with:
+</p>
+<pre>
+ # gem install json_pure
+</pre>
+<h2>Compiling the extensions yourself</h2>
+<p>
+If you want to build the extensions yourself you need rake:
+</p>
+<pre>
+ You can get it from rubyforge:
+ http://rubyforge.org/projects/rake
+
+ or just type
+
+ # gem install rake
+
+ for the installation via rubygems.
+</pre>
+<p>
+If you want to create the parser.c file from its parser.rl file or draw
+nice graphviz images of the state machines, you need ragel from: <a
+href="http://www.cs.queensu.ca/~thurston/ragel">www.cs.queensu.ca/~thurston/ragel</a>
+</p>
+<h2>Usage</h2>
+<p>
+To use <a href="JSON.html">JSON</a> you can
+</p>
+<pre>
+ require 'json'
+</pre>
+<p>
+to load the installed variant (either the extension &#8216;json&#8217; or
+the pure variant &#8216;json_pure&#8217;). If you have installed the
+extension variant, you can pick either the extension variant or the pure
+variant by typing
+</p>
+<pre>
+ require 'json/ext'
+</pre>
+<p>
+or
+</p>
+<pre>
+ require 'json/pure'
+</pre>
+<p>
+Now you can parse a <a href="JSON.html">JSON</a> document into a ruby data
+structure by calling
+</p>
+<pre>
+ JSON.parse(document)
+</pre>
+<p>
+If you want to generate a <a href="JSON.html">JSON</a> document from a ruby
+data structure call
+</p>
+<pre>
+ JSON.generate(data)
+</pre>
+<p>
+You can also use the pretty_generate method (which formats the output more
+verbosely and nicely) or fast_generate (which doesn&#8217;t do any of the
+security checks generate performs, e. g. nesting deepness checks).
+</p>
+<p>
+To create a valid <a href="JSON.html">JSON</a> document you have to make
+sure, that the output is embedded in either a <a href="JSON.html">JSON</a>
+array [] or a <a href="JSON.html">JSON</a> object {}. The easiest way to do
+this, is by putting your values in a Ruby Array or Hash instance.
+</p>
+<p>
+There are also the <a href="JSON.html">JSON</a> and JSON[] methods which
+use parse on a String or generate a <a href="JSON.html">JSON</a> document
+from an array or hash:
+</p>
+<pre>
+ document = JSON 'test' =&gt; 23 # =&gt; &quot;{\&quot;test\&quot;:23}&quot;
+ document = JSON['test'] =&gt; 23 # =&gt; &quot;{\&quot;test\&quot;:23}&quot;
+</pre>
+<p>
+and
+</p>
+<pre>
+ data = JSON '{&quot;test&quot;:23}' # =&gt; {&quot;test&quot;=&gt;23}
+ data = JSON['{&quot;test&quot;:23}'] # =&gt; {&quot;test&quot;=&gt;23}
+</pre>
+<p>
+You can choose to load a set of common additions to ruby core&#8217;s
+objects if you
+</p>
+<pre>
+ require 'json/add/core'
+</pre>
+<p>
+After requiring this you can, e. g., serialise/deserialise Ruby ranges:
+</p>
+<pre>
+ JSON JSON(1..10) # =&gt; 1..10
+</pre>
+<p>
+To find out how to add <a href="JSON.html">JSON</a> support to other or
+your own classes, read the section &#8220;More Examples&#8221; below.
+</p>
+<p>
+To get the best compatibility to rails&#8217; <a href="JSON.html">JSON</a>
+implementation, you can
+</p>
+<pre>
+ require 'json/add/rails'
+</pre>
+<p>
+Both of the additions attempt to require &#8216;json&#8217; (like above)
+first, if it has not been required yet.
+</p>
+<h2>More Examples</h2>
+<p>
+To create a <a href="JSON.html">JSON</a> document from a ruby data
+structure, you can call <a href="JSON.html#M000024">JSON.generate</a> like
+that:
+</p>
+<pre>
+ json = JSON.generate [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+ # =&gt; &quot;[1,2,{\&quot;a\&quot;:3.141},false,true,null,\&quot;4..10\&quot;]&quot;
+</pre>
+<p>
+To get back a ruby data structure from a <a href="JSON.html">JSON</a>
+document, you have to call <a href="JSON.html#M000022">JSON.parse</a> on
+it:
+</p>
+<pre>
+ JSON.parse json
+ # =&gt; [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, &quot;4..10&quot;]
+</pre>
+<p>
+Note, that the range from the original data structure is a simple string
+now. The reason for this is, that <a href="JSON.html">JSON</a>
+doesn&#8217;t support ranges or arbitrary classes. In this case the json
+library falls back to call <a
+href="Object.html#M000001">Object#to_json</a>, which is the same as
+to_s.to_json.
+</p>
+<p>
+It&#8217;s possible to add <a href="JSON.html">JSON</a> support
+serialization to arbitrary classes by simply implementing a more
+specialized version of the to_json method, that should return a <a
+href="JSON.html">JSON</a> object (a hash converted to <a
+href="JSON.html">JSON</a> with to_json) like this (don&#8217;t forget the
+*a for all the arguments):
+</p>
+<pre>
+ class Range
+ def to_json(*a)
+ {
+ 'json_class' =&gt; self.class.name, # = 'Range'
+ 'data' =&gt; [ first, last, exclude_end? ]
+ }.to_json(*a)
+ end
+ end
+</pre>
+<p>
+The hash key &#8216;json_class&#8217; is the class, that will be asked to
+deserialise the <a href="JSON.html">JSON</a> representation later. In this
+case it&#8217;s &#8216;Range&#8217;, but any namespace of the form
+&#8216;A::B&#8217; or &#8217;::A::B&#8217; will do. All other keys are
+arbitrary and can be used to store the necessary data to configure the
+object to be deserialised.
+</p>
+<p>
+If a the key &#8216;json_class&#8217; is found in a <a
+href="JSON.html">JSON</a> object, the <a href="JSON.html">JSON</a> parser
+checks if the given class responds to the json_create class method. If so,
+it is called with the <a href="JSON.html">JSON</a> object converted to a
+Ruby hash. So a range can be deserialised by implementing <a
+href="Range.html#M000010">Range.json_create</a> like this:
+</p>
+<pre>
+ class Range
+ def self.json_create(o)
+ new(*o['data'])
+ end
+ end
+</pre>
+<p>
+Now it possible to serialise/deserialise ranges as well:
+</p>
+<pre>
+ json = JSON.generate [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+ # =&gt; &quot;[1,2,{\&quot;a\&quot;:3.141},false,true,null,{\&quot;json_class\&quot;:\&quot;Range\&quot;,\&quot;data\&quot;:[4,10,false]}]&quot;
+ JSON.parse json
+ # =&gt; [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+</pre>
+<p>
+<a href="JSON.html#M000024">JSON.generate</a> always creates the shortest
+possible string representation of a ruby data structure in one line. This
+is good for data storage or network protocols, but not so good for humans
+to read. Fortunately there&#8217;s also <a
+href="JSON.html#M000026">JSON.pretty_generate</a> (or <a
+href="JSON.html#M000026">JSON.pretty_generate</a>) that creates a more
+readable output:
+</p>
+<pre>
+ puts JSON.pretty_generate([1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10])
+ [
+ 1,
+ 2,
+ {
+ &quot;a&quot;: 3.141
+ },
+ false,
+ true,
+ null,
+ {
+ &quot;json_class&quot;: &quot;Range&quot;,
+ &quot;data&quot;: [
+ 4,
+ 10,
+ false
+ ]
+ }
+ ]
+</pre>
+<p>
+There are also the methods <a href="Kernel.html#M000036">Kernel#j</a> for
+generate, and <a href="Kernel.html#M000037">Kernel#jj</a> for
+pretty_generate output to the console, that work analogous to Core
+Ruby&#8217;s p and the pp library&#8217;s pp methods.
+</p>
+<p>
+The script tools/server.rb contains a small example if you want to test,
+how receiving a <a href="JSON.html">JSON</a> object from a webrick server
+in your browser with the javasript prototype library (<a
+href="http://www.prototypejs.org">www.prototypejs.org</a>) works.
+</p>
+<h2>Speed Comparisons</h2>
+<p>
+I have created some benchmark results (see the benchmarks/data-p4-3Ghz
+subdir of the package) for the JSON-parser to estimate the speed up in the
+C extension:
+</p>
+<pre>
+ Comparing times (call_time_mean):
+ 1 ParserBenchmarkExt#parser 900 repeats:
+ 553.922304770 ( real) -&gt; 21.500x
+ 0.001805307
+ 2 ParserBenchmarkYAML#parser 1000 repeats:
+ 224.513358139 ( real) -&gt; 8.714x
+ 0.004454078
+ 3 ParserBenchmarkPure#parser 1000 repeats:
+ 26.755020642 ( real) -&gt; 1.038x
+ 0.037376163
+ 4 ParserBenchmarkRails#parser 1000 repeats:
+ 25.763381731 ( real) -&gt; 1.000x
+ 0.038814780
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+In the table above 1 is <a
+href="JSON/Ext/Parser.html">JSON::Ext::Parser</a>, 2 is YAML.load with YAML
+compatbile <a href="JSON.html">JSON</a> document, 3 is is <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a>, and 4 is
+ActiveSupport::JSON.decode. The ActiveSupport JSON-decoder converts the
+input first to YAML and then uses the YAML-parser, the conversion seems to
+slow it down so much that it is only as fast as the <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a>!
+</p>
+<p>
+If you look at the benchmark data you can see that this is mostly caused by
+the frequent high outliers - the median of the Rails-parser runs is still
+overall smaller than the median of the <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a> runs:
+</p>
+<pre>
+ Comparing times (call_time_median):
+ 1 ParserBenchmarkExt#parser 900 repeats:
+ 800.592479481 ( real) -&gt; 26.936x
+ 0.001249075
+ 2 ParserBenchmarkYAML#parser 1000 repeats:
+ 271.002390644 ( real) -&gt; 9.118x
+ 0.003690004
+ 3 ParserBenchmarkRails#parser 1000 repeats:
+ 30.227910865 ( real) -&gt; 1.017x
+ 0.033082008
+ 4 ParserBenchmarkPure#parser 1000 repeats:
+ 29.722384421 ( real) -&gt; 1.000x
+ 0.033644676
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+I have benchmarked the JSON-Generator as well. This generated a few more
+values, because there are different modes that also influence the achieved
+speed:
+</p>
+<pre>
+ Comparing times (call_time_mean):
+ 1 GeneratorBenchmarkExt#generator_fast 1000 repeats:
+ 547.354332608 ( real) -&gt; 15.090x
+ 0.001826970
+ 2 GeneratorBenchmarkExt#generator_safe 1000 repeats:
+ 443.968212317 ( real) -&gt; 12.240x
+ 0.002252414
+ 3 GeneratorBenchmarkExt#generator_pretty 900 repeats:
+ 375.104545883 ( real) -&gt; 10.341x
+ 0.002665923
+ 4 GeneratorBenchmarkPure#generator_fast 1000 repeats:
+ 49.978706968 ( real) -&gt; 1.378x
+ 0.020008521
+ 5 GeneratorBenchmarkRails#generator 1000 repeats:
+ 38.531868759 ( real) -&gt; 1.062x
+ 0.025952543
+ 6 GeneratorBenchmarkPure#generator_safe 1000 repeats:
+ 36.927649925 ( real) -&gt; 1.018x 7 (&gt;=3859)
+ 0.027079979
+ 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
+ 36.272134441 ( real) -&gt; 1.000x 6 (&gt;=3859)
+ 0.027569373
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+In the table above 1-3 are <a
+href="JSON/Ext/Generator.html">JSON::Ext::Generator</a> methods. 4, 6, and
+7 are <a href="JSON/Pure/Generator.html">JSON::Pure::Generator</a> methods
+and 5 is the Rails <a href="JSON.html">JSON</a> generator. It is now a bit
+faster than the generator_safe and generator_pretty methods of the pure
+variant but slower than the others.
+</p>
+<p>
+To achieve the fastest <a href="JSON.html">JSON</a> document output, you
+can use the fast_generate method. Beware, that this will disable the
+checking for circular Ruby data structures, which may cause <a
+href="JSON.html">JSON</a> to go into an infinite loop.
+</p>
+<p>
+Here are the median comparisons for completeness&#8217; sake:
+</p>
+<pre>
+ Comparing times (call_time_median):
+ 1 GeneratorBenchmarkExt#generator_fast 1000 repeats:
+ 708.258020939 ( real) -&gt; 16.547x
+ 0.001411915
+ 2 GeneratorBenchmarkExt#generator_safe 1000 repeats:
+ 569.105020353 ( real) -&gt; 13.296x
+ 0.001757145
+ 3 GeneratorBenchmarkExt#generator_pretty 900 repeats:
+ 482.825371244 ( real) -&gt; 11.280x
+ 0.002071142
+ 4 GeneratorBenchmarkPure#generator_fast 1000 repeats:
+ 62.717626652 ( real) -&gt; 1.465x
+ 0.015944481
+ 5 GeneratorBenchmarkRails#generator 1000 repeats:
+ 43.965681162 ( real) -&gt; 1.027x
+ 0.022745013
+ 6 GeneratorBenchmarkPure#generator_safe 1000 repeats:
+ 43.929073409 ( real) -&gt; 1.026x 7 (&gt;=3859)
+ 0.022763968
+ 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
+ 42.802514491 ( real) -&gt; 1.000x 6 (&gt;=3859)
+ 0.023363113
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<h2>Author</h2>
+<p>
+Florian Frank <<a href="mailto:flori@ping.de">flori@ping.de</a>>
+</p>
+<h2>License</h2>
+<p>
+Ruby License, see the COPYING file included in the source distribution. The
+Ruby License includes the GNU General Public License (GPL), Version 2, so
+see the file GPL as well.
+</p>
+<h2>Download</h2>
+<p>
+The latest version of this library can be downloaded at
+</p>
+<ul>
+<li><a
+href="http://rubyforge.org/frs?group_id=953">rubyforge.org/frs?group_id=953</a>
+
+</li>
+</ul>
+<p>
+Online Documentation should be located at
+</p>
+<ul>
+<li><a href="http://json.rubyforge.org">json.rubyforge.org</a>
+
+</li>
+</ul>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+</body>
+</html>
+
diff --git a/doc/Range.html b/doc/Range.html
new file mode 100644
index 0000000..4688b96
--- /dev/null
+++ b/doc/Range.html
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Range</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000010">::json_create</a></li>
+
+ <li><a href="#M000011">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Range</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000010"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 80</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">object</span>[<span class="ruby-value str">'a'</span>])
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000011"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 84</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'a'</span> =<span class="ruby-operator">&gt;</span> [ <span class="ruby-identifier">first</span>, <span class="ruby-identifier">last</span>, <span class="ruby-identifier">exclude_end?</span> ]
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Regexp.html b/doc/Regexp.html
new file mode 100644
index 0000000..ee620a4
--- /dev/null
+++ b/doc/Regexp.html
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Regexp</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000016">::json_create</a></li>
+
+ <li><a href="#M000017">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Regexp</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000016"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 124</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">object</span>[<span class="ruby-value str">'s'</span>], <span class="ruby-identifier">object</span>[<span class="ruby-value str">'o'</span>])
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000017"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 128</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'o'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>,
+ <span class="ruby-value str">'s'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">source</span>,
+ }.<span class="ruby-identifier">to_json</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Struct.html b/doc/Struct.html
new file mode 100644
index 0000000..2409198
--- /dev/null
+++ b/doc/Struct.html
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Struct</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000012">::json_create</a></li>
+
+ <li><a href="#M000013">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Struct</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000012"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 93</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">object</span>[<span class="ruby-value str">'v'</span>])
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000013"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 97</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-identifier">klass</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
+ <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-constant">JSONError</span>, <span class="ruby-value str">&quot;Only named structs are supported!&quot;</span>
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">klass</span>,
+ <span class="ruby-value str">'v'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">values</span>,
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Symbol.html b/doc/Symbol.html
new file mode 100644
index 0000000..43b415e
--- /dev/null
+++ b/doc/Symbol.html
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Symbol</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/rails_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/rails.rb">lib/json/add/rails.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000002">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Symbol</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000002"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*a)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/rails.rb, line 32</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/Time.html b/doc/Time.html
new file mode 100644
index 0000000..d22f1bc
--- /dev/null
+++ b/doc/Time.html
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>Class: Time</title>
+
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+ <script src="./js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="./js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+ <div id="metadata">
+ <div id="file-metadata">
+ <div id="file-list-section" class="section">
+ <h3 class="section-header">In Files</h3>
+ <div class="section-body">
+ <ul>
+
+ <li><a href="./lib/json/add/core_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+ class="thickbox" title="lib/json/add/core.rb">lib/json/add/core.rb</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ <div id="class-metadata">
+
+ <!-- Parent Class -->
+
+ <div id="parent-class-section" class="section">
+ <h3 class="section-header">Parent</h3>
+
+ <p class="link"><a href="Object.html">Object</a></p>
+
+ </div>
+
+
+ <!-- Namespace Contents -->
+
+
+ <!-- Method Quickref -->
+
+ <div id="method-list-section" class="section">
+ <h3 class="section-header">Methods</h3>
+ <ul class="link-list">
+
+ <li><a href="#M000004">::json_create</a></li>
+
+ <li><a href="#M000005">#to_json</a></li>
+
+ </ul>
+ </div>
+
+
+ <!-- Included Modules -->
+
+ </div>
+
+ <div id="project-metadata">
+
+
+ <div id="fileindex-section" class="section project-section">
+ <h3 class="section-header">Files</h3>
+ <ul>
+
+ <li class="file"><a href="./README.html">README</a></li>
+
+ </ul>
+ </div>
+
+
+ <div id="classindex-section" class="section project-section">
+ <h3 class="section-header">Class Index
+ <span class="search-toggle"><img src="./images/find.png"
+ height="16" width="16" alt="[+]"
+ title="show/hide quicksearch" /></span></h3>
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+ <fieldset>
+ <legend>Quicksearch</legend>
+ <input type="text" name="quicksearch" value=""
+ class="quicksearch-field" />
+ </fieldset>
+ </form>
+
+ <ul class="link-list">
+
+ <li><a href="./JSON.html">JSON</a></li>
+
+ <li><a href="./JSON/Editor.html">JSON::Editor</a></li>
+
+ <li><a href="./JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li><a href="./JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li><a href="./JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li><a href="./JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="./JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="./JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li><a href="./JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="./JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="./JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="./JSON/Ext.html">JSON::Ext</a></li>
+
+ <li><a href="./JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li><a href="./JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li><a href="./JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li><a href="./JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li><a href="./JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li><a href="./JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li><a href="./JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li><a href="./JSON/Pure.html">JSON::Pure</a></li>
+
+ <li><a href="./JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="./JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="./JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li><a href="./JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li><a href="./Class.html">Class</a></li>
+
+ <li><a href="./Date.html">Date</a></li>
+
+ <li><a href="./DateTime.html">DateTime</a></li>
+
+ <li><a href="./Enumerable.html">Enumerable</a></li>
+
+ <li><a href="./Exception.html">Exception</a></li>
+
+ <li><a href="./Kernel.html">Kernel</a></li>
+
+ <li><a href="./Object.html">Object</a></li>
+
+ <li><a href="./Range.html">Range</a></li>
+
+ <li><a href="./Regexp.html">Regexp</a></li>
+
+ <li><a href="./Struct.html">Struct</a></li>
+
+ <li><a href="./Symbol.html">Symbol</a></li>
+
+ <li><a href="./Time.html">Time</a></li>
+
+ </ul>
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+ </div>
+
+
+ </div>
+ </div>
+
+ <div id="documentation">
+ <h1 class="class">Time</h1>
+
+ <div id="description">
+
+ </div>
+
+ <!-- Constants -->
+
+
+ <!-- Attributes -->
+
+
+ <!-- Methods -->
+
+ <div id="public-class-method-details" class="method-section section">
+ <h3 class="section-header">Public Class Methods</h3>
+
+
+ <div id="json-create-method" class="method-detail ">
+ <a name="M000004"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">json_create</span><span
+ class="method-args">(object)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="json-create-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 11</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">json_create</span>(<span class="ruby-identifier">object</span>)
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">usec</span> = <span class="ruby-identifier">object</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'u'</span>) <span class="ruby-comment cmt"># used to be tv_usec -&gt; tv_nsec</span>
+ <span class="ruby-identifier">object</span>[<span class="ruby-value str">'n'</span>] = <span class="ruby-identifier">usec</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:tv_nsec</span>)
+ <span class="ruby-identifier">at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">object</span>.<span class="ruby-identifier">values_at</span>(<span class="ruby-value str">'s'</span>, <span class="ruby-value str">'n'</span>))
+ <span class="ruby-keyword kw">else</span>
+ <span class="ruby-identifier">at</span>(<span class="ruby-identifier">object</span>[<span class="ruby-value str">'s'</span>], <span class="ruby-identifier">object</span>[<span class="ruby-value str">'n'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">1000</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+ <div id="public-instance-method-details" class="method-section section">
+ <h3 class="section-header">Public Instance Methods</h3>
+
+
+ <div id="to-json-method" class="method-detail ">
+ <a name="M000005"></a>
+
+ <div class="method-heading">
+
+ <span class="method-name">to_json</span><span
+ class="method-args">(*args)</span>
+ <span class="method-click-advice">click to toggle source</span>
+
+ </div>
+
+ <div class="method-description">
+
+ <p class="missing-docs">(Not documented)</p>
+
+
+
+ <div class="method-source-code"
+ id="to-json-source">
+<pre>
+<span class="ruby-comment cmt"># File lib/json/add/core.rb, line 22</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ {
+ <span class="ruby-value str">'json_class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>,
+ <span class="ruby-value str">'s'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">tv_sec</span>,
+ <span class="ruby-value str">'n'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:tv_nsec</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tv_nsec</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">tv_usec</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>
+ }.<span class="ruby-identifier">to_json</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+ <span class="ruby-keyword kw">end</span></pre>
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ </div>
+
+
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
+
+ <p>Disabled; run with --debug to generate this.</p>
+
+ </div>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+
+</body>
+</html>
+
diff --git a/doc/created.rid b/doc/created.rid
new file mode 100644
index 0000000..f43ad85
--- /dev/null
+++ b/doc/created.rid
@@ -0,0 +1 @@
+Sun, 08 Nov 2009 02:24:39 +0100
diff --git a/doc/ext/json/ext/generator_c.html b/doc/ext/json/ext/generator_c.html
new file mode 100644
index 0000000..696aa57
--- /dev/null
+++ b/doc/ext/json/ext/generator_c.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: generator.c [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/ext/json/ext/parser_c.html b/doc/ext/json/ext/parser_c.html
new file mode 100644
index 0000000..0fc880d
--- /dev/null
+++ b/doc/ext/json/ext/parser_c.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: parser.c [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/images/brick.png b/doc/images/brick.png
new file mode 100755
index 0000000..7851cf3
--- /dev/null
+++ b/doc/images/brick.png
Binary files differ
diff --git a/doc/images/brick_link.png b/doc/images/brick_link.png
new file mode 100755
index 0000000..9ebf013
--- /dev/null
+++ b/doc/images/brick_link.png
Binary files differ
diff --git a/doc/images/bug.png b/doc/images/bug.png
new file mode 100644
index 0000000..2d5fb90
--- /dev/null
+++ b/doc/images/bug.png
Binary files differ
diff --git a/doc/images/bullet_black.png b/doc/images/bullet_black.png
new file mode 100755
index 0000000..5761970
--- /dev/null
+++ b/doc/images/bullet_black.png
Binary files differ
diff --git a/doc/images/bullet_toggle_minus.png b/doc/images/bullet_toggle_minus.png
new file mode 100755
index 0000000..b47ce55
--- /dev/null
+++ b/doc/images/bullet_toggle_minus.png
Binary files differ
diff --git a/doc/images/bullet_toggle_plus.png b/doc/images/bullet_toggle_plus.png
new file mode 100755
index 0000000..9ab4a89
--- /dev/null
+++ b/doc/images/bullet_toggle_plus.png
Binary files differ
diff --git a/doc/images/date.png b/doc/images/date.png
new file mode 100755
index 0000000..783c833
--- /dev/null
+++ b/doc/images/date.png
Binary files differ
diff --git a/doc/images/find.png b/doc/images/find.png
new file mode 100755
index 0000000..1547479
--- /dev/null
+++ b/doc/images/find.png
Binary files differ
diff --git a/doc/images/loadingAnimation.gif b/doc/images/loadingAnimation.gif
new file mode 100644
index 0000000..82290f4
--- /dev/null
+++ b/doc/images/loadingAnimation.gif
Binary files differ
diff --git a/doc/images/macFFBgHack.png b/doc/images/macFFBgHack.png
new file mode 100644
index 0000000..c6473b3
--- /dev/null
+++ b/doc/images/macFFBgHack.png
Binary files differ
diff --git a/doc/images/package.png b/doc/images/package.png
new file mode 100755
index 0000000..da3c2a2
--- /dev/null
+++ b/doc/images/package.png
Binary files differ
diff --git a/doc/images/page_green.png b/doc/images/page_green.png
new file mode 100755
index 0000000..de8e003
--- /dev/null
+++ b/doc/images/page_green.png
Binary files differ
diff --git a/doc/images/page_white_text.png b/doc/images/page_white_text.png
new file mode 100755
index 0000000..813f712
--- /dev/null
+++ b/doc/images/page_white_text.png
Binary files differ
diff --git a/doc/images/page_white_width.png b/doc/images/page_white_width.png
new file mode 100755
index 0000000..1eb8809
--- /dev/null
+++ b/doc/images/page_white_width.png
Binary files differ
diff --git a/doc/images/plugin.png b/doc/images/plugin.png
new file mode 100755
index 0000000..6187b15
--- /dev/null
+++ b/doc/images/plugin.png
Binary files differ
diff --git a/doc/images/ruby.png b/doc/images/ruby.png
new file mode 100755
index 0000000..f763a16
--- /dev/null
+++ b/doc/images/ruby.png
Binary files differ
diff --git a/doc/images/tag_green.png b/doc/images/tag_green.png
new file mode 100755
index 0000000..83ec984
--- /dev/null
+++ b/doc/images/tag_green.png
Binary files differ
diff --git a/doc/images/wrench.png b/doc/images/wrench.png
new file mode 100755
index 0000000..5c8213f
--- /dev/null
+++ b/doc/images/wrench.png
Binary files differ
diff --git a/doc/images/wrench_orange.png b/doc/images/wrench_orange.png
new file mode 100755
index 0000000..565a933
--- /dev/null
+++ b/doc/images/wrench_orange.png
Binary files differ
diff --git a/doc/images/zoom.png b/doc/images/zoom.png
new file mode 100755
index 0000000..908612e
--- /dev/null
+++ b/doc/images/zoom.png
Binary files differ
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..e51795d
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,1012 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>JSON Implementation for Ruby</title>
+
+ <link type="text/css" media="screen" href="rdoc.css" rel="stylesheet" />
+
+ <script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
+ <script src="js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
+ <script src="js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
+ <script src="js/darkfish.js" type="text/javascript" charset="utf-8"></script>
+
+</head>
+<body class="indexpage">
+
+
+ <h1>JSON Implementation for Ruby</h1>
+
+
+ <div id="main">
+ <h2>Description</h2>
+<p>
+This is a implementation of the <a href="JSON.html">JSON</a> specification
+according to RFC 4627 (<a
+href="http://www.ietf.org/rfc/rfc4627.txt">www.ietf.org/rfc/rfc4627.txt</a>).
+Starting from version 1.0.0 on there will be two variants available:
+</p>
+<ul>
+<li>A pure ruby variant, that relies on the iconv and the stringscan
+extensions, which are both part of the ruby standard library.
+
+</li>
+<li>The quite a bit faster C extension variant, which is in parts implemented
+in C and comes with its own unicode conversion functions and a parser
+generated by the ragel state machine compiler (<a
+href="http://www.cs.queensu.ca/~thurston/ragel">www.cs.queensu.ca/~thurston/ragel</a>).
+
+</li>
+</ul>
+<p>
+Both variants of the <a href="JSON.html">JSON</a> generator escape all
+non-ASCII and control characters with uXXXX escape sequences, and support
+UTF-16 surrogate pairs in order to be able to generate the whole range of
+unicode code points. This means that generated <a href="JSON.html">JSON</a>
+document is encoded as UTF-8 (because ASCII is a subset of UTF-8) and at
+the same time avoids decoding problems for receiving endpoints, that
+don&#8217;t expect UTF-8 encoded texts. On the negative side this may lead
+to a bit longer strings than necessarry.
+</p>
+<p>
+All strings, that are to be encoded as <a href="JSON.html">JSON</a>
+strings, should be UTF-8 byte sequences on the Ruby side. To encode raw
+binary strings, that aren&#8217;t UTF-8 encoded, please use the
+to_json_raw_object method of String (which produces an object, that
+contains a byte array) and decode the result on the receiving endpoint.
+</p>
+<p>
+The <a href="JSON.html">JSON</a> parsers can parse UTF-8, UTF-16BE,
+UTF-16LE, UTF-32BE, and UTF-32LE <a href="JSON.html">JSON</a> documents
+under Ruby 1.8. Under Ruby 1.9 they take advantage of Ruby&#8217;s M17n
+features and can parse all documents which have the correct String#encoding
+set. If a document string has ASCII-8BIT as an encoding the parser attempts
+to figure out which of the UTF encodings from above it is and trys to parse
+it.
+</p>
+<h2>Installation</h2>
+<p>
+It&#8217;s recommended to use the extension variant of <a
+href="JSON.html">JSON</a>, because it&#8217;s faster than the pure ruby
+variant. If you cannot build it on your system, you can settle for the
+latter.
+</p>
+<p>
+Just type into the command line as root:
+</p>
+<pre>
+ # rake install
+</pre>
+<p>
+The above command will build the extensions and install them on your
+system.
+</p>
+<pre>
+ # rake install_pure
+</pre>
+<p>
+or
+</p>
+<pre>
+ # ruby install.rb
+</pre>
+<p>
+will just install the pure ruby implementation of <a
+href="JSON.html">JSON</a>.
+</p>
+<p>
+If you use Rubygems you can type
+</p>
+<pre>
+ # gem install json
+</pre>
+<p>
+instead, to install the newest <a href="JSON.html">JSON</a> version.
+</p>
+<p>
+There is also a pure ruby json only variant of the gem, that can be
+installed with:
+</p>
+<pre>
+ # gem install json_pure
+</pre>
+<h2>Compiling the extensions yourself</h2>
+<p>
+If you want to build the extensions yourself you need rake:
+</p>
+<pre>
+ You can get it from rubyforge:
+ http://rubyforge.org/projects/rake
+
+ or just type
+
+ # gem install rake
+
+ for the installation via rubygems.
+</pre>
+<p>
+If you want to create the parser.c file from its parser.rl file or draw
+nice graphviz images of the state machines, you need ragel from: <a
+href="http://www.cs.queensu.ca/~thurston/ragel">www.cs.queensu.ca/~thurston/ragel</a>
+</p>
+<h2>Usage</h2>
+<p>
+To use <a href="JSON.html">JSON</a> you can
+</p>
+<pre>
+ require 'json'
+</pre>
+<p>
+to load the installed variant (either the extension &#8216;json&#8217; or
+the pure variant &#8216;json_pure&#8217;). If you have installed the
+extension variant, you can pick either the extension variant or the pure
+variant by typing
+</p>
+<pre>
+ require 'json/ext'
+</pre>
+<p>
+or
+</p>
+<pre>
+ require 'json/pure'
+</pre>
+<p>
+Now you can parse a <a href="JSON.html">JSON</a> document into a ruby data
+structure by calling
+</p>
+<pre>
+ JSON.parse(document)
+</pre>
+<p>
+If you want to generate a <a href="JSON.html">JSON</a> document from a ruby
+data structure call
+</p>
+<pre>
+ JSON.generate(data)
+</pre>
+<p>
+You can also use the pretty_generate method (which formats the output more
+verbosely and nicely) or fast_generate (which doesn&#8217;t do any of the
+security checks generate performs, e. g. nesting deepness checks).
+</p>
+<p>
+To create a valid <a href="JSON.html">JSON</a> document you have to make
+sure, that the output is embedded in either a <a href="JSON.html">JSON</a>
+array [] or a <a href="JSON.html">JSON</a> object {}. The easiest way to do
+this, is by putting your values in a Ruby Array or Hash instance.
+</p>
+<p>
+There are also the <a href="JSON.html">JSON</a> and JSON[] methods which
+use parse on a String or generate a <a href="JSON.html">JSON</a> document
+from an array or hash:
+</p>
+<pre>
+ document = JSON 'test' =&gt; 23 # =&gt; &quot;{\&quot;test\&quot;:23}&quot;
+ document = JSON['test'] =&gt; 23 # =&gt; &quot;{\&quot;test\&quot;:23}&quot;
+</pre>
+<p>
+and
+</p>
+<pre>
+ data = JSON '{&quot;test&quot;:23}' # =&gt; {&quot;test&quot;=&gt;23}
+ data = JSON['{&quot;test&quot;:23}'] # =&gt; {&quot;test&quot;=&gt;23}
+</pre>
+<p>
+You can choose to load a set of common additions to ruby core&#8217;s
+objects if you
+</p>
+<pre>
+ require 'json/add/core'
+</pre>
+<p>
+After requiring this you can, e. g., serialise/deserialise Ruby ranges:
+</p>
+<pre>
+ JSON JSON(1..10) # =&gt; 1..10
+</pre>
+<p>
+To find out how to add <a href="JSON.html">JSON</a> support to other or
+your own classes, read the section &#8220;More Examples&#8221; below.
+</p>
+<p>
+To get the best compatibility to rails&#8217; <a href="JSON.html">JSON</a>
+implementation, you can
+</p>
+<pre>
+ require 'json/add/rails'
+</pre>
+<p>
+Both of the additions attempt to require &#8216;json&#8217; (like above)
+first, if it has not been required yet.
+</p>
+<h2>More Examples</h2>
+<p>
+To create a <a href="JSON.html">JSON</a> document from a ruby data
+structure, you can call <a href="JSON.html#M000024">JSON.generate</a> like
+that:
+</p>
+<pre>
+ json = JSON.generate [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+ # =&gt; &quot;[1,2,{\&quot;a\&quot;:3.141},false,true,null,\&quot;4..10\&quot;]&quot;
+</pre>
+<p>
+To get back a ruby data structure from a <a href="JSON.html">JSON</a>
+document, you have to call <a href="JSON.html#M000022">JSON.parse</a> on
+it:
+</p>
+<pre>
+ JSON.parse json
+ # =&gt; [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, &quot;4..10&quot;]
+</pre>
+<p>
+Note, that the range from the original data structure is a simple string
+now. The reason for this is, that <a href="JSON.html">JSON</a>
+doesn&#8217;t support ranges or arbitrary classes. In this case the json
+library falls back to call <a
+href="Object.html#M000001">Object#to_json</a>, which is the same as
+to_s.to_json.
+</p>
+<p>
+It&#8217;s possible to add <a href="JSON.html">JSON</a> support
+serialization to arbitrary classes by simply implementing a more
+specialized version of the to_json method, that should return a <a
+href="JSON.html">JSON</a> object (a hash converted to <a
+href="JSON.html">JSON</a> with to_json) like this (don&#8217;t forget the
+*a for all the arguments):
+</p>
+<pre>
+ class Range
+ def to_json(*a)
+ {
+ 'json_class' =&gt; self.class.name, # = 'Range'
+ 'data' =&gt; [ first, last, exclude_end? ]
+ }.to_json(*a)
+ end
+ end
+</pre>
+<p>
+The hash key &#8216;json_class&#8217; is the class, that will be asked to
+deserialise the <a href="JSON.html">JSON</a> representation later. In this
+case it&#8217;s &#8216;Range&#8217;, but any namespace of the form
+&#8216;A::B&#8217; or &#8217;::A::B&#8217; will do. All other keys are
+arbitrary and can be used to store the necessary data to configure the
+object to be deserialised.
+</p>
+<p>
+If a the key &#8216;json_class&#8217; is found in a <a
+href="JSON.html">JSON</a> object, the <a href="JSON.html">JSON</a> parser
+checks if the given class responds to the json_create class method. If so,
+it is called with the <a href="JSON.html">JSON</a> object converted to a
+Ruby hash. So a range can be deserialised by implementing <a
+href="Range.html#M000010">Range.json_create</a> like this:
+</p>
+<pre>
+ class Range
+ def self.json_create(o)
+ new(*o['data'])
+ end
+ end
+</pre>
+<p>
+Now it possible to serialise/deserialise ranges as well:
+</p>
+<pre>
+ json = JSON.generate [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+ # =&gt; &quot;[1,2,{\&quot;a\&quot;:3.141},false,true,null,{\&quot;json_class\&quot;:\&quot;Range\&quot;,\&quot;data\&quot;:[4,10,false]}]&quot;
+ JSON.parse json
+ # =&gt; [1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10]
+</pre>
+<p>
+<a href="JSON.html#M000024">JSON.generate</a> always creates the shortest
+possible string representation of a ruby data structure in one line. This
+is good for data storage or network protocols, but not so good for humans
+to read. Fortunately there&#8217;s also <a
+href="JSON.html#M000026">JSON.pretty_generate</a> (or <a
+href="JSON.html#M000026">JSON.pretty_generate</a>) that creates a more
+readable output:
+</p>
+<pre>
+ puts JSON.pretty_generate([1, 2, {&quot;a&quot;=&gt;3.141}, false, true, nil, 4..10])
+ [
+ 1,
+ 2,
+ {
+ &quot;a&quot;: 3.141
+ },
+ false,
+ true,
+ null,
+ {
+ &quot;json_class&quot;: &quot;Range&quot;,
+ &quot;data&quot;: [
+ 4,
+ 10,
+ false
+ ]
+ }
+ ]
+</pre>
+<p>
+There are also the methods <a href="Kernel.html#M000036">Kernel#j</a> for
+generate, and <a href="Kernel.html#M000037">Kernel#jj</a> for
+pretty_generate output to the console, that work analogous to Core
+Ruby&#8217;s p and the pp library&#8217;s pp methods.
+</p>
+<p>
+The script tools/server.rb contains a small example if you want to test,
+how receiving a <a href="JSON.html">JSON</a> object from a webrick server
+in your browser with the javasript prototype library (<a
+href="http://www.prototypejs.org">www.prototypejs.org</a>) works.
+</p>
+<h2>Speed Comparisons</h2>
+<p>
+I have created some benchmark results (see the benchmarks/data-p4-3Ghz
+subdir of the package) for the JSON-parser to estimate the speed up in the
+C extension:
+</p>
+<pre>
+ Comparing times (call_time_mean):
+ 1 ParserBenchmarkExt#parser 900 repeats:
+ 553.922304770 ( real) -&gt; 21.500x
+ 0.001805307
+ 2 ParserBenchmarkYAML#parser 1000 repeats:
+ 224.513358139 ( real) -&gt; 8.714x
+ 0.004454078
+ 3 ParserBenchmarkPure#parser 1000 repeats:
+ 26.755020642 ( real) -&gt; 1.038x
+ 0.037376163
+ 4 ParserBenchmarkRails#parser 1000 repeats:
+ 25.763381731 ( real) -&gt; 1.000x
+ 0.038814780
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+In the table above 1 is <a
+href="JSON/Ext/Parser.html">JSON::Ext::Parser</a>, 2 is YAML.load with YAML
+compatbile <a href="JSON.html">JSON</a> document, 3 is is <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a>, and 4 is
+ActiveSupport::JSON.decode. The ActiveSupport JSON-decoder converts the
+input first to YAML and then uses the YAML-parser, the conversion seems to
+slow it down so much that it is only as fast as the <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a>!
+</p>
+<p>
+If you look at the benchmark data you can see that this is mostly caused by
+the frequent high outliers - the median of the Rails-parser runs is still
+overall smaller than the median of the <a
+href="JSON/Pure/Parser.html">JSON::Pure::Parser</a> runs:
+</p>
+<pre>
+ Comparing times (call_time_median):
+ 1 ParserBenchmarkExt#parser 900 repeats:
+ 800.592479481 ( real) -&gt; 26.936x
+ 0.001249075
+ 2 ParserBenchmarkYAML#parser 1000 repeats:
+ 271.002390644 ( real) -&gt; 9.118x
+ 0.003690004
+ 3 ParserBenchmarkRails#parser 1000 repeats:
+ 30.227910865 ( real) -&gt; 1.017x
+ 0.033082008
+ 4 ParserBenchmarkPure#parser 1000 repeats:
+ 29.722384421 ( real) -&gt; 1.000x
+ 0.033644676
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+I have benchmarked the JSON-Generator as well. This generated a few more
+values, because there are different modes that also influence the achieved
+speed:
+</p>
+<pre>
+ Comparing times (call_time_mean):
+ 1 GeneratorBenchmarkExt#generator_fast 1000 repeats:
+ 547.354332608 ( real) -&gt; 15.090x
+ 0.001826970
+ 2 GeneratorBenchmarkExt#generator_safe 1000 repeats:
+ 443.968212317 ( real) -&gt; 12.240x
+ 0.002252414
+ 3 GeneratorBenchmarkExt#generator_pretty 900 repeats:
+ 375.104545883 ( real) -&gt; 10.341x
+ 0.002665923
+ 4 GeneratorBenchmarkPure#generator_fast 1000 repeats:
+ 49.978706968 ( real) -&gt; 1.378x
+ 0.020008521
+ 5 GeneratorBenchmarkRails#generator 1000 repeats:
+ 38.531868759 ( real) -&gt; 1.062x
+ 0.025952543
+ 6 GeneratorBenchmarkPure#generator_safe 1000 repeats:
+ 36.927649925 ( real) -&gt; 1.018x 7 (&gt;=3859)
+ 0.027079979
+ 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
+ 36.272134441 ( real) -&gt; 1.000x 6 (&gt;=3859)
+ 0.027569373
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<p>
+In the table above 1-3 are <a
+href="JSON/Ext/Generator.html">JSON::Ext::Generator</a> methods. 4, 6, and
+7 are <a href="JSON/Pure/Generator.html">JSON::Pure::Generator</a> methods
+and 5 is the Rails <a href="JSON.html">JSON</a> generator. It is now a bit
+faster than the generator_safe and generator_pretty methods of the pure
+variant but slower than the others.
+</p>
+<p>
+To achieve the fastest <a href="JSON.html">JSON</a> document output, you
+can use the fast_generate method. Beware, that this will disable the
+checking for circular Ruby data structures, which may cause <a
+href="JSON.html">JSON</a> to go into an infinite loop.
+</p>
+<p>
+Here are the median comparisons for completeness&#8217; sake:
+</p>
+<pre>
+ Comparing times (call_time_median):
+ 1 GeneratorBenchmarkExt#generator_fast 1000 repeats:
+ 708.258020939 ( real) -&gt; 16.547x
+ 0.001411915
+ 2 GeneratorBenchmarkExt#generator_safe 1000 repeats:
+ 569.105020353 ( real) -&gt; 13.296x
+ 0.001757145
+ 3 GeneratorBenchmarkExt#generator_pretty 900 repeats:
+ 482.825371244 ( real) -&gt; 11.280x
+ 0.002071142
+ 4 GeneratorBenchmarkPure#generator_fast 1000 repeats:
+ 62.717626652 ( real) -&gt; 1.465x
+ 0.015944481
+ 5 GeneratorBenchmarkRails#generator 1000 repeats:
+ 43.965681162 ( real) -&gt; 1.027x
+ 0.022745013
+ 6 GeneratorBenchmarkPure#generator_safe 1000 repeats:
+ 43.929073409 ( real) -&gt; 1.026x 7 (&gt;=3859)
+ 0.022763968
+ 7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
+ 42.802514491 ( real) -&gt; 1.000x 6 (&gt;=3859)
+ 0.023363113
+ calls/sec ( time) -&gt; speed covers
+ secs/call
+</pre>
+<h2>Author</h2>
+<p>
+Florian Frank <<a href="mailto:flori@ping.de">flori@ping.de</a>>
+</p>
+<h2>License</h2>
+<p>
+Ruby License, see the COPYING file included in the source distribution. The
+Ruby License includes the GNU General Public License (GPL), Version 2, so
+see the file GPL as well.
+</p>
+<h2>Download</h2>
+<p>
+The latest version of this library can be downloaded at
+</p>
+<ul>
+<li><a
+href="http://rubyforge.org/frs?group_id=953">rubyforge.org/frs?group_id=953</a>
+
+</li>
+</ul>
+<p>
+Online Documentation should be located at
+</p>
+<ul>
+<li><a href="http://json.rubyforge.org">json.rubyforge.org</a>
+
+</li>
+</ul>
+
+ </div>
+
+
+
+
+ <h2>Files</h2>
+ <ul>
+
+ <li class="file"><a href="README.html">README</a></li>
+
+ </ul>
+
+
+ <h2>Classes/Modules</h2>
+ <ul>
+
+ <li class="module"><a href="JSON.html">JSON</a></li>
+
+ <li class="module"><a href="JSON/Editor.html">JSON::Editor</a></li>
+
+ <li class="class"><a href="JSON/Editor/EditMenu.html">JSON::Editor::EditMenu</a></li>
+
+ <li class="class"><a href="JSON/Editor/FileMenu.html">JSON::Editor::FileMenu</a></li>
+
+ <li class="module"><a href="JSON/Editor/Gtk.html">JSON::Editor::Gtk</a></li>
+
+ <li class="class"><a href="JSON/Editor/Gtk/TreeIter.html">JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li class="class"><a href="JSON/Editor/JSONTreeView.html">JSON::Editor::JSONTreeView</a></li>
+
+ <li class="class"><a href="JSON/Editor/MainWindow.html">JSON::Editor::MainWindow</a></li>
+
+ <li class="module"><a href="JSON/Editor/MenuExtension.html">JSON::Editor::MenuExtension</a></li>
+
+ <li class="class"><a href="JSON/Editor/OptionsMenu.html">JSON::Editor::OptionsMenu</a></li>
+
+ <li class="class"><a href="JSON/Editor/PopUpMenu.html">JSON::Editor::PopUpMenu</a></li>
+
+ <li class="module"><a href="JSON/Ext.html">JSON::Ext</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator.html">JSON::Ext::Generator</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods.html">JSON::Ext::Generator::GeneratorMethods</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/Array.html">JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/FalseClass.html">JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/Float.html">JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/Hash.html">JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/Integer.html">JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/NilClass.html">JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/Object.html">JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/String.html">JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/String/Extend.html">JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li class="module"><a href="JSON/Ext/Generator/GeneratorMethods/TrueClass.html">JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li class="class"><a href="JSON/Ext/Generator/State.html">JSON::Ext::Generator::State</a></li>
+
+ <li class="class"><a href="JSON/Ext/Parser.html">JSON::Ext::Parser</a></li>
+
+ <li class="class"><a href="JSON/GeneratorError.html">JSON::GeneratorError</a></li>
+
+ <li class="class"><a href="JSON/JSONError.html">JSON::JSONError</a></li>
+
+ <li class="class"><a href="JSON/MissingUnicodeSupport.html">JSON::MissingUnicodeSupport</a></li>
+
+ <li class="class"><a href="JSON/NestingError.html">JSON::NestingError</a></li>
+
+ <li class="class"><a href="JSON/ParserError.html">JSON::ParserError</a></li>
+
+ <li class="module"><a href="JSON/Pure.html">JSON::Pure</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator.html">JSON::Pure::Generator</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods.html">JSON::Pure::Generator::GeneratorMethods</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/Array.html">JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/FalseClass.html">JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/Float.html">JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/Hash.html">JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/Integer.html">JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/NilClass.html">JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/Object.html">JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/String.html">JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/String/Extend.html">JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li class="module"><a href="JSON/Pure/Generator/GeneratorMethods/TrueClass.html">JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li class="class"><a href="JSON/Pure/Generator/State.html">JSON::Pure::Generator::State</a></li>
+
+ <li class="class"><a href="JSON/Pure/Parser.html">JSON::Pure::Parser</a></li>
+
+ <li class="class"><a href="Class.html">Class</a></li>
+
+ <li class="class"><a href="Date.html">Date</a></li>
+
+ <li class="class"><a href="DateTime.html">DateTime</a></li>
+
+ <li class="module"><a href="Enumerable.html">Enumerable</a></li>
+
+ <li class="class"><a href="Exception.html">Exception</a></li>
+
+ <li class="module"><a href="Kernel.html">Kernel</a></li>
+
+ <li class="class"><a href="Object.html">Object</a></li>
+
+ <li class="class"><a href="Range.html">Range</a></li>
+
+ <li class="class"><a href="Regexp.html">Regexp</a></li>
+
+ <li class="class"><a href="Struct.html">Struct</a></li>
+
+ <li class="class"><a href="Symbol.html">Symbol</a></li>
+
+ <li class="class"><a href="Time.html">Time</a></li>
+
+ </ul>
+
+ <h2>Methods</h2>
+ <ul>
+
+ <li><a href="JSON.html#M000018">::[] &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor.html#M000084">::data2model &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON/Editor.html#M000192">::edit &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON/Editor.html#M000081">::error_dialog &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON/Editor.html#M000077">::fetch_icon &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000103">::from_state &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000039">::from_state &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON.html#M000033">::iconv &mdash; JSON</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/String.html#M000130">::included &mdash; JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String.html#M000061">::included &mdash; JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="DateTime.html#M000008">::json_create &mdash; DateTime</a></li>
+
+ <li><a href="Range.html#M000010">::json_create &mdash; Range</a></li>
+
+ <li><a href="Date.html#M000006">::json_create &mdash; Date</a></li>
+
+ <li><a href="Exception.html#M000014">::json_create &mdash; Exception</a></li>
+
+ <li><a href="Time.html#M000004">::json_create &mdash; Time</a></li>
+
+ <li><a href="Regexp.html#M000016">::json_create &mdash; Regexp</a></li>
+
+ <li><a href="Struct.html#M000012">::json_create &mdash; Struct</a></li>
+
+ <li><a href="Object.html#M000000">::json_create &mdash; Object</a></li>
+
+ <li><a href="JSON/Editor.html#M000083">::model2data &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000055">::new &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON/Ext/Parser.html#M000078">::new &mdash; JSON::Ext::Parser</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000156">::new &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000041">::new &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/MenuExtension.html#M000092">::new &mdash; JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000168">::new &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000104">::new &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor.html#M000082">::question_dialog &mdash; JSON::Editor</a></li>
+
+ <li><a href="JSON.html#M000031">::restore &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor.html#M000191">::start &mdash; JSON::Editor</a></li>
+
+ <li><a href="Kernel.html#M000038">#JSON &mdash; Kernel</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000157">#add_columns &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MenuExtension.html#M000094">#add_item &mdash; JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000161">#add_popup_menu &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MenuExtension.html#M000093">#add_separator &mdash; JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000044">#allow_nan? &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000119">#allow_nan? &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000102">#append_new_node &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000114">#array_nl &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000115">#array_nl= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000120">#ascii_only? &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000045">#ascii_only? &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000164">#ask_for_element &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000166">#ask_for_find_term &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000163">#ask_for_hash_pair &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000190">#ask_for_location &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000165">#ask_for_order &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000174">#ask_save &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000159">#cell_edited &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000170">#change &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000097">#change_node &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000043">#check_circular? &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000178">#check_pretty_printed &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000177">#clear &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000117">#collapse_expand &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Editor/OptionsMenu.html#M000153">#collapsed_nodes &mdash; JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000046">#configure &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000121">#configure &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000160">#configure_value &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000090">#content &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000091">#content= &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000147">#copy &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000099">#copy_node &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Editor/OptionsMenu.html#M000155">#create &mdash; JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="JSON/Editor/MenuExtension.html#M000095">#create &mdash; JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000152">#create &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000133">#create &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000146">#create &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000169">#create_menu_bar &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000162">#create_node &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000098">#cut_node &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000173">#display_status &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000176">#display_title &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON.html#M000032">#dump &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000085">#each &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000181">#edit &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000167">#expand_collapse &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON.html#M000025">#fast_generate &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000180">#file_open &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000182">#file_save &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000183">#file_save_as &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000149">#find &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000150">#find_again &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON.html#M000024">#generate &mdash; JSON</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000123">#generate &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000048">#generate &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000105">#indent &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000106">#indent= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000112">#insert_new_node &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="Kernel.html#M000036">#j &mdash; Kernel</a></li>
+
+ <li><a href="Kernel.html#M000037">#jj &mdash; Kernel</a></li>
+
+ <li><a href="Class.html#M000040">#json_creatable? &mdash; Class</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String/Extend.html#M000060">#json_create &mdash; JSON::Pure::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/String/Extend.html#M000135">#json_create &mdash; JSON::Ext::Generator::GeneratorMethods::String::Extend</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Hash.html#M000051">#json_shift &mdash; JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Hash.html#M000052">#json_transform &mdash; JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Array.html#M000054">#json_transform &mdash; JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="JSON.html#M000027">#load &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000185">#load_file &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000186">#load_location &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000179">#location_open &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000116">#max_nesting &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000118">#max_nesting= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/MenuExtension.html#M000096">#method_missing &mdash; JSON::Editor::MenuExtension</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000139">#new &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000111">#object_nl &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000113">#object_nl= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000140">#open &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000141">#open_location &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000065">#parse &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON.html#M000022">#parse &mdash; JSON</a></li>
+
+ <li><a href="JSON/Ext/Parser.html#M000079">#parse &mdash; JSON::Ext::Parser</a></li>
+
+ <li><a href="JSON.html#M000023">#parse! &mdash; JSON</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000070">#parse_array &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000187">#parse_json &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000071">#parse_object &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000068">#parse_string &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON/Pure/Parser.html#M000069">#parse_value &mdash; JSON::Pure::Parser</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000124">#partial_generate &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000148">#paste &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000100">#paste_node_appending &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON/Editor/PopUpMenu.html#M000101">#paste_node_inserting_before &mdash; JSON::Editor::PopUpMenu</a></li>
+
+ <li><a href="JSON.html#M000026">#pretty_generate &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/OptionsMenu.html#M000154">#pretty_saving &mdash; JSON::Editor::OptionsMenu</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000145">#quit &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000175">#quit &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000188">#read_data &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON.html#M000030">#recurse_proc &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000086">#recursive_each &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000087">#remove_subtree &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON.html#M000031">#restore &mdash; JSON</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000142">#revert &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000143">#save &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/FileMenu.html#M000144">#save_as &mdash; JSON::Editor::FileMenu</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000189">#select_file &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/EditMenu.html#M000151">#sort &mdash; JSON::Editor::EditMenu</a></li>
+
+ <li><a href="JSON/Ext/Parser.html#M000080">#source &mdash; JSON::Ext::Parser</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000107">#space &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000108">#space= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000109">#space_before &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000110">#space_before= &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000184">#store_file &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Ext/Generator/State.html#M000122">#to_h &mdash; JSON::Ext::Generator::State</a></li>
+
+ <li><a href="JSON/Pure/Generator/State.html#M000047">#to_h &mdash; JSON::Pure::Generator::State</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Float.html#M000057">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/TrueClass.html#M000136">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/FalseClass.html#M000137">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String.html#M000058">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String.html#M000059">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/NilClass.html#M000067">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="Date.html#M000007">#to_json &mdash; Date</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/Array.html#M000127">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/Object.html#M000125">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/Float.html#M000129">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::Float</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/FalseClass.html#M000066">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::FalseClass</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Array.html#M000053">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::Array</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Hash.html#M000050">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="Symbol.html#M000002">#to_json &mdash; Symbol</a></li>
+
+ <li><a href="Time.html#M000005">#to_json &mdash; Time</a></li>
+
+ <li><a href="Range.html#M000011">#to_json &mdash; Range</a></li>
+
+ <li><a href="Exception.html#M000015">#to_json &mdash; Exception</a></li>
+
+ <li><a href="Struct.html#M000013">#to_json &mdash; Struct</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/String.html#M000131">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/NilClass.html#M000138">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::NilClass</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Integer.html#M000056">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="Enumerable.html#M000003">#to_json &mdash; Enumerable</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/Integer.html#M000128">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::Integer</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/Hash.html#M000126">#to_json &mdash; JSON::Ext::Generator::GeneratorMethods::Hash</a></li>
+
+ <li><a href="Regexp.html#M000017">#to_json &mdash; Regexp</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/Object.html#M000049">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::Object</a></li>
+
+ <li><a href="Object.html#M000001">#to_json &mdash; Object</a></li>
+
+ <li><a href="DateTime.html#M000009">#to_json &mdash; DateTime</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/TrueClass.html#M000064">#to_json &mdash; JSON::Pure::Generator::GeneratorMethods::TrueClass</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String.html#M000063">#to_json_raw &mdash; JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/String.html#M000132">#to_json_raw &mdash; JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Ext/Generator/GeneratorMethods/String.html#M000134">#to_json_raw_object &mdash; JSON::Ext::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Pure/Generator/GeneratorMethods/String.html#M000062">#to_json_raw_object &mdash; JSON::Pure::Generator::GeneratorMethods::String</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000088">#type &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/Gtk/TreeIter.html#M000089">#type= &mdash; JSON::Editor::Gtk::TreeIter</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000171">#unchange &mdash; JSON::Editor::MainWindow</a></li>
+
+ <li><a href="JSON/Editor/JSONTreeView.html#M000158">#unify_key &mdash; JSON::Editor::JSONTreeView</a></li>
+
+ <li><a href="JSON/Editor/MainWindow.html#M000172">#view_new_model &mdash; JSON::Editor::MainWindow</a></li>
+
+ </ul>
+
+ <div id="validator-badges">
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+ Rdoc Generator</a> 1.1.6</small>.</p>
+ </div>
+</body>
+</html>
diff --git a/doc/js/darkfish.js b/doc/js/darkfish.js
new file mode 100644
index 0000000..43528fd
--- /dev/null
+++ b/doc/js/darkfish.js
@@ -0,0 +1,116 @@
+/**
+ *
+ * Darkfish Page Functions
+ * $Id: darkfish.js 53 2009-01-07 02:52:03Z deveiant $
+ *
+ * Author: Michael Granger <mgranger@laika.com>
+ *
+ */
+
+/* Provide console simulation for firebug-less environments */
+if (!("console" in window) || !("firebug" in console)) {
+ var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+ "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
+
+ window.console = {};
+ for (var i = 0; i < names.length; ++i)
+ window.console[names[i]] = function() {};
+};
+
+
+/**
+ * Unwrap the first element that matches the given @expr@ from the targets and return them.
+ */
+$.fn.unwrap = function( expr ) {
+ return this.each( function() {
+ $(this).parents( expr ).eq( 0 ).after( this ).remove();
+ });
+};
+
+
+function showSource( e ) {
+ var target = e.target;
+ var codeSections = $(target).
+ parents('.method-detail').
+ find('.method-source-code');
+
+ $(target).
+ parents('.method-detail').
+ find('.method-source-code').
+ slideToggle();
+};
+
+function hookSourceViews() {
+ $('.method-description,.method-heading').click( showSource );
+};
+
+function toggleDebuggingSection() {
+ $('.debugging-section').slideToggle();
+};
+
+function hookDebuggingToggle() {
+ $('#debugging-toggle img').click( toggleDebuggingSection );
+};
+
+function hookQuickSearch() {
+ $('.quicksearch-field').each( function() {
+ var searchElems = $(this).parents('.section').find( 'li' );
+ var toggle = $(this).parents('.section').find('h3 .search-toggle');
+ // console.debug( "Toggle is: %o", toggle );
+ var qsbox = $(this).parents('form').get( 0 );
+
+ $(this).quicksearch( this, searchElems, {
+ noSearchResultsIndicator: 'no-class-search-results',
+ focusOnLoad: false
+ });
+ $(toggle).click( function() {
+ // console.debug( "Toggling qsbox: %o", qsbox );
+ $(qsbox).toggle();
+ });
+ });
+};
+
+function highlightTarget( anchor ) {
+ console.debug( "Highlighting target '%s'.", anchor );
+
+ $("a[name=" + anchor + "]").each( function() {
+ if ( !$(this).parent().parent().hasClass('target-section') ) {
+ console.debug( "Wrapping the target-section" );
+ $('div.method-detail').unwrap( 'div.target-section' );
+ $(this).parent().wrap( '<div class="target-section"></div>' );
+ } else {
+ console.debug( "Already wrapped." );
+ }
+ });
+};
+
+function highlightLocationTarget() {
+ console.debug( "Location hash: %s", window.location.hash );
+ if ( ! window.location.hash || window.location.hash.length == 0 ) return;
+
+ var anchor = window.location.hash.substring(1);
+ console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );
+
+ highlightTarget( anchor );
+};
+
+function highlightClickTarget( event ) {
+ console.debug( "Highlighting click target for event %o", event.target );
+ try {
+ var anchor = $(event.target).attr( 'href' ).substring(1);
+ console.debug( "Found target anchor: %s", anchor );
+ highlightTarget( anchor );
+ } catch ( err ) {
+ console.error( "Exception while highlighting: %o", err );
+ };
+};
+
+
+$(document).ready( function() {
+ hookSourceViews();
+ hookDebuggingToggle();
+ hookQuickSearch();
+ highlightLocationTarget();
+
+ $('ul.link-list a').bind( "click", highlightClickTarget );
+});
diff --git a/doc/js/jquery.js b/doc/js/jquery.js
new file mode 100644
index 0000000..afe9e74
--- /dev/null
+++ b/doc/js/jquery.js
@@ -0,0 +1,32 @@
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-09-25 09:50:52 -0700 (Thu, 25 Sep 2008) $
+ * $Rev: 38 $
+ */
+(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
+return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
+return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
+selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
+return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
+this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
+return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
+script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
+for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
+for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
+jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
+ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
+while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
+while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
+for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
+jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
+xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
+jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
+for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
+s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
+e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file
diff --git a/doc/js/quicksearch.js b/doc/js/quicksearch.js
new file mode 100644
index 0000000..332772a
--- /dev/null
+++ b/doc/js/quicksearch.js
@@ -0,0 +1,114 @@
+/**
+ *
+ * JQuery QuickSearch - Hook up a form field to hide non-matching elements.
+ * $Id: quicksearch.js 53 2009-01-07 02:52:03Z deveiant $
+ *
+ * Author: Michael Granger <mgranger@laika.com>
+ *
+ */
+jQuery.fn.quicksearch = function( target, searchElems, options ) {
+ // console.debug( "Quicksearch fn" );
+
+ var settings = {
+ delay: 250,
+ clearButton: false,
+ highlightMatches: false,
+ focusOnLoad: false,
+ noSearchResultsIndicator: null
+ };
+ if ( options ) $.extend( settings, options );
+
+ return jQuery(this).each( function() {
+ // console.debug( "Creating a new quicksearch on %o for %o", this, searchElems );
+ new jQuery.quicksearch( this, searchElems, settings );
+ });
+};
+
+
+jQuery.quicksearch = function( searchBox, searchElems, settings ) {
+ var timeout;
+ var boxdiv = $(searchBox).parents('div').eq(0);
+
+ function init() {
+ setupKeyEventHandlers();
+ focusOnLoad();
+ };
+
+ function setupKeyEventHandlers() {
+ // console.debug( "Hooking up the 'keypress' event to %o", searchBox );
+ $(searchBox).
+ unbind( 'keyup' ).
+ keyup( function(e) { return onSearchKey( e.keyCode ); });
+ $(searchBox).
+ unbind( 'keypress' ).
+ keypress( function(e) {
+ switch( e.which ) {
+ // Execute the search on Enter, Tab, or Newline
+ case 9:
+ case 13:
+ case 10:
+ clearTimeout( timeout );
+ e.preventDefault();
+ doQuickSearch();
+ break;
+
+ // Allow backspace
+ case 8:
+ return true;
+ break;
+
+ // Only allow valid search characters
+ default:
+ return validQSChar( e.charCode );
+ }
+ });
+ };
+
+ function focusOnLoad() {
+ if ( !settings.focusOnLoad ) return false;
+ $(searchBox).focus();
+ };
+
+ function onSearchKey ( code ) {
+ clearTimeout( timeout );
+ // console.debug( "...scheduling search." );
+ timeout = setTimeout( doQuickSearch, settings.delay );
+ };
+
+ function validQSChar( code ) {
+ var c = String.fromCharCode( code );
+ return (
+ (c == ':') ||
+ (c >= 'a' && c <= 'z') ||
+ (c >= 'A' && c <= 'Z')
+ );
+ };
+
+ function doQuickSearch() {
+ var searchText = searchBox.value;
+ var pat = new RegExp( searchText, "im" );
+ var shownCount = 0;
+
+ if ( settings.noSearchResultsIndicator ) {
+ $('#' + settings.noSearchResultsIndicator).hide();
+ }
+
+ // All elements start out hidden
+ $(searchElems).each( function(index) {
+ var str = $(this).text();
+
+ if ( pat.test(str) ) {
+ shownCount += 1;
+ $(this).fadeIn();
+ } else {
+ $(this).hide();
+ }
+ });
+
+ if ( shownCount == 0 && settings.noSearchResultsIndicator ) {
+ $('#' + settings.noSearchResultsIndicator).slideDown();
+ }
+ };
+
+ init();
+};
diff --git a/doc/js/thickbox-compressed.js b/doc/js/thickbox-compressed.js
new file mode 100644
index 0000000..3a3fdae
--- /dev/null
+++ b/doc/js/thickbox-compressed.js
@@ -0,0 +1,10 @@
+/*
+ * Thickbox 3 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+
+var tb_pathToImage = "../images/loadingAnimation.gif";
+
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{})) \ No newline at end of file
diff --git a/doc/lib/json/add/core_rb.html b/doc/lib/json/add/core_rb.html
new file mode 100644
index 0000000..a96a3e5
--- /dev/null
+++ b/doc/lib/json/add/core_rb.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: core.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json</li>
+
+ <li>date</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+ <p>
+This file contains implementations of ruby core&#8217;s custom objects for
+serialisation/deserialisation.
+</p>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/add/rails_rb.html b/doc/lib/json/add/rails_rb.html
new file mode 100644
index 0000000..d5dd14a
--- /dev/null
+++ b/doc/lib/json/add/rails_rb.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: rails.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+ <p>
+This file contains implementations of rails custom objects for
+serialisation/deserialisation.
+</p>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/common_rb.html b/doc/lib/json/common_rb.html
new file mode 100644
index 0000000..2d19bcc
--- /dev/null
+++ b/doc/lib/json/common_rb.html
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: common.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json/version</li>
+
+ <li>iconv</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/editor_rb.html b/doc/lib/json/editor_rb.html
new file mode 100644
index 0000000..2e6accf
--- /dev/null
+++ b/doc/lib/json/editor_rb.html
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: editor.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>gtk2</li>
+
+ <li>iconv</li>
+
+ <li>json</li>
+
+ <li>rbconfig</li>
+
+ <li>open-uri</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+ <p>
+To use the GUI <a href="../../JSON.html">JSON</a> editor, start the
+edit_json.rb executable script. It requires ruby-gtk to be installed.
+</p>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/ext_rb.html b/doc/lib/json/ext_rb.html
new file mode 100644
index 0000000..d9764c8
--- /dev/null
+++ b/doc/lib/json/ext_rb.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: ext.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json/common</li>
+
+ <li>json/ext/parser</li>
+
+ <li>json/ext/generator</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/pure/generator_rb.html b/doc/lib/json/pure/generator_rb.html
new file mode 100644
index 0000000..d6ec625
--- /dev/null
+++ b/doc/lib/json/pure/generator_rb.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: generator.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/pure/parser_rb.html b/doc/lib/json/pure/parser_rb.html
new file mode 100644
index 0000000..901e244
--- /dev/null
+++ b/doc/lib/json/pure/parser_rb.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: parser.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>strscan</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/pure_rb.html b/doc/lib/json/pure_rb.html
new file mode 100644
index 0000000..0cb5b5a
--- /dev/null
+++ b/doc/lib/json/pure_rb.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: pure.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json/common</li>
+
+ <li>json/pure/parser</li>
+
+ <li>json/pure/generator</li>
+
+ <li>iconv</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json/version_rb.html b/doc/lib/json/version_rb.html
new file mode 100644
index 0000000..6bd5e72
--- /dev/null
+++ b/doc/lib/json/version_rb.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: version.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
+
+ <script src="../../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:38 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/lib/json_rb.html b/doc/lib/json_rb.html
new file mode 100644
index 0000000..b7bf511
--- /dev/null
+++ b/doc/lib/json_rb.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <title>File: json.rb [JSON Implementation for Ruby]</title>
+
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
+
+ <script src="../js/jquery.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/quicksearch.js" type="text/javascript"
+ charset="utf-8"></script>
+ <script src="../js/darkfish.js" type="text/javascript"
+ charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+ <div id="metadata">
+ <dl>
+ <dt class="modified-date">Last Modified</dt>
+ <dd class="modified-date">Sun Nov 08 02:24:37 +0100 2009</dd>
+
+
+ <dt class="requires">Requires</dt>
+ <dd class="requires">
+ <ul>
+
+ <li>json/common</li>
+
+ <li>json/version</li>
+
+ <li>json/ext</li>
+
+ <li>json/pure</li>
+
+ </ul>
+ </dd>
+
+
+
+ </dl>
+ </div>
+
+ <div id="documentation">
+
+ <div class="description">
+ <h2>Description</h2>
+
+ </div>
+
+ </div>
+</body>
+</html>
+
diff --git a/doc/rdoc.css b/doc/rdoc.css
new file mode 100644
index 0000000..bca0a02
--- /dev/null
+++ b/doc/rdoc.css
@@ -0,0 +1,696 @@
+/*
+ * "Darkfish" Rdoc CSS
+ * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
+ *
+ * Author: Michael Granger <ged@FaerieMUD.org>
+ *
+ */
+
+/* Base Green is: #6C8C22 */
+
+*{ padding: 0; margin: 0; }
+
+body {
+ background: #efefef;
+ font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
+}
+body.class, body.module, body.file {
+ margin-left: 40px;
+}
+body.file-popup {
+ font-size: 90%;
+ margin-left: 0;
+}
+
+h1 {
+ font-size: 300%;
+ text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
+ color: #6C8C22;
+}
+h2,h3,h4 { margin-top: 1.5em; }
+
+a {
+ color: #6C8C22;
+ text-decoration: none;
+}
+a:hover {
+ border-bottom: 1px dotted #6C8C22;
+}
+
+pre {
+ background: #ddd;
+ padding: 0.5em 0;
+}
+
+
+/* @group Generic Classes */
+
+.initially-hidden {
+ display: none;
+}
+
+.quicksearch-field {
+ width: 98%;
+ background: #ddd;
+ border: 1px solid #aaa;
+ height: 1.5em;
+ -webkit-border-radius: 4px;
+}
+.quicksearch-field:focus {
+ background: #f1edba;
+}
+
+.missing-docs {
+ font-size: 120%;
+ background: white url(images/wrench_orange.png) no-repeat 4px center;
+ color: #ccc;
+ line-height: 2em;
+ border: 1px solid #d00;
+ opacity: 1;
+ padding-left: 20px;
+ text-indent: 24px;
+ letter-spacing: 3px;
+ font-weight: bold;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+
+.target-section {
+ border: 2px solid #dcce90;
+ border-left-width: 8px;
+ padding: 0 1em;
+ background: #fff3c2;
+}
+
+/* @end */
+
+
+/* @group Index Page, Standalone file pages */
+body.indexpage {
+ margin: 1em 3em;
+}
+body.indexpage p,
+body.indexpage div,
+body.file p {
+ margin: 1em 0;
+}
+
+.indexpage ul,
+.file #documentation ul {
+ line-height: 160%;
+ list-style: none;
+}
+.indexpage ul a,
+.file #documentation ul a {
+ font-size: 16px;
+}
+
+.indexpage li,
+.file #documentation li {
+ padding-left: 20px;
+ background: url(images/bullet_black.png) no-repeat left 4px;
+}
+.indexpage li.module {
+ background: url(images/package.png) no-repeat left 4px;
+}
+.indexpage li.class {
+ background: url(images/ruby.png) no-repeat left 4px;
+}
+.indexpage li.file {
+ background: url(images/page_white_text.png) no-repeat left 4px;
+}
+
+/* @end */
+
+/* @group Top-Level Structure */
+
+.class #metadata,
+.file #metadata,
+.module #metadata {
+ float: left;
+ width: 260px;
+}
+
+.class #documentation,
+.file #documentation,
+.module #documentation {
+ margin: 2em 1em 5em 300px;
+ min-width: 340px;
+}
+
+.file #metadata {
+ margin: 0.8em;
+}
+
+#validator-badges {
+ clear: both;
+ margin: 1em 1em 2em;
+}
+
+/* @end */
+
+/* @group Metadata Section */
+#metadata .section {
+ background-color: #dedede;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border: 1px solid #aaa;
+ margin: 0 8px 16px;
+ font-size: 90%;
+ overflow: hidden;
+}
+#metadata h3.section-header {
+ margin: 0;
+ padding: 2px 8px;
+ background: #ccc;
+ color: #666;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-bottom: 1px solid #aaa;
+}
+#metadata ul,
+#metadata dl,
+#metadata p {
+ padding: 8px;
+ list-style: none;
+}
+
+#file-metadata ul {
+ padding-left: 28px;
+ list-style-image: url(images/page_green.png);
+}
+
+dl.svninfo {
+ color: #666;
+ margin: 0;
+}
+dl.svninfo dt {
+ font-weight: bold;
+}
+
+ul.link-list li {
+ white-space: nowrap;
+}
+ul.link-list .type {
+ font-size: 8px;
+ text-transform: uppercase;
+ color: white;
+ background: #969696;
+ padding: 2px 4px;
+ -webkit-border-radius: 5px;
+}
+
+/* @end */
+
+
+/* @group Project Metadata Section */
+#project-metadata {
+ margin-top: 3em;
+}
+
+.file #project-metadata {
+ margin-top: 0em;
+}
+
+#project-metadata .section {
+ border: 1px solid #aaa;
+}
+#project-metadata h3.section-header {
+ border-bottom: 1px solid #aaa;
+ position: relative;
+}
+#project-metadata h3.section-header .search-toggle {
+ position: absolute;
+ right: 5px;
+}
+
+
+#project-metadata form {
+ color: #777;
+ background: #ccc;
+ padding: 8px 8px 16px;
+ border-bottom: 1px solid #bbb;
+}
+#project-metadata fieldset {
+ border: 0;
+}
+
+#no-class-search-results {
+ margin: 0 auto 1em;
+ text-align: center;
+ font-size: 14px;
+ font-weight: bold;
+ color: #aaa;
+}
+
+/* @end */
+
+
+/* @group Documentation Section */
+#description {
+ font-size: 100%;
+ color: #333;
+}
+
+#description p {
+ margin: 1em 0.4em;
+}
+
+#description ul {
+ margin-left: 2em;
+}
+#description ul li {
+ line-height: 1.4em;
+}
+
+#description dl,
+#documentation dl {
+ margin: 8px 1.5em;
+ border: 1px solid #ccc;
+}
+#description dl {
+ font-size: 14px;
+}
+
+#description dt,
+#documentation dt {
+ padding: 2px 4px;
+ font-weight: bold;
+ background: #ddd;
+}
+#description dd,
+#documentation dd {
+ padding: 2px 12px;
+}
+#description dd + dt,
+#documentation dd + dt {
+ margin-top: 0.7em;
+}
+
+#documentation .section {
+ font-size: 90%;
+}
+#documentation h3.section-header {
+ margin-top: 2em;
+ padding: 0.75em 0.5em;
+ background-color: #dedede;
+ color: #333;
+ font-size: 150%;
+ border: 1px solid #bbb;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+
+#constants-list > dl,
+#attributes-list > dl {
+ margin: 1em 0 2em;
+ border: 0;
+}
+#constants-list > dl dt,
+#attributes-list > dl dt {
+ padding-left: 0;
+ font-weight: bold;
+ font-family: Monaco, "Andale Mono";
+ background: inherit;
+}
+#constants-list > dl dt a,
+#attributes-list > dl dt a {
+ color: inherit;
+}
+#constants-list > dl dd,
+#attributes-list > dl dd {
+ margin: 0 0 1em 0;
+ padding: 0;
+ color: #666;
+}
+
+/* @group Method Details */
+
+#documentation .method-source-code {
+ display: none;
+}
+
+#documentation .method-detail {
+ margin: 0.5em 0;
+ padding: 0.5em 0;
+ cursor: pointer;
+}
+#documentation .method-detail:hover {
+ background-color: #f1edba;
+}
+#documentation .method-alias {
+ font-style: oblique;
+}
+#documentation .method-heading {
+ position: relative;
+ padding: 2px 4px 0 20px;
+ font-size: 125%;
+ font-weight: bold;
+ color: #333;
+ background: url(images/brick.png) no-repeat left bottom;
+}
+#documentation .method-heading a {
+ color: inherit;
+}
+#documentation .method-click-advice {
+ position: absolute;
+ top: 2px;
+ right: 5px;
+ font-size: 10px;
+ color: #9b9877;
+ visibility: hidden;
+ padding-right: 20px;
+ line-height: 20px;
+ background: url(images/zoom.png) no-repeat right top;
+}
+#documentation .method-detail:hover .method-click-advice {
+ visibility: visible;
+}
+
+#documentation .method-alias .method-heading {
+ color: #666;
+ background: url(images/brick_link.png) no-repeat left bottom;
+}
+
+#documentation .method-description,
+#documentation .aliases {
+ margin: 0 20px;
+ line-height: 1.2em;
+ color: #666;
+}
+#documentation .aliases {
+ padding-top: 4px;
+ font-style: italic;
+ cursor: default;
+}
+#documentation .method-description p {
+ padding: 0;
+}
+#documentation .method-description p + p {
+ margin-bottom: 0.5em;
+}
+
+#documentation .attribute-method-heading {
+ background: url(images/tag_green.png) no-repeat left bottom;
+}
+#documentation #attribute-method-details .method-detail:hover {
+ background-color: transparent;
+ cursor: default;
+}
+#documentation .attribute-access-type {
+ font-size: 60%;
+ text-transform: uppercase;
+ vertical-align: super;
+ padding: 0 2px;
+}
+/* @end */
+
+/* @end */
+
+
+
+/* @group Source Code */
+
+a.source-toggle {
+ font-size: 90%;
+}
+a.source-toggle img {
+
+}
+
+div.method-source-code {
+ background: #262626;
+ color: #efefef;
+ margin: 1em;
+ padding: 0.5em;
+ border: 1px dashed #999;
+ overflow: hidden;
+}
+
+div.method-source-code pre {
+ background: inherit;
+ padding: 0;
+ color: white;
+ overflow: hidden;
+}
+
+/* @group Ruby keyword styles */
+
+.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
+
+.ruby-constant { color: #7fffd4; background: transparent; }
+.ruby-keyword { color: #00ffff; background: transparent; }
+.ruby-ivar { color: #eedd82; background: transparent; }
+.ruby-operator { color: #00ffee; background: transparent; }
+.ruby-identifier { color: #ffdead; background: transparent; }
+.ruby-node { color: #ffa07a; background: transparent; }
+.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
+.ruby-regexp { color: #ffa07a; background: transparent; }
+.ruby-value { color: #7fffd4; background: transparent; }
+
+/* @end */
+/* @end */
+
+
+/* @group File Popup Contents */
+
+.file #metadata,
+.file-popup #metadata {
+}
+
+.file-popup dl {
+ font-size: 80%;
+ padding: 0.75em;
+ background-color: #dedede;
+ color: #333;
+ border: 1px solid #bbb;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+.file dt {
+ font-weight: bold;
+ padding-left: 22px;
+ line-height: 20px;
+ background: url(images/page_white_width.png) no-repeat left top;
+}
+.file dt.modified-date {
+ background: url(images/date.png) no-repeat left top;
+}
+.file dt.requires {
+ background: url(images/plugin.png) no-repeat left top;
+}
+.file dt.scs-url {
+ background: url(images/wrench.png) no-repeat left top;
+}
+
+.file dl dd {
+ margin: 0 0 1em 0;
+}
+.file #metadata dl dd ul {
+ list-style: circle;
+ margin-left: 20px;
+ padding-top: 0;
+}
+.file #metadata dl dd ul li {
+}
+
+
+.file h2 {
+ margin-top: 2em;
+ padding: 0.75em 0.5em;
+ background-color: #dedede;
+ color: #333;
+ font-size: 120%;
+ border: 1px solid #bbb;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+
+/* @end */
+
+
+
+
+/* @group ThickBox Styles */
+#TB_window {
+ font: 12px Arial, Helvetica, sans-serif;
+ color: #333333;
+}
+
+#TB_secondLine {
+ font: 10px Arial, Helvetica, sans-serif;
+ color:#666666;
+}
+
+#TB_window a:link {color: #666666;}
+#TB_window a:visited {color: #666666;}
+#TB_window a:hover {color: #000;}
+#TB_window a:active {color: #666666;}
+#TB_window a:focus{color: #666666;}
+
+#TB_overlay {
+ position: fixed;
+ z-index:100;
+ top: 0px;
+ left: 0px;
+ height:100%;
+ width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(images/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+ background-color:#000;
+ filter:alpha(opacity=75);
+ -moz-opacity: 0.75;
+ opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+ position: absolute;
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+ position: fixed;
+ background: #ffffff;
+ z-index: 102;
+ color:#000000;
+ display:none;
+ border: 4px solid #525252;
+ text-align:left;
+ top:50%;
+ left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+ display:block;
+ margin: 15px 0 0 15px;
+ border-right: 1px solid #ccc;
+ border-bottom: 1px solid #ccc;
+ border-top: 1px solid #666;
+ border-left: 1px solid #666;
+}
+
+#TB_caption{
+ height:25px;
+ padding:7px 30px 10px 25px;
+ float:left;
+}
+
+#TB_closeWindow{
+ height:25px;
+ padding:11px 25px 10px 0;
+ float:right;
+}
+
+#TB_closeAjaxWindow{
+ padding:7px 10px 5px 0;
+ margin-bottom:1px;
+ text-align:right;
+ float:right;
+}
+
+#TB_ajaxWindowTitle{
+ float:left;
+ padding:7px 0 5px 10px;
+ margin-bottom:1px;
+ font-size: 22px;
+}
+
+#TB_title{
+ background-color: #6C8C22;
+ color: #dedede;
+ height:40px;
+}
+#TB_title a {
+ color: white !important;
+ border-bottom: 1px dotted #dedede;
+}
+
+#TB_ajaxContent{
+ clear:both;
+ padding:2px 15px 15px 15px;
+ overflow:auto;
+ text-align:left;
+ line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+ padding:15px;
+}
+
+#TB_ajaxContent p{
+ padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+ position: fixed;
+ display:none;
+ height:13px;
+ width:208px;
+ z-index:103;
+ top: 50%;
+ left: 50%;
+ margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+ z-index:99;
+ position:fixed;
+ top: 0;
+ left: 0;
+ background-color:#fff;
+ border:none;
+ filter:alpha(opacity=0);
+ -moz-opacity: 0;
+ opacity: 0;
+ height:100%;
+ width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+ position: absolute;
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+ clear:both;
+ border:none;
+ margin-bottom:-1px;
+ margin-top:1px;
+ _margin-bottom:1px;
+}
+
+/* @end */
+
+/* @group Debugging Section */
+
+#debugging-toggle {
+ text-align: center;
+}
+#debugging-toggle img {
+ cursor: pointer;
+}
+
+#rdoc-debugging-section-dump {
+ display: none;
+ margin: 0 2em 2em;
+ background: #ccc;
+ border: 1px solid #999;
+}
+
+
+
+/* @end */