From bcbd6f7ee4b0aaaa670198c197f181ac28cb6086 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 16:44:34 +0200 Subject: [PATCH 01/43] initial commit --- Rakefile | 51 +++++++++++++ author.incl | 2 + description.incl | 58 +++++++++++++++ doc/.keep | 0 edit_json.png | Bin 0 -> 55917 bytes footer.incl | 7 ++ header.incl | 11 +++ headline.incl | 1 + index.html | 180 ++++++++++++++++++++++++++++++++++++++++++++++ index.tmpl | 12 ++++ installation.incl | 17 +++++ json.png | Bin 0 -> 5288 bytes license.incl | 5 ++ linkbox.incl | 10 +++ logo.incl | 1 + meta.json | 19 +++++ screenshots.html | 107 +++++++++++++++++++++++++++ screenshots.tmpl | 21 ++++++ style.css | 93 ++++++++++++++++++++++++ usage.incl | 56 +++++++++++++++ 20 files changed, 651 insertions(+) create mode 100644 Rakefile create mode 100644 author.incl create mode 100644 description.incl create mode 100644 doc/.keep create mode 100644 edit_json.png create mode 100644 footer.incl create mode 100644 header.incl create mode 100644 headline.incl create mode 100644 index.html create mode 100644 index.tmpl create mode 100644 installation.incl create mode 100644 json.png create mode 100644 license.incl create mode 100644 linkbox.incl create mode 100644 logo.incl create mode 100644 meta.json create mode 100644 screenshots.html create mode 100644 screenshots.tmpl create mode 100644 style.css create mode 100644 usage.incl diff --git a/Rakefile b/Rakefile new file mode 100644 index 00000000..b3e03ac1 --- /dev/null +++ b/Rakefile @@ -0,0 +1,51 @@ +require 'flott' +require 'json' +include Flott + +$meta = JSON.parse(File.read('meta.json')) + +task :default => [:doc, :homepage] + +desc "Create the project documentation." +task :doc do + if File.directory?('doc') + sh 'git rm -r doc' + end + sh 'git commit -m "deleted documentation" doc' + sh 'git checkout master' + rm_rf 'doc' + sh 'rake doc' + sh 'git checkout gh-pages' + sh 'git add doc' + sh 'git commit -m "generated documentation" doc' +end + +desc "Compile the homepage." +task :compile_homepage do + env = Environment.new + env.update($meta) + for tmpl in Dir['*.tmpl'] + ext = File.extname(tmpl) + out_name = tmpl.sub(/#{ext}$/, '.html') + warn "Compiling '#{tmpl}' -> '#{out_name}'." + File.open(out_name, 'w') do |o| + env.output = o + fp = Parser.from_filename(tmpl) + fp.evaluate(env) + end + end +end + +desc "Check the homepage with tidy." +task :tidy_homepage do + sh "tidy -e *index.html" +end + +desc "Compile and check the homepage." +task :homepage => [ :compile_homepage, :tidy_homepage ] + +desc "Publish the homepage to rubyforge." +task :publish_rubyforge => :homepage do + sh "scp -r rubyforge_index.html rubyforge.org:/var/www/gforge-projects/#{$meta['project_unixname']}/index.html" +end + # vim: set et sw=2 ts=2: diff --git a/author.incl b/author.incl new file mode 100644 index 00000000..eed563c0 --- /dev/null +++ b/author.incl @@ -0,0 +1,2 @@ +

Author

+[=@author] <[=@author_email]> diff --git a/description.incl b/description.incl new file mode 100644 index 00000000..762be2a3 --- /dev/null +++ b/description.incl @@ -0,0 +1,58 @@ +

Description

+

+This is a implementation of the JSON specification according to +RFC 4627. You can think of it as a low fat +alternative to XML, if you want to store data to disk or transmit it over a +network rather than use a verbose markup language. +

+

+Starting from version 1.0.0 on there +will be two variants available: +

+ +

+Both variants of the JSON generator escape all non-ASCII an 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 JSON text 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't expect UTF-8 encoded texts. On the negative side this +may lead to a bit longer strings than necessarry. +

+

+It's also easy to extend JSON data types for arbitrary Ruby classes (including +your own) like this: +

+
+class Range
+  def to_json(*a)
+    {
+      'json_class'   => self.class.name,
+      'data'         => \[ first, last, exclude_end? ]
+    }.to_json(*a)
+  end
+
+  def self.json_create(o)
+    new(*o\['data'])
+  end
+end
+
+

+Now Range instances can be serialized/deserialized: +

+
+JSON.parse((1..10).to_json) == (1..10)
+
+

+A lot of additional information about JSON can be found Douglas Crockford's JSON +site. +

diff --git a/doc/.keep b/doc/.keep new file mode 100644 index 00000000..e69de29b diff --git a/edit_json.png b/edit_json.png new file mode 100644 index 0000000000000000000000000000000000000000..cd1fa8aa9df0771910d9414fdb3b78e54ba63573 GIT binary patch literal 55917 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

=%AXmfg^nFU^W@ecn^>#%a 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 literal 0 HcmV?d00001 diff --git a/footer.incl b/footer.incl new file mode 100644 index 00000000..f6abde4b --- /dev/null +++ b/footer.incl @@ -0,0 +1,7 @@ +

+ Valid XHTML 1.0 Transitional +

+ + diff --git a/header.incl b/header.incl new file mode 100644 index 00000000..b34c8cd8 --- /dev/null +++ b/header.incl @@ -0,0 +1,11 @@ + + + + + + [=@project_name] + + + diff --git a/headline.incl b/headline.incl new file mode 100644 index 00000000..d2e0f505 --- /dev/null +++ b/headline.incl @@ -0,0 +1 @@ +

[=@project_unixname] – [=@project_name]

diff --git a/index.html b/index.html new file mode 100644 index 00000000..b6e65a83 --- /dev/null +++ b/index.html @@ -0,0 +1,180 @@ + + + + + + JSON implementation for Ruby + + + + + + + + +
+

json – JSON implementation for Ruby

+ +

Description

+

+This is a implementation of the JSON specification according to +RFC 4627. You can think of it as a low fat +alternative to XML, if you want to store data to disk or transmit it over a +network rather than use a verbose markup language. +

+

+Starting from version 1.0.0 on there +will be two variants available: +

+
    +
  • A pure ruby variant, that relies on the iconv and the stringscan + extensions, which are both part of the ruby standard library.
  • +
  • The quite a bit faster (see the documentation) 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.
  • +
+

+Both variants of the JSON generator escape all non-ASCII an 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 JSON text 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't expect UTF-8 encoded texts. On the negative side this +may lead to a bit longer strings than necessarry. +

+

+It's also easy to extend JSON data types for arbitrary Ruby classes (including +your own) like this: +

+
+class Range
+  def to_json(*a)
+    {
+      'json_class'   => self.class.name,
+      'data'         => [ first, last, exclude_end? ]
+    }.to_json(*a)
+  end
+
+  def self.json_create(o)
+    new(*o['data'])
+  end
+end
+
+

+Now Range instances can be serialized/deserialized: +

+
+JSON.parse((1..10).to_json) == (1..10)
+
+

+A lot of additional information about JSON can be found Douglas Crockford's JSON +site. +

+ +

Installation

+

+The library can be installed via rubygems: +

+
+# gem install json
+
+

+If you have to use the pure variant, you can use: +

+
+# gem install json_pure
+
+

+The gem and the source archive can also be downloaded directly from rubyforge.org. +

+ +

Usage

+

+If you require JSON like this: +

+
+require 'json'
+
+

+JSON first tries to load the extension variant. If this fails, the pure variant +is loaded and used. +

+

+To determine, which variant is active you can use the follwing methods: +

+
    +
  • Ext variant: +
    +[ JSON.parser, JSON.generator ] # => [JSON::Ext::Parser, JSON::Ext::Generator]
    +
    +
  • +
  • Pure variant: +
    +[ JSON.parser, JSON.generator ] # => [JSON::Pure::Parser, JSON::Pure::Generator]
    +
    +
  • +
+

+If you want to enforce loading of a special variant, use +

+
+require 'json/ext'
+
+

+to load the extension variant. Or use +

+
+require 'json/pure'
+
+

+to use the pure variant. +

+

+You can choose to load a set of common additions to ruby core's objects if you +

+
+  require 'json/add/core'
+
+

+ To get the best compatibility to rails' JSON implementation, you can +

+
+    require 'json/add/rails'
+
+

+ Both of the additions attempt to require 'json' (like above) first, if it has not been required yet. +

+ +

Author

+Florian Frank <flori@ping.de> + +

License

+

+This is software is distributed under the same license as Ruby itself. See http://www.ruby-lang.org/en/LICENSE.txt. +

+ +
+

+ Valid XHTML 1.0 Transitional +

+ + + diff --git a/index.tmpl b/index.tmpl new file mode 100644 index 00000000..10e3a114 --- /dev/null +++ b/index.tmpl @@ -0,0 +1,12 @@ +[^header.incl] +[^linkbox.incl] +[^logo.incl] +
+[^headline.incl] +[^description.incl] +[^installation.incl] +[^usage.incl] +[^author.incl] +[^license.incl] +
+[^footer.incl] diff --git a/installation.incl b/installation.incl new file mode 100644 index 00000000..ad3e55c8 --- /dev/null +++ b/installation.incl @@ -0,0 +1,17 @@ +

Installation

+

+The library can be installed via rubygems: +

+
+# gem install [=@project_unixname]
+
+

+If you have to use the pure variant, you can use: +

+
+# gem install [=@project_unixname]_pure
+
+

+The gem and the source archive can also be downloaded directly from rubyforge.org. +

diff --git a/json.png b/json.png new file mode 100644 index 0000000000000000000000000000000000000000..09e8a71c9c326b7a6c226755240e277c7a734805 GIT binary patch literal 5288 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 +

+This is software is distributed under the same license as Ruby itself. See http://www.ruby-lang.org/en/LICENSE.txt. +

diff --git a/linkbox.incl b/linkbox.incl new file mode 100644 index 00000000..415c8863 --- /dev/null +++ b/linkbox.incl @@ -0,0 +1,10 @@ + diff --git a/logo.incl b/logo.incl new file mode 100644 index 00000000..40255bff --- /dev/null +++ b/logo.incl @@ -0,0 +1 @@ + diff --git a/meta.json b/meta.json new file mode 100644 index 00000000..10f4a678 --- /dev/null +++ b/meta.json @@ -0,0 +1,19 @@ +{ + "author_email":"flori@ping.de", + "author":"Florian Frank", + "documentation_url":"doc/index.html", + "download_url":"http://rubyforge.org/frs/?group_id=953", + "github_url": "http:\/\/github.com\/flori\/json\/tree\/master", + "project_name":"JSON implementation for Ruby", + "project_unixname":"json", + "project_url":"http://rubyforge.org/projects/json", + "screenshots":["edit_json.png", + "diagrams/JSON_array.png", + "diagrams/JSON_float.png", + "diagrams/JSON_integer.png", + "diagrams/JSON_object.png", + "diagrams/JSON.png", + "diagrams/JSON_string.png", + "diagrams/JSON_value.png" + ] +} diff --git a/screenshots.html b/screenshots.html new file mode 100644 index 00000000..a1897998 --- /dev/null +++ b/screenshots.html @@ -0,0 +1,107 @@ + + + + + + JSON implementation for Ruby + + + + + + + + +
+

json – JSON implementation for Ruby

+ +

Screenshots

+

Here are some Screenshots from the graphical JSON Editor + edit_json.rb, that is included in the library package. To run it, a + working installation of Ruby GTK2 is necessary.

+ +
+ + Screenshot #1 + +
+ Screenshot #1 (Click to enlarge) +
+ +
+ + Screenshot #2 + +
+ Screenshot #2 (Click to enlarge) +
+ +
+ + Screenshot #3 + +
+ Screenshot #3 (Click to enlarge) +
+ +
+ + Screenshot #4 + +
+ Screenshot #4 (Click to enlarge) +
+ +
+ + Screenshot #5 + +
+ Screenshot #5 (Click to enlarge) +
+ +
+ + Screenshot #6 + +
+ Screenshot #6 (Click to enlarge) +
+ +
+ + Screenshot #7 + +
+ Screenshot #7 (Click to enlarge) +
+ +
+ + Screenshot #8 + +
+ Screenshot #8 (Click to enlarge) +
+ +
+

+ Valid XHTML 1.0 Transitional +

+ + + diff --git a/screenshots.tmpl b/screenshots.tmpl new file mode 100644 index 00000000..d688c8bc --- /dev/null +++ b/screenshots.tmpl @@ -0,0 +1,21 @@ +[^header.incl] +[^linkbox.incl] +[^logo.incl] +
+[^headline.incl] +

Screenshots

+

Here are some Screenshots from the graphical JSON Editor + edit_json.rb, that is included in the library package. To run it, a + working installation of Ruby GTK2 is necessary.

+ [@screenshots.each_with_index do |s,i|] +
+ + Screenshot #[=i + 1] + +
+ Screenshot #[=i + 1] (Click to enlarge) +
+ [end] +
+[^footer.incl] diff --git a/style.css b/style.css new file mode 100644 index 00000000..ef0eaa43 --- /dev/null +++ b/style.css @@ -0,0 +1,93 @@ +body { + color: black; + background-color: white; + font-family: 'Verdana', 'Arial', sans-serif; + padding: 15px; + margin: 0; + font-size: 100.01%; +} +img { + border: 0; +} +pre { + margin: 25px; + background-color: silver; + color: navy; + border: 1px dashed black; + padding: 5px; +} +a { + color: #af0000; + background-color: white; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +img#logo { + float: left; +} +p.valid { + float: right; +} +ul#linkbox { + font-size: 12px; + float: right; + width: 150px; + margin: 0; + padding: 0; + border: 1px solid silver; +} +ul#linkbox li { + list-style: none; + margin: 0; + padding: 2px; +} +ul#linkbox a { + display: block; + padding: 5px; + text-decoration: none; + font-weight: bold; +} +ul#linkbox a:link { + color: white; + text-decoration: none; + background-color: #af0000; +} +ul#linkbox a:visited { + color: white; + text-decoration: none; + background-color: #af0000; +} +ul#linkbox a:hover { + color: white; + text-decoration: underline; + background-color: #af0000; +} +ul#linkbox a:active { + color: white; + text-decoration: underline; + background-color: #af0000; +} +div#content { + margin-right: 150px; + padding: 0 10px; +} +div#content h1 { + color: #af0000; + background-color: white; + font-size: 20px; + padding: 18px 0 18px 0; + margin: 0 90px; +} +div#content h2 { + font-size: 16px; + margin-bottom: 16px; +} +div#content p { + font-size: 14px; + margin-top: 14px; +} +span.caption { + font-size:12px; +} diff --git a/usage.incl b/usage.incl new file mode 100644 index 00000000..14973464 --- /dev/null +++ b/usage.incl @@ -0,0 +1,56 @@ +

Usage

+

+If you require JSON like this: +

+
+require 'json'
+
+

+JSON first tries to load the extension variant. If this fails, the pure variant +is loaded and used. +

+

+To determine, which variant is active you can use the follwing methods: +

+
    +
  • Ext variant: +
    +\[ JSON.parser, JSON.generator ] # => \[JSON::Ext::Parser, JSON::Ext::Generator]
    +
    +
  • +
  • Pure variant: +
    +\[ JSON.parser, JSON.generator ] # => \[JSON::Pure::Parser, JSON::Pure::Generator]
    +
    +
  • +
+

+If you want to enforce loading of a special variant, use +

+
+require 'json/ext'
+
+

+to load the extension variant. Or use +

+
+require 'json/pure'
+
+

+to use the pure variant. +

+

+You can choose to load a set of common additions to ruby core's objects if you +

+
+  require 'json/add/core'
+
+

+ To get the best compatibility to rails' JSON implementation, you can +

+
+    require 'json/add/rails'
+
+

+ Both of the additions attempt to require 'json' (like above) first, if it has not been required yet. +

From d67fc23b150b60d4ce38f2f171d72035fc505976 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 16:44:34 +0200 Subject: [PATCH 02/43] initial commit --- Rakefile | 51 +++++++++++++ author.incl | 2 + description.incl | 58 +++++++++++++++ diagrams/.keep | 0 doc/.keep | 0 edit_json.png | Bin 0 -> 55917 bytes footer.incl | 7 ++ header.incl | 11 +++ headline.incl | 1 + index.html | 180 ++++++++++++++++++++++++++++++++++++++++++++++ index.tmpl | 12 ++++ installation.incl | 17 +++++ json.png | Bin 0 -> 5288 bytes license.incl | 5 ++ linkbox.incl | 10 +++ logo.incl | 1 + meta.json | 19 +++++ screenshots.html | 107 +++++++++++++++++++++++++++ screenshots.tmpl | 21 ++++++ style.css | 93 ++++++++++++++++++++++++ usage.incl | 56 +++++++++++++++ 21 files changed, 651 insertions(+) create mode 100644 Rakefile create mode 100644 author.incl create mode 100644 description.incl create mode 100644 diagrams/.keep create mode 100644 doc/.keep create mode 100644 edit_json.png create mode 100644 footer.incl create mode 100644 header.incl create mode 100644 headline.incl create mode 100644 index.html create mode 100644 index.tmpl create mode 100644 installation.incl create mode 100644 json.png create mode 100644 license.incl create mode 100644 linkbox.incl create mode 100644 logo.incl create mode 100644 meta.json create mode 100644 screenshots.html create mode 100644 screenshots.tmpl create mode 100644 style.css create mode 100644 usage.incl diff --git a/Rakefile b/Rakefile new file mode 100644 index 00000000..b3e03ac1 --- /dev/null +++ b/Rakefile @@ -0,0 +1,51 @@ +require 'flott' +require 'json' +include Flott + +$meta = JSON.parse(File.read('meta.json')) + +task :default => [:doc, :homepage] + +desc "Create the project documentation." +task :doc do + if File.directory?('doc') + sh 'git rm -r doc' + end + sh 'git commit -m "deleted documentation" doc' + sh 'git checkout master' + rm_rf 'doc' + sh 'rake doc' + sh 'git checkout gh-pages' + sh 'git add doc' + sh 'git commit -m "generated documentation" doc' +end + +desc "Compile the homepage." +task :compile_homepage do + env = Environment.new + env.update($meta) + for tmpl in Dir['*.tmpl'] + ext = File.extname(tmpl) + out_name = tmpl.sub(/#{ext}$/, '.html') + warn "Compiling '#{tmpl}' -> '#{out_name}'." + File.open(out_name, 'w') do |o| + env.output = o + fp = Parser.from_filename(tmpl) + fp.evaluate(env) + end + end +end + +desc "Check the homepage with tidy." +task :tidy_homepage do + sh "tidy -e *index.html" +end + +desc "Compile and check the homepage." +task :homepage => [ :compile_homepage, :tidy_homepage ] + +desc "Publish the homepage to rubyforge." +task :publish_rubyforge => :homepage do + sh "scp -r rubyforge_index.html rubyforge.org:/var/www/gforge-projects/#{$meta['project_unixname']}/index.html" +end + # vim: set et sw=2 ts=2: diff --git a/author.incl b/author.incl new file mode 100644 index 00000000..eed563c0 --- /dev/null +++ b/author.incl @@ -0,0 +1,2 @@ +

Author

+[=@author] <[=@author_email]> diff --git a/description.incl b/description.incl new file mode 100644 index 00000000..762be2a3 --- /dev/null +++ b/description.incl @@ -0,0 +1,58 @@ +

Description

+

+This is a implementation of the JSON specification according to +RFC 4627. You can think of it as a low fat +alternative to XML, if you want to store data to disk or transmit it over a +network rather than use a verbose markup language. +

+

+Starting from version 1.0.0 on there +will be two variants available: +

+
    +
  • A pure ruby variant, that relies on the iconv and the stringscan + extensions, which are both part of the ruby standard library.
  • +
  • The quite a bit faster (see the documentation) 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.
  • +
+

+Both variants of the JSON generator escape all non-ASCII an 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 JSON text 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't expect UTF-8 encoded texts. On the negative side this +may lead to a bit longer strings than necessarry. +

+

+It's also easy to extend JSON data types for arbitrary Ruby classes (including +your own) like this: +

+
+class Range
+  def to_json(*a)
+    {
+      'json_class'   => self.class.name,
+      'data'         => \[ first, last, exclude_end? ]
+    }.to_json(*a)
+  end
+
+  def self.json_create(o)
+    new(*o\['data'])
+  end
+end
+
+

+Now Range instances can be serialized/deserialized: +

+
+JSON.parse((1..10).to_json) == (1..10)
+
+

+A lot of additional information about JSON can be found Douglas Crockford's JSON +site. +

diff --git a/diagrams/.keep b/diagrams/.keep new file mode 100644 index 00000000..e69de29b diff --git a/doc/.keep b/doc/.keep new file mode 100644 index 00000000..e69de29b diff --git a/edit_json.png b/edit_json.png new file mode 100644 index 0000000000000000000000000000000000000000..cd1fa8aa9df0771910d9414fdb3b78e54ba63573 GIT binary patch literal 55917 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

=%AXmfg^nFU^W@ecn^>#%a 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 literal 0 HcmV?d00001 diff --git a/footer.incl b/footer.incl new file mode 100644 index 00000000..f6abde4b --- /dev/null +++ b/footer.incl @@ -0,0 +1,7 @@ +

+ Valid XHTML 1.0 Transitional +

+ + diff --git a/header.incl b/header.incl new file mode 100644 index 00000000..b34c8cd8 --- /dev/null +++ b/header.incl @@ -0,0 +1,11 @@ + + + + + + [=@project_name] + + + diff --git a/headline.incl b/headline.incl new file mode 100644 index 00000000..d2e0f505 --- /dev/null +++ b/headline.incl @@ -0,0 +1 @@ +

[=@project_unixname] – [=@project_name]

diff --git a/index.html b/index.html new file mode 100644 index 00000000..b6e65a83 --- /dev/null +++ b/index.html @@ -0,0 +1,180 @@ + + + + + + JSON implementation for Ruby + + + + + + + + +
+

json – JSON implementation for Ruby

+ +

Description

+

+This is a implementation of the JSON specification according to +RFC 4627. You can think of it as a low fat +alternative to XML, if you want to store data to disk or transmit it over a +network rather than use a verbose markup language. +

+

+Starting from version 1.0.0 on there +will be two variants available: +

+
    +
  • A pure ruby variant, that relies on the iconv and the stringscan + extensions, which are both part of the ruby standard library.
  • +
  • The quite a bit faster (see the documentation) 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.
  • +
+

+Both variants of the JSON generator escape all non-ASCII an 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 JSON text 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't expect UTF-8 encoded texts. On the negative side this +may lead to a bit longer strings than necessarry. +

+

+It's also easy to extend JSON data types for arbitrary Ruby classes (including +your own) like this: +

+
+class Range
+  def to_json(*a)
+    {
+      'json_class'   => self.class.name,
+      'data'         => [ first, last, exclude_end? ]
+    }.to_json(*a)
+  end
+
+  def self.json_create(o)
+    new(*o['data'])
+  end
+end
+
+

+Now Range instances can be serialized/deserialized: +

+
+JSON.parse((1..10).to_json) == (1..10)
+
+

+A lot of additional information about JSON can be found Douglas Crockford's JSON +site. +

+ +

Installation

+

+The library can be installed via rubygems: +

+
+# gem install json
+
+

+If you have to use the pure variant, you can use: +

+
+# gem install json_pure
+
+

+The gem and the source archive can also be downloaded directly from rubyforge.org. +

+ +

Usage

+

+If you require JSON like this: +

+
+require 'json'
+
+

+JSON first tries to load the extension variant. If this fails, the pure variant +is loaded and used. +

+

+To determine, which variant is active you can use the follwing methods: +

+
    +
  • Ext variant: +
    +[ JSON.parser, JSON.generator ] # => [JSON::Ext::Parser, JSON::Ext::Generator]
    +
    +
  • +
  • Pure variant: +
    +[ JSON.parser, JSON.generator ] # => [JSON::Pure::Parser, JSON::Pure::Generator]
    +
    +
  • +
+

+If you want to enforce loading of a special variant, use +

+
+require 'json/ext'
+
+

+to load the extension variant. Or use +

+
+require 'json/pure'
+
+

+to use the pure variant. +

+

+You can choose to load a set of common additions to ruby core's objects if you +

+
+  require 'json/add/core'
+
+

+ To get the best compatibility to rails' JSON implementation, you can +

+
+    require 'json/add/rails'
+
+

+ Both of the additions attempt to require 'json' (like above) first, if it has not been required yet. +

+ +

Author

+Florian Frank <flori@ping.de> + +

License

+

+This is software is distributed under the same license as Ruby itself. See http://www.ruby-lang.org/en/LICENSE.txt. +

+ +
+

+ Valid XHTML 1.0 Transitional +

+ + + diff --git a/index.tmpl b/index.tmpl new file mode 100644 index 00000000..10e3a114 --- /dev/null +++ b/index.tmpl @@ -0,0 +1,12 @@ +[^header.incl] +[^linkbox.incl] +[^logo.incl] +
+[^headline.incl] +[^description.incl] +[^installation.incl] +[^usage.incl] +[^author.incl] +[^license.incl] +
+[^footer.incl] diff --git a/installation.incl b/installation.incl new file mode 100644 index 00000000..ad3e55c8 --- /dev/null +++ b/installation.incl @@ -0,0 +1,17 @@ +

Installation

+

+The library can be installed via rubygems: +

+
+# gem install [=@project_unixname]
+
+

+If you have to use the pure variant, you can use: +

+
+# gem install [=@project_unixname]_pure
+
+

+The gem and the source archive can also be downloaded directly from rubyforge.org. +

diff --git a/json.png b/json.png new file mode 100644 index 0000000000000000000000000000000000000000..09e8a71c9c326b7a6c226755240e277c7a734805 GIT binary patch literal 5288 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 +

+This is software is distributed under the same license as Ruby itself. See http://www.ruby-lang.org/en/LICENSE.txt. +

diff --git a/linkbox.incl b/linkbox.incl new file mode 100644 index 00000000..415c8863 --- /dev/null +++ b/linkbox.incl @@ -0,0 +1,10 @@ + diff --git a/logo.incl b/logo.incl new file mode 100644 index 00000000..40255bff --- /dev/null +++ b/logo.incl @@ -0,0 +1 @@ + diff --git a/meta.json b/meta.json new file mode 100644 index 00000000..10f4a678 --- /dev/null +++ b/meta.json @@ -0,0 +1,19 @@ +{ + "author_email":"flori@ping.de", + "author":"Florian Frank", + "documentation_url":"doc/index.html", + "download_url":"http://rubyforge.org/frs/?group_id=953", + "github_url": "http:\/\/github.com\/flori\/json\/tree\/master", + "project_name":"JSON implementation for Ruby", + "project_unixname":"json", + "project_url":"http://rubyforge.org/projects/json", + "screenshots":["edit_json.png", + "diagrams/JSON_array.png", + "diagrams/JSON_float.png", + "diagrams/JSON_integer.png", + "diagrams/JSON_object.png", + "diagrams/JSON.png", + "diagrams/JSON_string.png", + "diagrams/JSON_value.png" + ] +} diff --git a/screenshots.html b/screenshots.html new file mode 100644 index 00000000..a1897998 --- /dev/null +++ b/screenshots.html @@ -0,0 +1,107 @@ + + + + + + JSON implementation for Ruby + + + + + + + + +
+

json – JSON implementation for Ruby

+ +

Screenshots

+

Here are some Screenshots from the graphical JSON Editor + edit_json.rb, that is included in the library package. To run it, a + working installation of Ruby GTK2 is necessary.

+ +
+ + Screenshot #1 + +
+ Screenshot #1 (Click to enlarge) +
+ +
+ + Screenshot #2 + +
+ Screenshot #2 (Click to enlarge) +
+ +
+ + Screenshot #3 + +
+ Screenshot #3 (Click to enlarge) +
+ +
+ + Screenshot #4 + +
+ Screenshot #4 (Click to enlarge) +
+ +
+ + Screenshot #5 + +
+ Screenshot #5 (Click to enlarge) +
+ +
+ + Screenshot #6 + +
+ Screenshot #6 (Click to enlarge) +
+ +
+ + Screenshot #7 + +
+ Screenshot #7 (Click to enlarge) +
+ +
+ + Screenshot #8 + +
+ Screenshot #8 (Click to enlarge) +
+ +
+

+ Valid XHTML 1.0 Transitional +

+ + + diff --git a/screenshots.tmpl b/screenshots.tmpl new file mode 100644 index 00000000..d688c8bc --- /dev/null +++ b/screenshots.tmpl @@ -0,0 +1,21 @@ +[^header.incl] +[^linkbox.incl] +[^logo.incl] +
+[^headline.incl] +

Screenshots

+

Here are some Screenshots from the graphical JSON Editor + edit_json.rb, that is included in the library package. To run it, a + working installation of Ruby GTK2 is necessary.

+ [@screenshots.each_with_index do |s,i|] +
+ + Screenshot #[=i + 1] + +
+ Screenshot #[=i + 1] (Click to enlarge) +
+ [end] +
+[^footer.incl] diff --git a/style.css b/style.css new file mode 100644 index 00000000..ef0eaa43 --- /dev/null +++ b/style.css @@ -0,0 +1,93 @@ +body { + color: black; + background-color: white; + font-family: 'Verdana', 'Arial', sans-serif; + padding: 15px; + margin: 0; + font-size: 100.01%; +} +img { + border: 0; +} +pre { + margin: 25px; + background-color: silver; + color: navy; + border: 1px dashed black; + padding: 5px; +} +a { + color: #af0000; + background-color: white; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +img#logo { + float: left; +} +p.valid { + float: right; +} +ul#linkbox { + font-size: 12px; + float: right; + width: 150px; + margin: 0; + padding: 0; + border: 1px solid silver; +} +ul#linkbox li { + list-style: none; + margin: 0; + padding: 2px; +} +ul#linkbox a { + display: block; + padding: 5px; + text-decoration: none; + font-weight: bold; +} +ul#linkbox a:link { + color: white; + text-decoration: none; + background-color: #af0000; +} +ul#linkbox a:visited { + color: white; + text-decoration: none; + background-color: #af0000; +} +ul#linkbox a:hover { + color: white; + text-decoration: underline; + background-color: #af0000; +} +ul#linkbox a:active { + color: white; + text-decoration: underline; + background-color: #af0000; +} +div#content { + margin-right: 150px; + padding: 0 10px; +} +div#content h1 { + color: #af0000; + background-color: white; + font-size: 20px; + padding: 18px 0 18px 0; + margin: 0 90px; +} +div#content h2 { + font-size: 16px; + margin-bottom: 16px; +} +div#content p { + font-size: 14px; + margin-top: 14px; +} +span.caption { + font-size:12px; +} diff --git a/usage.incl b/usage.incl new file mode 100644 index 00000000..14973464 --- /dev/null +++ b/usage.incl @@ -0,0 +1,56 @@ +

Usage

+

+If you require JSON like this: +

+
+require 'json'
+
+

+JSON first tries to load the extension variant. If this fails, the pure variant +is loaded and used. +

+

+To determine, which variant is active you can use the follwing methods: +

+
    +
  • Ext variant: +
    +\[ JSON.parser, JSON.generator ] # => \[JSON::Ext::Parser, JSON::Ext::Generator]
    +
    +
  • +
  • Pure variant: +
    +\[ JSON.parser, JSON.generator ] # => \[JSON::Pure::Parser, JSON::Pure::Generator]
    +
    +
  • +
+

+If you want to enforce loading of a special variant, use +

+
+require 'json/ext'
+
+

+to load the extension variant. Or use +

+
+require 'json/pure'
+
+

+to use the pure variant. +

+

+You can choose to load a set of common additions to ruby core's objects if you +

+
+  require 'json/add/core'
+
+

+ To get the best compatibility to rails' JSON implementation, you can +

+
+    require 'json/add/rails'
+
+

+ Both of the additions attempt to require 'json' (like above) first, if it has not been required yet. +

From c4a71df2605f02ce9442d692302793e259dcd0be Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 16:49:37 +0200 Subject: [PATCH 03/43] made new png diagrams --- diagrams/JSON.png | Bin 0 -> 87665 bytes diagrams/JSON_array.png | Bin 0 -> 190503 bytes diagrams/JSON_float.png | Bin 0 -> 77142 bytes diagrams/JSON_integer.png | Bin 0 -> 35954 bytes diagrams/JSON_object.png | Bin 0 -> 270231 bytes diagrams/JSON_string.png | Bin 0 -> 53122 bytes diagrams/JSON_value.png | Bin 0 -> 153207 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 diagrams/JSON.png create mode 100644 diagrams/JSON_array.png create mode 100644 diagrams/JSON_float.png create mode 100644 diagrams/JSON_integer.png create mode 100644 diagrams/JSON_object.png create mode 100644 diagrams/JSON_string.png create mode 100644 diagrams/JSON_value.png diff --git a/diagrams/JSON.png b/diagrams/JSON.png new file mode 100644 index 0000000000000000000000000000000000000000..5b92e6b3ecf591c0e55068cba1064f51465217e3 GIT binary patch literal 87665 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

7tn^nmf-dl&Ev<{5#5@CL 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 literal 0 HcmV?d00001 diff --git a/diagrams/JSON_array.png b/diagrams/JSON_array.png new file mode 100644 index 0000000000000000000000000000000000000000..c4626a11115bd39771f3984e38399da89c7283d4 GIT binary patch literal 190503 zcma&O2RxQ-{|BsHN<%{tElCt5qX>ma64`sD?7hioNGX(tR95yLS=o}LlD&6QHf3hM z-=pWb@AQA(&*yzT<4!l%bzaB$JAS|KI?g-N7sRM2X(=fvD5%8GipWqA{3kd!@*xGqZVGXc({lDN23if29?Q?n|FAmtVYi{m`h%aZ zFWau-9d=#&iT=vZvMd*(l%)&={4Wb!zFZZ2$J5{UxNi891Bw|~C8{^I)MD_LZN zJFYBfj+JYE_H-Ji8=X0^-h1D$Q@l+8T`~`i(cy>1I?1cah5YyH#)<9p|NNQ!^Ug}{ zKi>x5557kA=Ue72`dZ8Wd`r24w&BlrZbH}o`c>)w-@ob>;D0`XHLsc(s4Yuw#- zxN7Q0*VbLT*v-s_pMTC)!QTw&pOkKRdT86-;+~EFzCgj;TV0N5gX)N;OpC6qdiDLRcYjkRlY_iT7{@IbDrZl5^u3>L_z6hT7 ztD{+?DyjMwW&901w63|yZk3By*?U2eZGoie04QYuz1T1K>l;{ROh&J&g*2QIvjK6T2i z@*+j{%SErZh2!GIi@sq=Nk{(ob3E|#i;Rk5mh|U1Ge1Ay*Or@I`QY#0-rmuWe93XN zjAy_2i4!NzUAUkiBy{~kkicORz5%o2Fm+#x`UL-7#g{q{==2 zF1Fjuol@PbFXagd2`sAVaZ8sj-Lh?4#ODA$%?t){X7RK|b4J+2+9^thwuK7+d6~?*>G6J2Oj}tM-d9#$ zOf#&N>8%Ry{`M^bH=)0$GL+YOI@PcyDrArFE&Y*>LQ6}X4Xi`zoJmXmc@Z}uCRSF7 z2M-=RJErF?BqYRXKcdC|>+3^HE351)16Tkqz0W((h>3lyuUE9Nuo!s%j{okWk1c&W zEG#TaK2~A6%SVvYq=_@lq_H4z`Lnfag=-Cq~{QZwJBDM|YV zw^>`Rn zT1JbmiQpQ(G&Ul6~^w1HnQ6_mtWm9wF&B~PLo5AgMxx; z>v!>5M=8W9h1^)R;X`R@X5`C6Aad3Q3*(ar1wF{@%TNszZ<1qJ~~P(UVcgQviGhWjF3A1( zQrz9yxrd#d{nyk~l&BZ&&mTWtf4eZ4pq_2`>FH75d0v4WyWzI<*|P=ef8Dk)rDUBC zA3kKwet-06OT1FDkWqa?Ew0^Wpy8;vOsVhw?!m#scv%N~`}ajf!X6uT)djiEN8h`* z4(+8EyUfzsS`NGP`t|EIsJs=cR>eAw_x+rltZ&P8vgxhbZ!_3b8|AaM#kW)^S?S*T zKeg53qmp47Z`u8!H##z~YM}8I8Yj!vgEAsz&$wizrSH>n8#8NaYCdL>?~CaF`u%(V z`v?1)@?G<}jT?e*-dsM|lqRwN+#_i}HubLq193hA(`Q{=T$-}&5(5P2&AGG8;F=#)1jjtjxk`E{<)@N%hd@X(WjL$CN%a<=GcR_JqUfY2v_WaqO z3H2+D-4_?Gp4IoywYN9zdlVR$aQpUZukA;Lwz9}2Dd*yXY1D!}SR=v86s1qmcdDR&AJ;+r9`%a-f&pFMeU!mw(z3A>tp8@*C zt?niBi}9h>J{oonIV|}WI=a|1cenM1`Uv>O#>Q4AGm6W{$W^}cqN|Np2x(5$0pZWKq&NmC5G2 z7SAdr|3+hl$O{3ft_v|zwB z)VP*CCm0*j=-1C~_dJKWjQP14qn1pIzUGWXYHI3x-pg2z_@Ad-w=QQWyQ{<}*8azr z70-+$1{Oi8IQ`ErPCPq$>6Svg%6{z9(5{vT3-got=OiWNu^_2N^=#^z`xCMYnd)uTkL8dAqtc>Y^}^#?SF_c~jE_fQ?7~{?SuY_FRTF z?|W|l^@+7HvZu%EHOG4+gJ|iy6Y%*iJUk#(*Poc50BA!laqQEva(z@ifqNG&c<1Eg zq&kd#6ROO4vUmg94Ys_tqCH_5*5ij(=+LJgX6~bgHO%}I z4VOqG2QbveCAtF{w2idh*dU-^!pQS((cL|@1TeYm=~3ZLn>JaRPuZonk>zo7qi~*R z)DsoEwv~XkpF{m`zPA5L`~w)0ZVcxyXb@mRu=+*g7+f!@h@YdQUf$PTPb^|`r-c3yKj$)vAoD?4S^4MKSgHemOVDwlo&Vk)W;bj` zGBYvCQXS$?SbgiksPXjn&U@)_Se)r$DccUi+L-<5nt*yuIopOb7w-~Et%dnH?4~q{ zc(c4;qGTk!x>7b)v_ViG7!6QB5&w{Xbwx5;HwyIx;9}iVv8Ogsvz?90Vqx(t-cn$e zKNo>wYY49k-z_eldX0pfrVfhq}!rf8*8kcWdG|{hDAn_ z_GKGwGclk{7>$?@LoM!2EvEC_bbn%Bb)-+5(=dN+tfCY>pKYpxH}(E=%>4YV-)yv0 zv6HLO8f}JJPMqN7jS+IE{5dh909<*``>&Ebt$XDPFi8D;V+%NG&4$HT7^XAYOFLoALRxQ5$yZ7xYGNm#GI1#Us zmEyN49{uo`l~AN?+rbox^>%i4Ku68tbpgCi69ZIqiGcQ5_CH<*Y~H$_hE1))C^0tz z_toIrCx65Cyj+0Vc(i^}MyL}4G`6v+MFE}|OpSEL$VPg9>FS~?l~~jxm?`iUpm|N< z3c$Vl#RCHa>vKj?V9nl*IXNd!@bQs1e|EwuVs>^m)poFnHPChb*Y_Ct*e7^16KRgF z*&ijl2>Sy5;L?7xoSxrN4n43M+abhbmx~ex$j_0H`-zE(feznx6c-owR)h!}HY9~K zWtb&ebiHfjKeia)ujuIQjgE^ulwE^CR^uZ$ABB32ahaR;3wmC51#qpjxw)C`L{)XQ z{A_R`$X?ad(m=j*|FmwkQP1)3nQb5zrVkykB?%gsMkGjeZ}71UdJzY4m<*e z1zymY-+x>6Ah`LrvgeT)goIyy`1Gm9X*gG}EA_9TbZUvcqazD$5nEcI)6fb3^Gvxj zL)qxxenBN~-}Yc20BHoMTk7iSstJ6~IpX-uUoX|_`-S}n4zM0LAf}Rg|b zu5^fy2un-LRD9-UQ;h}L;kMi~s4ZvCoH@wG_Ic&OM4v?j()cnkFZH|LgfPk|~xP%`!?`N*hf&8qfZ_t@uC~RZ{R8>_m zienS~{P~k$zQThhW}p@-IrhmQl80BV>L1V(z(AXwo8xl$sSC7K&SKQIn(vRyp~b`W zP#hOl?`$_aWwDiABj=QrS4GsteE}yOWWbJ(@_MQpw`R!$^0PcDGZJS}P6@+!O_&)f zT(v8Q{aHQe9zn~Z_qJ=Nfv*!NBkZxhmd-3Eq@_hIHr|PU5fRjS3LM6A;K28+VHp`2 z>mOgv@Eyo<#vF(uD8*&YF*LNHILoG=(3a3kEl1%Cl`>vH(lgb1&SO`HRk z=m$4>#_yC~TR(qbQL8=j>68Dl?(g3tq3mh=06G&?1d&g595=k-+xjdtG!)a;MRLM5 z^ezp%Atn_>f=VgDIb96<0#yIjZQE>%0($I1jT=)OhhBf*vUTfz)ixQ)MU``F$5EY| zq-M^DiW)*V`cPITkI5TxAs_~T4I)on&uyMs;3!l=KWbc5EIGRSqu)oA@pxY?Adq6Q z=hm$|c0^;YD4?l{mfQ#%7%(yHW`r4`Turr(%R;*KB8i|W{^3= zQBvIe-*SO-V^lK|1Quqkp4T2xHh!J|N1MxZ$M5Q+@nW#nLXW9QHIM~!>w~_<9d;)G z;7xFTN;o{}vV9*RNm0fV9+qv|*lKxNrfz zk>hz8{;Qa?fU>JiGg1U@mWABPU1oTb@EnZ7YA||Kr|I#}#@ziSyIgBLx3Z>McApz; zNEXIxkj{@;7!INB*YtGL(O+}>Po7l6SbiqxnkQe60*!H5n447fe$H{(bML-=!&wZA z)Qj!kQ0jmz5KW$Y?-F!*eeLjET6X=%j}nk%xyz5D&Ezi3&t&koLAKc-Fcn;vsF{dm zY>so#Pfbnb1SkR(tukyap@XVKDK_aDs6ryFqhyJ?2EtHBpNrS!UhcQaYFVTohPt@U3z`>;< zHbbc0FOFGXdC7-A0yOjB?%f4-7K7hFmUDBSHx(9!6!bqWyJFIqa)zvARk*}BcI`)e zJgke1zJ64o%d`RiRL2d4^DYZNMn9>Na59iH% zW*J}1a(p41L^i(CYfrs1I52PsJv?6dl_=V2-j`Mk?zBrK>rwu_3D0ufi?1zPHTHg= zk3O^x+_KcZCL#{v9nv7elKqK2VptJ;tts6k7EmY(dqp9B(##GLApVU3YMA?kr64D# z9Hh1^)6LC=g{Q%{iKroOxEQT7?q_6VK7M@a)^I>Tz}Af$gTWx9fe!0)q$DI{@#bW5 zdGtSvgbUC*fU&4b%&nUK^CgAYj=)BOEH3=O;l_axu{@rJy={yN=jdp ziR7`CezFB01Msg|v&OLUrF(6C5Q+_wS_p8DQQPaREEa4|s0C@~;++;01^=BxZc9<} zD!GnnZ{EDwLQTDwhK2?mUj5kT(o!-eup3)#AdJZ6*jq?qUhNa}mebLB86VnQ15tgv z*(|@cGPh$zH&BmWkh4ON%XIVwY|veB`;==TOl{e@Gj7v9(H?kloV=g6avVFBcJ-I#VYN)@ zkACcmVEV*)f>Gq|?oLo;&+S`{nHHf8uCo>a$1Q|F;$De+p^F~m_k{Ye96frG2qI`b2|YbMAIpq-6X^>8QY+e>POXBzlbM+b z{3k)`4rtuw=T~u?z8W%56c)~>n~!vy#!OTw7nq5AcW=if>la2_4y(ukwbns>kA}QS zE+5#i2FoQ6a>b=zaSDiE5o=RDAXv2tabwFZ`@rL}eZ&02OffxN8X@#hfR0Wb_9&SIP#8c|7q z^7LsG**~Xmtb_qrX*0~n76+3j&2~`buuAG#ID=l8Q&24uM@G!Cw$T>?ctyoh;e1Sx zKN58ld&=}Uo1ma3c%8hVVGQ6OdwYO-s{TcMwDW{QVd!^vn9n&^EL*uw+SoV_rOqf0 zSy$fNJV{<~?V^4^YlL=qSTj$pva)h|D0`S#tW?{NoPyH8qMkKok~oU~s2cv`*GKmJ zDA0LQq)!ehzl4&}GXAVC9didd@x?uR_7G*kbIU;;>#(KAo|h40Xxm|xu;RNk{opo4 zb5T-y%4;_ihvlH9uVf zz;?L|Q*}totjx@3@hKlMk`{>tyUz#!E`zcEI<$I?>8eGatYs8iE)=D39zvBO$N=^h zXihXHP%KZwPz{XVaSY1d*yPe^+{CXSAB_1s~8hD4mhRRLx-|#|?9oJTkwc52ugH;kE55zJQ@U#^31%1^I z(~ih{Fq5GJ$iP&Y>Xuz{T1uJapDaL1N(zysYHH-@d9BaROb*vW1sI!~Y-ioKPgp=e zfCxFHt3qV$2lTXa7Ao{wq=yvn8-YAN!(7MGGj74MJnMq^^6jzd2r?mqU?qjQg0 z!m$l8JS3@TIg@@KSfqZqIh}WO%z^?>I^bY)h7^86T30s=MRSOUhbOeFRqp)xd$%_1 zNc8D(CZ3kZ)VO|~DCT-K8DHd6U{=(k7{|Xp zl!}3ILzpM7-OJlv47)K*QN!U3u`Qw8YdCaob-#I2$(bh?*AJ4&b>-7`f~_QT^BjLoWgX#$ihsp`ghK zhBpZRF%d8@M(wqwV{f=0@ho=Gk3K=?*t%&`2tc9Q(9jUMr9=qB|C+xt+Y@=spjs3v zX+7xD9*kP_EW-k~CFsm)D)fuoh2V-0pFh{pXkHCLTH+vDGRCI@?gS}4onp@&^ur0p z*nXEvyydZDQO;oiGchQ1zv2Dqw{Qa_VNpL5aLxi>tVz@qoSV#FfZ)(w^V&+!`B%3e zTr;8(3Hu{&rD^&o-t5CCK79Lj5lEe0vhhb0~Dz+har61$TH=f)m_ z;_e49t~2J2RnNAa?zpjmvX%bJgl@9ZZ{3f`=1|&*F2=x+;HTjzzGTUgTY7ZIuH3`k zjU=92UrjVoE<^k|I5=wZU0um&y7cZ|C4kLk4u8s=#i*R_wRz`tUteEhI)T20hliKK zU0`5fU{Q#B3d}2?qAMPHX&Ws%W)0jTB9>vJ$D#|-9ybpr3kj{EqQ{=w4=;c&#v&k~ z(O;jasG{=hoFCg^C_ltA#H}S)bdsMRMq&uSJSY_88{Aj=D%j|7xAx5a`W^&{;aQ;l zmo>!g!k49a=6u;3?9~dibhcf4hQ54xiMl1rMa%D)>Pf?HT5fhaK7;c%2VO^B7MEcAG230@$)SS)-^5(N6{6?*ck;0e4ic*kRY`UhT)b%PPqI9? z6w?O#xePM3URyiX>?ltt6T_5?Zj%7SZ%mOXi$w z%<<0K*frt^{fd@31KBSVcRm~!_`als$Y?}@zC*pAe2zY16~kL3;}=}3ui)A;FpTHv zX6Ilp(mg9ey#`6H)IpB$mcKy&g?x*=Q(l01`WNwygXY)^;> zgN%YgolQF*^kOu4vbg}3H0LXgNP&N7Yipl_9{@@zA9;b^=<2%XjetCamX|O%oyX|%4Grz0FN^#WVKMh$ zQ_Boies$#_3(L9uh52mQ#!(FXj?5rOL`NFQf`fz?2q20jM1}Xj$ACBFVm|n>o8@lM z3WlZC_o`f=Ix@&51{KH*4HP9H2NiiJvvNiMc5dUR@K_%`f9}*e>Duno3N1nsWEEpI z#p=zQUfdZn891FLjPZu&5_5ifPEQWA^YCPRyhMa{G86#bp8)=%ccUY?G;?9VI!+8k zLxX4Cv*$D#YDUN*GOnQ22+ z91;}FZ>FU~yCS}K9)HuEBc#C)B)*E@zI_h_W0pJq1O-k^VmKwe7&4EFbsm)J`WEY4 z6cM?J)P%KaiIM9_;VQ>2FP>C%P-5<`4|?YaHW2}*hp4}}Hw`A`i%eZ}I`VJPUiwj; zb=Y)Va3~)ilzsQjh9vZ8Xd;hZddG|=KAbb^ja7A(;@nscQU>b|16dNii5LdZG03vE zc0JL40bRv#W@3;h=T$2#6A-Is$1V2qb(?hnF*$w@u;YY|x?=fqePBFTO53jvym$68y)8{RK@+%UUtN4GC`>dc2+_%S8BF)!9zp3)xN_xN zw;sG_OLOxIBFh42(>)z(`)w0rl#+}mRmt(=$9qWT1NS@uwx@>6e3Mb)Z;Xb|6P^_Rg6?SINqAtjQ;!yX1JG>HyP4+Gfwl4 zQ{zLe#2!mgU9VIRBuRn*;xg`(TT_vuATl@tk=3C5zvUckG~16>&;<*2eKiMhN$2r`D#<$T zFmCU8TdNY81!)QcFhK$zG=7+ki;fPZer{!k zI}h+1j^JGM*#~<`EDyTVSD-a)BDk@_#4m(51C&CN)ldYSr+XtYdg{=E#v3mAC?A&6 z-h@Q$-ZP&1pkzEd7vZT>zL1tMV2RO(Pu*f=$CHo21s5D?&X*u4LyozC7-cU`$jU~X zuY`A$0K7oOa8ikAXji2;h6LMP7jlU+iR2SeCc&3TAh{8A93Z`*=0Lkh zn}Kd33`|Va5eEj{R`^xJ2k56;si}YG6A#LM%er*@IUVV)NFsAC%(O2I$dofD=1x3& z!mbH2VXHpL|3~^T*97sEMIw)A$Kb#9J;&`#`s?BeRCSsCA%=X`WW*&|8JRIKQ5Gm! zFyj@WecxJ7A9EnkUI=-I3wJCMiBpcbIu6L+4-cfybzw#`cD|+M!m^o4v0b$oNRJ*q zv?|Vdz5}eL?doV*Gp*~mlIjVlBS?|N5%!A-!5wQAJM4vkCBS-FpF|ZvSS{caJl@!= zzkb%|*rgc!o04%88bX>(1}K>10YXES&cK4+0z!+}bPw@bOpC~5e|FL#C2#7>TC^Hg zgp>he6(BcKoxSHo1V)1H5sk?mtCE<;DBwbZ>UZ8q-|lK;TBV)V0Y=6sBpwL{m+ZfX zJb6|*z)(Cf$e{bB7&wa)*&PZB2?<6+DyYv{1U83MVL3VW$7gJzp*a9^G_*^p3{zh& z%}^expi}6P4;bO1_aPuvcOdBMO9W;=AjJ@L_2-=|yW#o7>4BttvKc_n6cMu{dVoHN zEF`c8>V`qYdqs{${b`P$Q?U(L(YB-s`%dq6y^Gr7Nxct%&sp0y@j8`K(I z{_jY1uK^&7!)WRA*9(M=Dvu8>gq~cDtFwkoisZZ~Q9g+|M>fdZ^mr5I5fGKsD6K*z zym8_*AwNmj5-_{jXlRrV5;_D9!$gU&8PJ{_YK5c76E^YM>U%0=Z76S5rVH$2lau+K z^bLQIMS=4{etvZbiVFD|8A${@V-|iL9E=B;iovM{68_1X?qel!^d9>u8e;N7%pC_* zHh`T>F2H4Gkmq^rT~AM6MrfdoakuzM{1e?;9$S(sS`cA)^&I<)nBsnS@7`6%uPDo6 z4#7;Q&shX6ha@0GfL+Q$p}~IMyy4`C8xmK+U>B?>PAH?@%3`;9dAqxwKnEr?9qI_t zwh6q!)oNs1RF+1BnS^eL{f;z2EYjZ!s?DqMiq&A!a`7r$!hPk>xFmd0sM;CN0O%D_ zz=VjF@hv)#F&U2WPkxy@->U8`sae2Q2s-=B%*;Z&Is|0Ec8DxSHaDkn!;!KeK}`sk zeu;_0^zl|`XCEiIzkmJ8jLQa;Co&LZ;4L`y0$TjvQ!jv?cll;T(yefEL0kr7e^A2- z)*DIx_thtw)$jZC@zKG3;^c^c90EP8ZHs)O$pD}~W=K6S?~d?#N&*9%B>|%sC#;B0 zNUpF839pPcM+u^?uUx+~is;%1B!Ol=BG^*Zi19yXReTv06%`*JR#gCLRrrtSd$sl3 zcVE`#{#ph|{*Q1)h z?7nBHrHO)p_9OdX?-}ISd9v#w{&2{V4Omq8St+WyNFA!#d4!^@%8Za;G6EPxz9pxH zbLl`COiA{fk?TbAhj@WgOUP?0OaodHGzNjvkI-;1u~_IvWH?t^ur01eR-!Ip{*a-N zT{|{0k=N;*lU|3^1@e8)xNgJh2(LXm-16mtZ*ZyANOF$BHjjnwiaQuYy5jGIsr{`f zr|&ij3Qrj9JCv7$yL>eS2oirs>-R`W+_;fO7%5LdUbu+TPkhG$Xy zVWA!IGeQT6{~Lb=ViNT7@y~q2BqvKmMO71V;@)Gz4XSL;+=|sCX*Lo!AhR0`PCi~m zJ~3}P=643=WcESztW-u~?b^ofK)M(z5&^v!N2WFl6O($*kQx#k#QrEiEsE=R9uNLc zOtj3DYjUtT5?9ohR<9vj9>@ZE^WRo!5gE92urg#SP1E|!O5H>I7LnqL1`E?oX zL;_2yfL@&DFnT4ltMLWmgXE{e!Wgq_UMU@dJN1~H4}c5o_e@dZ+&N!FKB4#|{(U6~ zn6M4or+N?tml)8%nvWsnv*%3-L8l{k4>GKt-#QXhhS6=}r;^Ff^sv_xDgh5sZGcdS z4S|CS)~cfk^I6jgoKNDG5T)5CJ#c@;!F<)}p3A*iGqGtX0@uR*qWV+lz z(WvreF})Z2J*evFf$T&_LZ((0$q9kk5n(R|eiazHlp8iEBHd2LWoW31Bodv&u}*!H z1C60>Zf^Z~zmJ0jjQ)F-+au60i3yE>fRVm8Y1>>}^54sYG92PDgvc-cF zCQ{FIJf=Bc9AHemeEE{oaZDe4jR@F?KY;Z_+6-}_n**Ib{#G88i2L3LeuEN~2l^q$ z7qGOLk)L{=+8u&loozQSt%nrc}BdBR`z7d|#*25|_Y-w8b$YIw5l9OB=ZG)l(PIUl*j4d=| zPiDRtUU2R3@%H`9!h80>R^iVjG6qG=pJ<;yrLtlu+evBl^h9-iCq6aY+DiK& zIq7y>XiwZD>%5rQqVbta83{pKUiSCVGfXxQX1#XYrIGkOJN{)!{}HVMia7P`ZMZ3! zj^iwBntAu&C=ayf@4|hPzIgF8Z$5mW6crUc!olI&cyI9K%e{a? z9iFu{$|t0jU#od z8eHebX|ikwDP?7=dCQL#FhSV*@7GH^&s(=vdU|@&h9@H5^z`}jP-u%)m#FV7$FZ|h zr%x|IAiR><=176dXsSu`HYO&f+qZ8=*|6>3zXHy9;-~;7vdWB>;P7--g7fCyo*u1+ zByEC%#*}n)_L{cmc>&ZhGBS36Gd94euzq)pA}Tt%u%cokFE4LJO%1|?E0LwqXi(JF z-XpU20cR585Z9CrC0KYxL@*sXd|2DS;0~1Kj=Su6_g#!lP3K#bJAq}2Alv+aStxw^ zbjXsR2NAI`F_dVwZ^?1f7NhN2o1uFC_p6exxS)W-hk@VlQ6A39-2>ac1Ucjg5099# z@(#R?$NTqZ8=9Lhf#iD0h$$#+!}%-PaCYASbg_LbEHQOIU{b~@C4YH6$xnAKzh^pQ zPeH<6clQ;C4jmdH^x(LLii+o_Pv;Tt+|9>F2MHD$qOgmL09H1PokG7ZZbwaRtx-#2 zZ0uStF0NGLMrub#N3Qvr`g)JRz%~itk?%jo#%}ufY(Ps~e&9f4z0(NO5TwiZ@81`I z1x@_#C;I$(J-|8h!GmOWb~pLGdUXtg)16f@ft*W~mXW!hmd1ri=M6tF1Ys1*!F&}p zwViSC@pSlP`504OxFwd^^Cl4y5i6lS;@+=SKX>@uyLVHt4U@nJGPn!cQZBCrH}}Fq z2u{+jY!LbLHFhC6E$xiF{8k)N^S~m0OiPSN5wXI1z*%Ls-ZAEhO&OAy$Zox(<~9g* z1z?ECnKPZalWm)`cKT;IO|l`#ZVrk=qY>F~c6{SMw+sK|TBD$#fa17naQkQa`|@%z z)Dp_soy}e2w2TZjG60pxb%aQSh!U4AGduedCcTi~UMp6GxB{_V&NneD@D0@ELxvgz0Ot+qf z+}AGc%V! z$AtX$@xbCZd;a{@eR@AuE?*uD_MViSyeVtTYjH_uhTSv&WC0{0zp+wKU>4kX@L<#Q z#NgeFp`zO0N9c&%621llDhITYb>0bE|UK zCEfYAP;Q@Px=Be7;I@&0!5i-;A}aa?HIs?m2K{9T1q%zy{j-cw__7E}N#PKf890VF zrvQxixPDzIwC=E(YP#{Y^mJ|*lHNG-_bGsn1}#CzPo5p7Zbe<)Ey$+i;?7|ng8+RVBwJBAGY{G52#k6;dHLG@X-I_y&CPTaNjO?bt^&YFT2awY&)@3` zB(B?c?iAuJLa^7cwqz3k*krmc2*5+xcStRBBfrzcmaG~TR0ipWq-xa_T(hK4t4uM^m~0ZkdY>|SeeF5~t*di4LI zr$;Z1z&xqh?)H;q%Vjm1MV}}42Hx&|U?5vVU@_qC^~aBECG=)sAL^hBRgKV6Ah)wj zQc@E0O{ncMwk)URLKp!`*rD{++Q7C^^7ZtiV}ESrS%hyoySqs)x}dy#IIYOYZ3*|HPgUwx5fX|; zhP`nQn3+ZcFR&dAIIppb^(AtZNi&y9*Z^tI)gKJN>?AR0N1JfQ#QGQG0nluvEbD_%+uR{86<}%u zZlC?u7GuBOrj@WxDskqsNcAgo@KHU%uRlGTda$XQd?Ww?E+WrA1XbWlt+YOHL`feEx)ctW?o@ zTCrk?X7_zoGn?xVUxv z{QNHv0%~e%VmFo&7hi)-D6FBufKIp~S*c~a&z{X-nMDv)I){gS03>o1=m-kHM0oJ@ z>1|Z$B{0z=$Bx|qk_7s?tY*==blEcPD_3q|2JoD7m8?YU=)uE>H*i$sO-;?%|`Gf>FEQxw8g`RhFQeke`N8aSDA+cU)hFk{Xz1RAJGa>IwLP+O@G(f<52G&z?Pn*j)vn z2A=P-ysxkCr~Nwr#&i=pacSLtHD^>p)Z5T1<}9z~W5jpSr=+E&A}`+!g1O z@jz$O)6*kkV{frG-Bn_;08J+{U%&1|?@!9eFq2kAp`d@?z&HR<)s@?`2B~lfH00f+ z>0tEoPi7(Bhc@4ZHM#BSc^!lWMi_;YlT$-e(;Mt{yg@}}<%3%t2t^Y{U~9{b$RD}y zU>s^W_M7nc_QSc8ILWp~N=oXfzkliYi5-7&7bBxj70F>?%jvj{3vhZs+tkz>`dcTg zgP2hyc)ovGm>*s+M?hlT&f_DGX9%o@Ewp^?+O^A#*@=;Xd`?VHHLh`;GAJ(~}MyklC)y%}kO(WH}5W zmKyFoIsXL4VX}^vb9Gx=o4JL>1MwLUMk<`>@&e8PGc64(<0*x@dK3ycBNLMly5W_< z&rgpo1Es$0<#h(r_HrE?7XunN0^=R19kgrx3O8E(1*+ks%j|Xpw3%60mQv{J>z`6o zq(Kp2OUBxrV%zW+66#4S<+DD2?%W$-Cv%t<_ZawTk-Ycf-F$?VbuCEW4oD}R{rz{5 zOI$-cK(SC3gZRDFMNmzQ4Q(_bucmyFy{Dz6HlUG&d9{XJ3O%=I4WwYX|SoG zfs7pF4IgQznXLzK#u>n6$bLRC$cDV7-<*D!+qC62JgxVsCWbo+#De&A7cW(SBNjcD zUx&u??=B){m3-`gS?F#Y8xlW$_>cs$fz!Q9Fz<>`islf=MX3^(6aczl`W8c>A3+?J zOim23ht5;|F=rnLEx}b_ZMda#JGxw1r1@L*30mS6wL1QU~Qlg6?a z*A|Z%$@73$P^a#J%3p=U0eRT5)3VbG=Y@6xJDd^`Sq?Mp4jKf{xnK=2MId|~uu5ij z_7Y5&BM2-M>RlH+j7dzkBBBu5T3T*o1I8xiVdqCwgy(L8M|uZ<21DsI+u#8vrZ-JZ zw5041K>k{_s#F7*85OvaY|a%cxb)p`@RVl%c(iC3)_ld$Vr}4l(9)a!{yQM-C2192 zXTrxJt<)R?gg`!mLgM1$jv!v}7I~%ceB9vzU>>mMr+jv70`pUs-oAUM12tcgC1<4@ zw6aTB%d=+{gj4--V-_V(r!AKcL}dd& zA;3qjZ8rAC>hQyw!0NG`fl%YTl4E!_~b+Ux7!8Xa&2Z>Fc)dKsy!tA|8J z9(a`(-AU&5`5*y$#O4cek`#pd;?c#QV{hTtZ{NNkG3_1{vd>A2v2N4h|1rfhpP3*Y`3iYBfSn;NhnLlVR~~ z+PwJ&jv?&XyLTywJ|6nvjw`|_cZVyycJ67SBqOypR84}MAZQ!~em$g=MDd$Mr84b1 zbZ8xhk1+7_c}dC3bqV-g9F><#Gy=EN&GX^U%|l$~5}Lrsj~|8bINjMIEC2pnr(f{e zP!hxs@es+;YY+B`QL4+_0FmiLL6EzEdAo_8-U|;%0@TSH5kSL*#z3|wI^(s_(0%04 z##wnDZ%8(v!tT2S6K}hq%Sq(4meSMHhkW$C z3z*-M?@Clsv{fPCAzaoHEV{m-Aqrz>R#ujfU!y)F^%`KEWEePVxsF@cuU}6V20nVj z*NJh{LuhGl@#>ox7}%<9p$kKp@_`6WqhW_KBMCPGn>Kj}NF4P)$XMfd7&tL8eXrwt;~Gf+O&-rdil%Xq-ZR_4?o+DAE0X>426& zbQ(}e0cjt0+H5B0z>S+y*8r|MM*a`GQg(FY1&p`}%%u&<9us%xZ-GR)Mg)*VW)dTxU~J-0EE>K!f|+D2rW#}fHthWPm-2sB|FFZ&Pa zUG4qX$S;+|AcM&F;K`F);Gp(SPQn)-{8(OFm!SUp1CeP@q(~SPFAwD5qUyaso~W#Hok{v0hESo#^i$nK-r_j<1&CN6G6Av%&s}TXl*$Z<>lRB zkmvyXn_F2GA;(aGr)`CNe97YmNQ>t7;Khr35Y%*lp2*O|4)%b6K&c-12`8dInylm= zX=i9IXWIuS<~ktIPF#{@zn{hhkcBUA@8H2M#fV(21c(ZeFr@xVoPKbg-{I$SxDh2_ zYe~pXp*l{Zef6aDP*vloHfZ@$7@JCYS5IL7F9)nTAHchHa=4ua+SR7J#ZaI~lZ6s( zxD(F`D}ngiU3Z|ioFE;5ik@CP&h-Q<15UGtmzNga)@>gj zG2D00yLT@l{Dqc_-M^HUmKJ{X3fM?1@ZM+-h40?2%yk^Uj{RQYQ>hDAYb`uKu%Nf_ z;=B<>Uad}@yC0mq19A=(9rx~o2iHKixs{Q@Lk_oC8&K(h)WHa)1Ol_{?*hjx*&sN( zJKzq)LoZlhrSXD}uR&10;F%(C3D@cF-fw+El5(-K<`|2$>_po;ZuM;)q)fuT0RswP zv(lcUqob1$HbV0-c&ZNajz>h0_JISVLqf(+m>9$wg*5Y&id15a&RR;uC`Y<4&g z+E_6PH=NgaA>d34)3O8;;=Zr%(vJN7wPl|^p$WMoqZo{ag57Y&!r~~l$o>2GiBJX; zBLsu8>NGb#!A;B>;#@&y29Sqy1UXRVeTj=62qfMZCpEUzCu)A5ptRBYFTcK-wX78! zf%IbvH}yyFG89n~ zo3j`lS0SRa335My(dDt-|EnZ!qNctM5fReghhr5Ui$s{Pg^QCyx&&v3DRN4f%wo*8uu>t*^!eF{#XnGsFBq}zx=+mdTcNV`ZY>eqHL|Z(6 z#2gRN!4O-8<9FtEc4ny*tWf@NZ;BB$&;skn7H2@7#Z1I)A`9oQjv~7Q^t2Za!ow-sNQIfP|U!264D6?h=bt*uv7Z)hkUm->CE0uMBB&1 z5Q^&SGYV}!(*AB1j+^n+2_3NZhCF9J?5t}@D=q#kR~Xh3p3I4k zw+_ga0hh_9G)SSgQ? zkUhXPT6i&QaS<61)IvN;)CbB=DENRDhU&Rc*J%7YATMY zna&{=Tu@ZB3{PCRcK7aDoKTrpa4|ECnV%h%x{7=zy80?8@@(jXD%HPO_W$-699O*% zbY*~5gP9duKMtY+eeGCkT3RJSHpB>qr=MUU35yQFw+)c_AW!AKd;RvUh`xbAA*c!9 zYE>616p@N3i+Id}1dUu4XU#eC>V_ZCE41|Ves>l0I^4ECtD=4o4J}ZK?L4MC&!0bE zf!R!?Jp^mStgSf#!Pc!?r)6NU1`LN{!Gsl2uA@YZ1nXEeHa13#f;iQT^K_2fW5Pu`R7-f}t^%qBxk)b8J!Ve6KeHvMR>~3S6n2lEz50fK7~{=%&#&<#;7qh7&}8C4b*4cSDZw<-#*&~j5Sx58 zCFL8G!V%>2jN5XQ9S0#dXq%aB*t~f&z{M$bb$SdbA{2so!q>eCIFg$*flK*K#v~<+ zaooso=K(`c49nfrcPM5v7W8qmfEA@-1b*kDF#Hs=3{RR|3Uq!>@N-#Nd?gMzwXIcT zv`?SQlB-wHeD>^FVwzrzxA%pB8y6twhD1jzf9D6Rq?n%x3=Rz)RT;(r3yF`P`!G(u zi3`yGvGu_^Vy)qh+6-+_1@1w7bf7hx20QCC_920E7zb|vD*<&qva+TnW@4dm!gWRT zme^24G>2aFUuNfnM}VBo=MiXLz(#--Nri(N#8AQmLpXlzTzwh#E|~V4M+apIuR^C^ zqfT8Zfx^><*LU20WH(~FYvFvN70idTvQV6Y`;M)A@Zmx|_^v0sha#X$975cT`m62W z))d1E*}~ogcPRoAAxIQVczJZUiC;i~7X}f*CuoO><92g)RR6^cFCFb$=MsW0ql1x~ zV4a_gFgH;Da%l2z(QLx=nWKS>vCAyJzTX5y6oULpl@n2gpd0JJAt4MyBi+6 zOwOZN%Hxdi6vm`Opl>N*0}yyg6K?-ha9gl zwS2Y%1<=WoK=1qqELx>EFq|xa>9uj!E*~O>A#@_-H>LnQ4Dt94+Ahw6QT0;DI3E26 zL5=UeOTh;!4!l}~H1`PlME*zj+y|uzB ze^iO%N^|uRinB9u3eNPoEu+^-8VG`T{fzTCg~xPGB14Td|42wy0K{39WBr;Uz>mBI z!P5&oxZ}*MtisUErWcCuUbn>SgEK=_T!zMhN%y$fZTVhD8??CXyw=Qs?l-}xUXq7X zC!BDdKS}g3U|}ts9aG9Q-vjL0tso1r2gbt+7(w{NM3=>p%e0ks=&a=DGR-@e;&B$< zXdxfsnH2U%Hf`1#S0r&SZyJ3IYk6NFeeA^U(y zh@6NA!Bp(eJ^Byls=aY&=>UNNfU8BIC4FjbKMfFthe)Cm@ahhxJrOn6F`V3vh8S(Z zcI?<@2umVRxY0bJ9-!0m*3LL=*W%&F<|AScHa-A9+4$(xScbFh-@kvCC>M0Xfsx?4 zlm@BT_0F-&_{rKE7?52Fw}O}gdG#>U@x?h78+cTee_1;3&AO^89DJtMqq+Y{zFdI) z&>_NBP&;AA=3`g=9$qjlAcIu-&(!X@s-Y1$X4GeM-4cl+gG_aLLq(4kcHW7xlG>8n zJ>y~F;f1xeTT!FL#WNbDc@EnLL#q>mwHN|1@zJ3I@~AkYSOMDJ5_17jD{@=l)Nv&c zF$C#U3mhuh$!onDhZ77_r!~L?3dugi<6j9-`<=mH-0P1AMw8)~3@r#1Mx5oR+$OY~ zoSbMD6*%qO0+xvNl9rZs%g+}?&a=NYPwCLD=g;X#XsMu}K&5^2Ghc8iZGzTv9FFD9 zPaB1Nbm+oKA|h!HU%0p|s{wo<=S~K7391T3_a2?dPH%KZ!v0usN|KaM)19DFPy?`9DPD?bd29Jyv`U(Pl^Bp+4BmomJ49JdNIURXF# z11o!@*A|l}aXscCP4l!n>`1-lA3wpJQXhVD&5Bd5^`vFO+y}$5t&afM+*ED1g z;V;ukCY=RWhz-)s!0U-7}qX z%!&x2wK=ye$;NtQ@7~V>j6N;z_B_6ZcQwX8P3w-1rXu#IwRD_HYmxhWi|3Q)&zBZ` z&h)i8v92oOh8oDROLIC2lBB1+z~Hibz9&g4u9Qf?;@URu)p;l({~Wvy5lAkeDKkc0 zMLNA*+0WAkG(a6H;>UPSOFm9{N<13<#0ZN{{qB<<1O zpMfg_X|YHfy^~+-F#0~>rJ8JTY=va+6D@S*#tnM_ z{qI&Ud~`%lKlj;sRzP-6&Mg{E^PbtqLLEmXQl!c(m}%*~maaL;c~9uM`pfOYoZnzi zDcG~<F%JHqfL`6{ILWkv|r}n@x4s18u*wXE^$6*k#Pu8WZ^f83$I48~`_!oG=qXcLTr6;51uCfQ}S=#G~}-x(Cs{<{_3q;M@GFGu&r|dZpNqlmy0-uq#8&opbAjN zUB`?udJ;E!;X*9k)J>xvFwYpYqLPRxu`TKa8HHuk*f4D&Vtp6AeaIyCJ~~Zx zu5j*a5Y>S=F`hqxMZBH1ig2eIuLV`#ym{E(byrkW(E~TzKi^tfdT*x98)g!-gA<8| zl4O3kw1KlD`doc5w>upt0Jwa10twu?Z|})J=#Y+}5CN8^>)o4hnq8cRT>Ap8Oh|S_ zJE#_YM3jd>20vR};xd?dMV~)~9z3`LB&~f=&uPi$^MGB0aCpbAd0N-87h^jxYC*vL zMYISP*^~rsSE1{2-?|)@6JA0{`gQD&kDgss^U7>xWB}LkG<&=ytYuY~W$$e3p=4R>XI9aPkre;|-PIi0;AQ$1jYh+mob; z)@%3F>mfG9tsk>T8&H~!-GpmCVa(tpB^^rwW#TV>c{XuFG*p?nQ8pj~I)+gbdyH~+ zZXP?JfB#C9SZzlJbggVFt6keQAokdcOtyBMQ3{a9 zH2gx|wd>c5Sp?v&1|2(|N@%bOs90T5w-Mx3gvf=;=9qzNy=HKTsb}aD6dQk<6$D%q*oD+d;7L6v$V!@fy+EG zG2L`eV?b(Y=x$GL$lO&hkA`Nibko<0pb2;)em-d?+0-z zdE^JYT%DisF zknSDQ3fE_%`3rS~KW=GXNk|^FV2gnPQLS3GtOOd<8=>ZOBFxSEUE5COLJO3ONl{?c zdG`m0$CM@qxjZL~^twZh*9=6M(%|#lK|bOtISD$>NG-z|dKg;~XS!9ZR*?zr6+I(3 zL`1g=P~szjPyK+N=Mpnh)tWVzGF!Z8Wj!D#@e7$0{@7Vbr5K!(!II`?z z$X?ErA4;dgEfH$n@A1Apdm7SyG6w(V5`{*4(4axAg7Zm9)v3JpRD97ulc(R}f8V%i zW$E3I!!vo)!%?wU?TME18o%=8jv6|BW<+h+u)*uy?d7FBscx_|CfQ4p2Eyef(h>yn zwaoo%a?O)}H=jJUT9UpVzK~MQ!lDxEPLw1#z0D1r(A9Wwh!n#cX~&-93V{~g*AdwJS8WFR<>^Qg|qbz25j0zxw*Y+bcgs8M~*B) z&BlS;?ArS>>o;y(h6W=8-%JgPC&Ho)OOwF839FKnkwtN=_UrWu zTeC^QU@FSspvz-3YMLdN-i@N~EJ=TYPpFZW4l+tzk#*M}!MvUOf z3=`(9X-OfpEdGc|TzLylB&YBC*gt9TkfB2@+qN|&tSk^K&bV=a)|RUgdC|0p1?8{g zdG4U)>xG2@GrB{n^|D%~tdCT!c>nv&Y;?Vgo3oyMCmCB>V zu*p1vplaWkI60J0B&qsEOJwrttI^V-f>pYkgDK$Zf_mP3Dgdn5h7FsgR#+Ohj)B$%6; z#;&<~?HVs;5mFKkF-^@D@;#5P)iIl=(34Z=oIxpl<8c?S(W^ZEE*^7NBf$!l7K?%nTrGO zNry4DKUI1wd~y%+8+q5|PnggYUxeuAG~0Oc?Zoq9GLKChfJh`hA;CU_HwP)DT=%)E#Pn^X!%cDP*jfzi*OKS%IfD|a%a z(~|X6TI-~r`u9I%y0H5%@9n%}X^_2Ym~m2N7!JQYKbi-~C{*KJP{=u!St<3BeMBev>}>RFUdcB zWBDpoeA6aIR|MhgvDK$dg!$^TYxj-`P=N&YG9iarMP=Fo0-E|ga|#2UIp~u^vqU!o`Nwr zm{;Z_3yeLWq7e*d(f>V-3cGpjys+DTorzR2cS5>l+oGl@QdTgpWhr9~DD&=P;VoOV z03EQ(c7sM=BU1n+`a?j&xdLOnM~!-De&9ftuABYP!Wdl zFpBAnBTRS#Rax7fZ?4<3(QtNDV27>!TCF!bc*ctx7MuSJURaRZ7Rr2uyjql$Z>Q#u z`YD>s<}=!pJExCN&&lyE$TG&@DT5No;x4A+zfaAu0xi$EzzR8vpbNO+h{9?< z&F1&2>Hv@=P`z=MF9M&vNW)F#nwc3#`PLLczJS%Ib0NP`O7)`H^5soTQs<1A`JWi3 zPcYAKbx6psz{8UVZe#i2PMX~3PKhYwff8H4}X zB9JnxR?Q=Zv;w1oTJtt<+LTmh+6YXKFq4t};+i*Y3OC;RmB98pcTTu`0%OOKZ3O5W z-nQB=swK^uooAeBw$Xb_DHhg(&p9bqpfiuW_Cl>J$cM;@Yscdx{Kw@MxMIaWepkvx zSi2TtZPVF{dq3qDALP{yYc5B}XJBb?r{ELtY)&^(S%|Ji|J}`|B`-XS-(C2dyfUw-Fcp77U|o+M=wQdl!jUuQufTq{Kwn+QS$DMyni&8Y^+f z+A?@N{S0g|(wIfxJy_^n(F~L#V~*8;I2Nnx)TxyKw8|v|9aRLYrP137y-%e|WE6A% zqlM1~h7h2T>96jz%s2vgsTl)l9p~^k|CjDp(Sh8;sR0&lO!u(SBfH2~{Jd;E~I zRP=6}1-a8DF#}Bvy?$>`(Vu_*Sp}eX{I+8+4j9k7zN33wLi`fBKHy8F*5Pr~jdpRb zjXLo9_O5lAJ7zwvqLrwMBkB@^%zTn2#^%uFYFO z>K0qKZXIXlf>XaPV-x9sWz-;V-u&k22cHGByl!i<l7dd#qqL`5Oe4jam|#@su+`6>OXpTjCfV6SQO~_ zEjyh%*eYZHI51oOe|s2!>DqB`KElzi6zGUu z63y1Z8j;JEEJ0yh_S;`n667C&?(Rtu0?7LJ_I$R?&=*;ZTv~Cpx$)&k_tFN6>EzXq zspDwUT{1!8@v=X7V#sHj%B8KJL3V28GgHb?RGdgI`MUeUuY7zyo4l0&Red=CTy;tQk|OP#}D!NHtRj5Z7LjO1lQ zhc@ZDVcWLPx8Kwlw+B*pQ|H;u`R-YKy1uJkWn{=?%wO_Y*BKfDdg^ggADi}ENeTP^ zl*KMdCxH!(yne`R^aZ!e9{K~O4SHN?Q0vd_*!Fa}s)wwGTSPJyD>;z25-JqGCte4I z%Uag9n&dHK7FFq%YoMn@khj9??z>uR`ZO{WRy^+c;FJ*$iCv@bY4D@4aY9^~GWih} z?W?=D0en8eX$BqA80S#Kwe1g(D)u$DN}J%j_wJ?AnOAcEqzRURW;%js@3Nngrqf`^ zYJ}hh9_}dmFr1@S)CZCkY#zNpkA#9tQtXy3d!H|I%e--M=JmqvesR{5O+$D0X*_jO zvTbuy`$5Bxw$6%fw_<8Siw)Z-@IK8fLu&S`=;(ah-FKny z0^jW(dEZ(Mo}2OcOyrA*8$OR;#MJlQ{i5)}i>()I*eizztf9pj7p_u1d}27rWFeLS@yDKJC^na zlImU<+ZeSIBRwCq2O~X$3`escun8LL#bgQvEl-K}-DsY9=TKelv8`*paGSskQ~+?Z zF0rrw_&gU23pU4l)>FZSWk_Rk%e~_>bnxIOm`<0#;vuPgW!*e^5&9$2VjPDLufX36 zP5Z7NI0c!&JuyCkbFGGgWXpA#|MABM8}MaVZ;nRJ9qdlVByN1OGEvdwVR1AmKP zC{7Ha6RCURU*%7*lo>U4I5AE02E2}|1!**`68)K&V~Qd(L*$Tmx>^ZrZ|H$2((U8s z444*bfi%XzfOpV469lL(_-JJEUL=2pc>t2%*EmdvOSAeF?uk&BZ-0JBuu42rEBFp? ztZL_<*79V7z}~xfXP2id;9qLHy_=7cC$dt2qhO!tO=9ju(?}>5gdhn47afj+W>a5Jzr8VoQrs&kw06L_F0!cX1#yRFm0RIL`Q5TKZ`wXEZv7d09H;>j?qP4F5};cp(A?s^g6e1>wj8+^VYr1Lm!@+Q5xKYypCl@ zj?9St^q8)Rg_`U>|KH5_t*+$&5s!f}Kn_w4c3^1hI{V+s7RCdD5<0o5)EvABH1A7* zYXDZ4$4wYNKByx1=-f?hS;nvE#tN8Se+sTFY(Ox!a0YxW)gGQ7^Ve77$3L^*l2One zavxFegQjj=abVTGdr@>E+`Rdl4>MpP@DD#~>Sl9XoZ|K_b(mIEqc|Fu1lze9l~{Vq zkgfXZ>cN*Z?hKBSyn?4)#*=bbj-1V#dyW{fB|k^&%4UX4Y0?6tCF8_M{`U+eewayX zwi6#LA~P`a8Hb|50RDcgXC92S-R#*m6v)f{_QkbGjq7K`B_(xP^SQdu%jTQpmFP}n z3uIQ}#<3a(_ZriRQsOK;$nBc9=nG2Ek4L)zn+nW#cXu}!*s)T1$+1Ljg}A|nt8f`p z-yu9Pie-G}%g>zVoPLKL6ONJw(xZm~Te1$k8D|+T#Aeg1cIX=nUrx6Y>6qZ&hskME zn=z$;c1>&74g|w8u?Q-xU$G=wB1q#FTa!Y8W;o$R2VHc zq|xG~OYPT=NFCjj`hdK6(z+v1vGP1UMRMXmbF8V3IzJY%j?>vWEdkxlyWlyixxKqD z7{=#v^$&!CD7kX+nP_d61kU2-UXAkVwz#2?h zG_gi#>?J8GSrH*SQ{FVZzbXIfo!-4#*RR|o=Bup775!Uptn7RLnKxMRTmc&RA^83w z+t~9$Yng3G*$B?{0F@{n{KO+c{{il4@YDiCQHf+{5uZOkb7#h1DJh9ajq6VB!tR9l z3%iw&KbkSzV1Ot*|80zfKtd~#iDK>-ml_ak7j?c=Nq#{xsl>sYz%!T523n<}@ttYu zDvBHDbuswPJJ7X?oYLXrJ?@`)V?DnM>IGtjM(nhU-m`C?xNr;w6og5KX8_N;Y);N= zRrWOsnN)zDzfXFOj(xssZ%Zi65=%!SB3ro!kkUiJl;Qm<#RD-qmj;#Qbs{de9X9OK z`p+*i-iXtsCidyyKY)*NbB6f?R;Z-=%$OA|o*kkm5X*0i9Ev?BAdHt~{NKy6W`*Ky z9&x~lM{B|wt_@X(dJ_m%{Vr~DK=zhi5)w3KeI5Ub}?1a3tB=Ulq9~wG>9>k#VgxPOjfB*tGwoC}N7!mbv z_~h`&NPB>N+(yEAL{^^ke4N1eXE1Q6K|3#@@zG@*pdF$3Wgnc|zX+gHpcOC6=h@ur z%eXji2Ug%CI|m124wvYA@SkWBRv-rR9`W!6uuJs98_bo-AJ3FJ z!H$E%;1|`6>9~ID)`F|&j`HuU2J<;{#(P_S78YOdKsupek4=9t(4AE4?o@De(kNUz z;BOkg!7|hlLPAvn7?$kT;&g9d;>Gx`fqc5=kd30nX;XG zQkaT|okkI*zchQ@Tw71%o;>d%Babhn<)h2wY_II$;n9Lr3Dios-4EQHQM?TUuxDOm zL69F2F!WI2{QLK=Tq#fKrzLidt#NqEQJNQ>tBjjIhdyE+tX;cy(&-(5{XOYC@U$F! zv1IULdWx#drMO0vg2kMtBsa*=o4_;_fU!8U)#30JA-dTmc|zU92goS<qpr z&SI~P00mOu8?SYp`E>C}`JgC*sB<&pK22CsQbNM2Tw&K-?zf09ScA=_P$A@OVjo)# z{gm<7vizZfWF6Ov;HPCldr=xr-{8jtFDnY|3l{pL@fGU2%$wIy>VmIo4?NJ7u>`fn z{#o6TBx`w1eBPdK*jr13r9{;BQW!{-sVGj3X*HGUBv}pA+1p_cuZvNWi)PufMB@?h zq`c{^&@L!bZl9Q9u(Jx~>5PlBq>zALkumPcJl{xqyfIKM~DRKW? z(29xzjdXWjdQ;Ei1W;Vx(xD3R;um%Vc~HXd?r7pJTvkZ4>_;CjUDlm+Tr(Fu$91t{iLiWmkoS zGnH~rQ&~n9zGplg%;f>EssNai`vdrr_F8bOWnKeu;zj@d>HF^W-F9-oJeWrEAv_!I z_EGU(m0t0EL`AUkJpM@Vxj*)Am^}@Iyt$>n_Vpd)=(vcNgrLO|$1#O&HFPZEKVB7} znK9c~WKw!~QXllCGA^>`&NC*Zcg&f%FG7G|t=;vKUBF#+FT7nR9bZ zde{G!pB>Nb*NMZH1q1}`xPv=hV>2pnS2s6*?3m>(*6VeKKLYsZNpsAJ!!*3*ln*vM zVh9?u)VlrM^~Z^Sgeb)V=fqDBHtg6@1;MWLLgaMLez}iUN|OuTx`zWDN5n9s%sAhf z8V~luco0C1l?WZ%f&l9DO^tRE-(Q_Qt)#cLEkB-H$v8o8o(jB<$*@M}8y&ZUmMcu%lj$w8#RXqhs8m@bkTkAa8Ly;TRD*^TZ=7W>rm`2a#x^BZ)R)~ zJX%kipOsox1}fSCiF-@!^{9=sL?{@JvAfRmM`gkiDC~|i>*ev@1MTh0(J-QYDfj*N zXP2&c5JsXEaWU1I6)!@Kh_K}Qi3I~lSMj0oy4iMrgi!__FR@hZmiz|#8+uHsap4{|4X z9o73L8;_c@dRklGuj)8r1+PKY7^G!9_+BXH7?9qP$$pU%1cg@r(sgI|j=+K!5mj^c z8nGz(GRH71%J@Z-qIjw$!5@C*3|&#LlbJxS9Xm!JYFRt{m;YLhMFr$(pib;bZ_TW; zhRDX*vu6`sx%^YqTW}A0yd}YX^~I9LIgJ=`5sw$RM2(Z&EF+vqIP&uw+pJyBf%sUxE%&&=FiW(|8N7t;4kD$&2u3NwasB6n6|k zFHOIUemRX$?NE49!_*gR?nZtj=pHLS-OjR`ZB>i|L%w5%6(qr=3dT|MB;u3WES27z zi-$fwzYgV3C()76=|giwt)hp4A$8c64?@uz5Iu`49#iICukthf4+96^s3L0NaT6y> z1BuA}0vsS6`PF4BGh#KS!JI6k3*kq%B!6_pm_g%RY?|eWtYGn?hNSayZgX8IcKRS| z%LRU4mZG-gU%ot&leV07ZGdAW{1Er(u)E52HmVp&Sn`VilQdT~JKwI$o;*+aukVv> z${R}B{q;W*hZ3`=93ELxlnJP!ttE#aLIwhZog zfT=1hcvHt?bC`9%s^6_1SjnLwg9|{a1sntWjDbZd)nq|;W>BS`KtTKJF3Sh4(B)DW zsJ5@U4D!Zj?i$)f+X>n}X4}Skp3V5`rq!!2!C66eX*{z#y8{?GEQ9vstx{&Gg=GEz1N46|5@b5BGdIC*m}kjx}0F zIm9ca8ZVent5mzIx9Dq)T?`yStHzHT7k~ZwS5W8e3P0>9iWw3IA%qC*0<-h0?`IzS z4K*82T<$K|S#@*-#|A>#hk+p2Chn>!y(Z78Er+buUr+yX6)Y;m`}(%_;Z86dU#0Qo z`EyL#Y+nD29#v>Ir>XS!@-7dZAN1GRF9)adaq$eSV-;@8c#G7A!TB8w=!4tgQ8`kDtp^BP!N zD?uqHXZta5gW}rGeOr%@Y>5H6t@r($ub_ySaRL;w`QzrrMFlUq7oTrgf$pf%F2T1y zO-u6^35?xh@eQwYsNwWYi40Tr4`sPVi)%&AVU_8LG#qdjX<4|^nw`yTEKA;PcyD}B zy=dKAxx@s*k3)jXIl%#6z1E>Ee|=S1O;}i!hbW3Q6!N^2oh$8U>jGUX&yH^mvQ_rS ze>17e^0(?^3owt4o_#0{GT)E+6qNkmJN+tlpa1bIhCGG+LEQel27k*2aVZ+XV9;L$+VB+R*i?KF8Bf>3x!}l$^0)Ra_AL&>hdnO6`sGISlBIS}Ql3nkIxZyYLj*CW_*- z3`>z+i}(~*qCwyalAQ0g$F7I3KsdT`^6=@p-cI3WxdgO2(+OGNz<9ZSyg%ndTV_tV ztvQ-K9~Q}11li8;Qe|OII6$RL{m572p-|hRqLu)F?(V_Mppb3!cVjU7NH;8En<{$o z(W7%c6I*by@&U83Us}Rlsd=J>10i|1Gws|;KA$VcAb709na(O+Q2v954U>*jQYuys%92;J55kGK;l>1wN>B&| zN46z61vbInYn!=j+^}IRa#$T_aw&ma){Gj_rX+wWY=Y#_w7~4p4D;Eijn^sU_!u&^s&0p?;XeuC&=mfIK@?p)fkwnSSg!4+(`R?`gMPiN=MotucH zUs2d>>VMYT{>c8}h&_U4i;TRiZHY%uo^;@0%Y+{1`MODCAU00F%Zfdr&m7B%r0}h+ z+qV5%^;@6Sc~Vv~o{I?=5V#PJoqjG!Y>Amz?*uhmVy&(e7n zGhY*&q=}elf+LKRG=x8=_i5DT%l00w-LE(!l1jllEcqlDuC?s>z-_rd4GQf`cM?d0b#|M6*T;KtCP9Gj7&IQ%Nt-r^Z2~56fM~Eg$r>#>|C4F$Hn`5>3lFr1Yu38B!K3s8#KhVUW>dVl8G)$o^ zV@jJ9cO?D{Z1w0Dj8Uv2wzM5S{PdkHKBQz2ihWUgB2yv&btRW8KmGXQB^DzgOF`_J zvG^m}v~By#vlv=LH-;h^gt?wC&*d~PSC|Y4=Y-F{gd@6A+fTJuYfqnItVAdP`mgXs zgr=ER*n8#-cQ`+YXSkBWn{SVKGZadhZ?9+stQpG46X%Ia9;cmZF_SL+LBs43xeh3) zG>bqrzvBW%rEf%aS!dU>R!L)>G;YYSVT309Jo5NCKz2^FGH9$Y&pZ*5%lldqjPrv3 zSt%A9i2X9mDe6We__OSn$rU-j0wN>dTEBPnEBIRy>jDI03p4%4#OO>3=nUuIbI?&k<;8bof7W?04W?L7Bp)_*8@TCv1SArKvnmoxA zUwFesusa;ZPdWa1cBIC+q;D!-=0HM^&sAdPlYIwa1gd#qK!u+^&IXNrM<{LaDS3}; zL;M7_NY^Qo7i9qO@pIZd&OgYxo(R>r%(68|K`P@g;9-qgS4VS4q6Nnq*@MP34I058 zJu1XXrSleNvlv${|*byv8tq&73=)y^w-lB(Bw%>uSW_bT z88^{lhVDYtLHfgakX2c*#WImI^TNGiwtWc;zU&2dMpXDRm8-3S` zO!vS?qw!Bbre5lP|L?yWaH(9pU5N0=do~w_?@&BlU2eS`(-M*hrKYe39Fg&=TL4e zG?KW^FghV@a$%IcUTuBZvK4s7T6X|UX~UH`h%LwRA>lC{5Sf9-8Z+TMisxHL7_-es1=;y{$<7sKj@L0gW4UXX!W(k85!)149&Pll7@+C~=ysEY#QMPS6lB zHz#o8h(B9h8IzBFKI!#m-JQ6jA{qYB9Z`ML`jxRjbka&_;^RfeteagSw*pP z85zkQah_>ZtHrp_UDK-F%0Gs9T^*p)lBwA6084+~XFQE9eVFW3J>M?@fuiTB3rtN) zY2}xDXTE0XC>@D5kw2>>&oGb+t#4*PxQCoaZUt*0>uKG`URm9+Qu~Cnr+o6;>lgzb z<8*n-W>&Bj|ILjHHjWi%q+Y6!{q~_GpO;Y<2)$uDQuy2b)i>RsMUYegM@kA*Eh4N~ z>weJh(B;!1oRl8Mvaxkw8VK_qOpGpF<%0LWf3x^G4M|n61(p%@Ifu$BBdvP%?0dui z#twu0P3!mF(9hH+Q^}awdTKa{YgR0RbQ;ROKwK;B$d~#Ic*B2rljcUK4^p($6xuYP z5Haa2EKXt*ia)2Q2F520w|tpi_V#3WAHej%4^+mG;Pn6smHt~hmiVn= zfIwx!ybq%Q=PkYR&-*?A>;^McOC-ol;fFs{bSW1>3|oNJrxGA))fzQ)(To_tR5vwR zkXEb*3CXkGpO3m_sUx=59#!!o4x@EA}21p@rl+w zV+%x-l7&H5dr{5P1GTWq(@R1kl?T!8us#2Bt*Cc#;c69(6TCnz*zC-FeOc;LFf^~t{toySDt%P&c*|LJp+u)Pfa)(Sxt zN4|OU@K;V$CV58~apE2&ydsEOLlM6<=st)&KhkXbjBViI07$Y#gK#|Eh~c2xN@hQNs{__oUb_AbRx}eZi>A~=x@Ng>|9bzFUfUM71>^Nc zXX|KijZ`K{V*}IX?mISg2mydhikzaTq~elX#I91lLY|M6U8C??tzBFhv1K|Sm`Rv5 zP@0Zjf}3j_aNwID6_=c})V&UB?q%()q9qI?y;tl^WhSb0m!Q|wwIcB(9!GnlB9 zMG)zifg*;-?DbCkr9iK_j6vQo+F8lPc_4}nmv;_agfqT{R~L=fmP{N<_vE1Ju)Qv4 z0?U3Zdm^gdf&Kf940P+UGpDcu1Y*3{;Tuf#O_N%Kd+76*eG}H?DTkgwLx42~S$S}> z+ERFRta2FTvPL})-Rx2H`Qb0w>5f=N&fZE`fHsW=suI__u!$QWnCDDf*}j`;1uo1s zQ%Dpqn?q%p=sd(otJnS0Ww?9olHMrV70y8U=zK4^LzG$x+$(b_`0ULrz1a#}`sx6T zg1fgMVHTH@>(Yp*WBYIdyG$NLlZhT3s0bfNk^PSGee5bpx}ldsgp9OWoIi0hgTcH( zLh(1W?r~vnOL#9tHB3V@{Z~<~0+duu-gL3k3nUvdV~zC;)95z9w=#WZy?feg0hfm7 zauwp~_oZw)b~9I4ElLayNcyH;+(kw6iC zb$mfbgDe6(A?Ey|T&^SZeRhU9q9N5zp+>-6o@(7W#nQmDmNMKU+CQ@Jvv~+ysX0(F$6#FyGnaPy&`Go%WlGLV*Ry zGL5<6CY1)x7(qsC5*WK+I$g_l?T+2>nck^i*xt*JAJ<0=t@Hva8i4SH)a>u)!CfLm zyS4LJ6nE?jn3v3n2XKks@$TW=$31`gDe`;=B`_Xb@dfMCq~Xnd7n(Z}JcC>xLi@`D4y)%NKuZKCflbMsCISE$3g#wsG_A0Y zpWqW-X0m-sItf#>U^UxB_Y=sjaZXm`0t=fyMZi(^GQxpW08Z!;b52+Kwx+2~R}IUw zFu>o%1q+Op2J>m=RI@UliW$^AKl*otXX#7@4>Sf@6KBJhTLN*%8(0$DhvoRkU?@(3 zea!~#P5RdyNJ06W9Mg7)HR!nTnrT8rNi1T4Jyx}~Rg7C=WrFXOD2*1Nv_br@l6C+b z-f4r-^kgp=O=S zsEv-@0n%Q8=c41B*R?4SZ3sE#v5rB+NCB_a`D=d0hL{yIlH%Bymqv`P3kTJ(*U|<& zHPB?w*;B#Kl~G8Ck27Hx&6E%uA=3CXqzOXz1mV|%IX)h z_*~&*N1tgpgsFMzRnpaRw|2wr`Zs_>$P) zkTonR=Jw(XS7`3}hEP$!kmbx=0y1P_8VRY;KzilkU)1t1PP+tXdYKsjY8b> z^N~3@q))PoD$#d`2Pr3$HxF}KhCx<`G7~SjzPy2+U-98?#r-^F$Yr{{%iTRDO^O-R z9riD$Mo?fk1EK|8W2AH#WmQW#gu>=j_LS0EgjB;eTz~TEEu()0$WA-(80h~_{kDfI zVdDbO`K164$~;%T9G*^y;Kr)os6dCQv1RfR(m{XB;!p$)y)8GCH7Ks({LmtXd{ucu zl7zqOt25DFwCz(GMR$N8{I9#_xqMcS!H&&t6>y4J(}~3zUYmxHd#OH$s3de>OQ3bXLP7BCkFtC~jF;jibebw5P(>1DI6GIB zlNaO6t5Prm+xFbB?v#!MW!}KV=vE)JH96~6<5gtn$6l94r^rEGS=1!Oqh{p(;bV%2 zpgvf-#-j&l)TK)oLGJt~QBjDX)BoDHs<`TxaV&U|hKUGEq8C(Lh+3(V7vVTAMGzqI|jnGP;og;l9 zU>OcFHy$3hTUPJvyj(dl77Z;z+Shv(akyKTknhmvK{33PJ}lkp+21Rx>sA=>v(106iEfgUT?E zdfvy^bzm1fe2Unc?l)lU_d`HhIyRXxcv1K*M0BlvXSed@9@P=)VGs<`@n;b;@Z$EEu^2_K}e|1o{&Z*o&M< z+|DeLC7f~2(W!^(Sh{!S9ZCa*7NV~5Phmwg*aHH7XgI=1wGkgVpijbx(Rk@isEDYI z)7UZ;TMxe_c9s65J(83iD4}!TwLh~MSy#Gn12CNC(@5!kWG1bw;&|J5(T?9V>X`SW zoKs(gA8WMY|0L4K7hk*h9qrIbInnV-0fXxFps?wAq0pi=()xjH0gV>g%bi-aYE8A_ zTQZtuj|i{Ehb_ho9{~U{6eRH?|& z!{M0*b+j318@6=F|Dr;+4wJv-0|&CWfd*=*p_Nr>Jt>x;95#G>ysA4fUx8Q2l@T0VS&_d{ zQF{84_xJ0!{MgB$^jJz`8k9dCf%?qcXdC>fiKe>3hp{3cI3;z@?%le|jh3V20oAKl zPo6!XcPO0>dO)>kby%#>N98Sg4!#dPr?@!x)73t(K@MqROl?}aA% z-yV0qXaAVB{-$t%tZ$q!#knPKANGO~fybVKc?Gc{%gA};gN4KY=ANh?G`Wwx_kL{} z-2wuet5yxc^*Sv^_RM%+P9+@-&iVC4hyJ(JkFWqc=VwEt=S)28#3}J# zwh%kK<(vuyd<)tuiTBjbb?A^tx7-$6XEFD>D!k_pgf6VP*-*PEWEP)FA4r@Ct@SmeQB)3|FP_)31l&eqbA6zyv3UETP0N{ zdjmY5t_i`0E|wk@!bJ&uxPF9UTHLV)bp@N(Rf$Zj^rn1BBa~~(7@^ZlU}?gbU25#s zeYze%-@azGPE<29(?U_B$bm?$T|001Jo+o9X}$b{vrEG_{~8>;lq;i{3W-CMWUY9) zp}uD*yO|YUSyzPd+bkP2c(U>Z(*Lm>w!DlUsQBd4YS_^6;t0kgWq`BJsq_^s_Vq+Y zq{wdq-E~T{F16hC;@NDriB@LSOJ4fy>QMdA^FrY@X7h#Ha)W5+uBHQkF>3Slrad^d z2$}2xCGJ2Zp}$B zov;J7qX1WsNtc!1g#V9NC+Bpv5DKcHi2&asQNjQrUWT%+jB+M;jki#W6)e_7xu~P5!|x%alo%X8O?@)Q<0;!S3UX)Y8^a_3ffrw2!q?)2sA#e3 z(Jh7tb(T!)JDF;Vyx)?eu^0%x8Vk*D<;wn6jT^boW2@;F5?xfmTx4SLB9=B#a!x6G z=)m#JD&Rn>QJ7&~(Np(6|M}Q%d7w3R1z}d*<1=a`QdS^(M_UKfH&R`Lm+Mn%a$xOB zs8OQ8xPG_p;7qn?@gl}Wp}abvQ>+()>@cW7S!Zaht-Yp%Rk;CkOv_Vr zWbWfJj-x83#HZX`XF0^XnzeaPQ@6xYbAkf;BsD!Ue`U_E_Cdogn@>4%$z^e+l|kj) zdIp&X_>C>yyHSINeKY$yT#aAg`_GnNE}NLtyPDVa&n|5y{xp28pUJD&v41`REWlM- zj={57GK=g5mON(j?qDT!VF2KI4*5CfzCDY?N|*=8>=J+fUX>a*il_qyn}E0g$%*qf zMWeQ?UTt6jNpZknL_9A!Qqc#Gzy15juA8Po?pL_L z7q|$aSnb;+V%BytX2tL$2^PUduc>fbLH(dr5l4r&XT?i*k5bfXB3eS z@D$m`y!%lbM|U0F|5@JOABJ(^QKJ`(_DTSvX6t5F&p&3reb5PtZ49MfJ?Qs;)~Qyl zG&t=@RIqFggMsg&Xb-}2Btg5nvT(udM&Xols=6dgdX$u>8VkGI)xUc8ZXKl}Oq@N}uUq$oozGnDbozE4iOcb%bkay#dD*!?Vc#s}*{>h5F9$`*v%XU~R|LC) z4-2q?RL1#XWqpDhjmj)Awu>Hw3V_V9ik_aHdJjMwVs{k?ivl|7%1nD5_;eMH_|*{(Jr#I9pNx9Gl<3dK&6CKSm{ zO#30H>4boHN!GkeE`fc)uNZIv&J37?8cH3*PXRwx z(k=1~ce=lpU1ABI&k~TeOjqm@NSc)UNvNZuaXpS$RGj*s79b^Z47o!#-f!ma=aCM% zyOkD93RGCbM`s3LB9;c4j3Np5Vqf4L=}jNRAHr-GH8YBaNynUL!5OOaMLN!FQ$KM1 zEkIQko+ei~@yyuvx0dC>-f>y7WWu4l3n|tKrxF zDL*9Q1Eb~5XpdnCFov8s1Zju^K@k;n3e$C`caN!S$P(p@ zF@U8YB1QsJK|c4|4Q;ZIFDTRv?)`|<$Z7V=H`agv=MrgVj|+%Zn|t*tzCn-glXBI= zz!JU)M`B&DP=^|*S}Natyi(S!XQ)7nr@vkpAvQ2Cb|PCq`X6{8j*>_|6!rfW#oW+ z(?8aWXvbv8epyF}HCqGi%m|4v(B#uIVF3 zpPrL0Q^$QD@GY&G6&n+{D*R~l?VyM)!sz{bAJ0Db@dJ9I~<}D{tmzXShQEj?k1m3 z(Is}!IZ0QJKVAQOW3wP&o23w4Gdlz@#GS`u&iJn3&!hKG{1@P2O6b&t)}u$f#|w2C z8c5*_-N?*Ye`Xb8bq`r3X&$d7yTmrj&4#X9Yb>oJ4v_!kS&;tC`#>Wp4ZW3Ft)%U zOBU9(%Pv=PWIUqlUc_!x@dG!N+m01cY{Iz3iDHDn4e?VgsZrT69G zfO^8=Vr4amw%E0B9a~V?HP>^rI63M{sr*r=>BkiP$(Xz0KDSYqBQ!_4Cy<$F%YB^n znm-XO*CU4;pz+zq->+W%?T3hrq)UKj_>!& zT;jeK+#U^?B@h!&{M0WWn$Ym--Jsm4z$BVT@SS)GCgh41C;N8l-1!3h6$-5Am-ACc zo#uqizE{YRZYbP#wTg<>UAo`*h0!-UbNdj=rmxjdfgV}`d{-f&B?VJE0=-nJbL}i6-0KzJXg>Q6@AVyl$rs7^VXf&gBL^zS zOM-VnAo>xQP}T+zmPtwBrn<(7Q|p3qGAG$(|H>+)EI18yFOr!QlQ7lCpUMeRsI(5o zPkX&$;M2P=Jeyw$UpVjd!42Jb5oDzzY+WW%EYEZqn&)m@NI!Geuvfca>~=xx6mwWy zgK~FHsDo=<%Z&)YJdE-qQ@3iW(z0XGLFFY*wtB$x#p8ED!_vV z!R6ZJQd^owKy`zW!2hmZxnbe#e~uqNxG*a<;PojK(aL1uo8L@H5opR|dwhy--#>nC zA3NJ8<%{drAe4`6hv70uNnVPW=vTliHPs^@hXe+eQ5Y`Q_SIn|(xAC)nX#H`sR?(P z-WtIM3FFw8H}CWt7Lu?LknqC7d{0@)dGe&mbfA3%)fe43bI*xvO2-Y~jdx5bc^pM+ z9>%<*3gMCa{i-{Gz3Rd65lAnfEJu1&uh-@i0rm*!pc4umX=H72tHrvL&myKiTHo&b z@9R=ws7ZrQzac+B!cFWzgIYebG2ERrB-nG;NxWj~`v0|U-MYbV-GDv`E7FRhAHS>X z#=!WkhuNQ;dcP)kh^`|7mwP>%nrrmf!ZdkKLCSYDr^yx6oKm=T5Hd>YAQbJ7#IK}x z+KPjMRJi~^(p^{trHFs>&p%4=(nB(KXLTvWn_=_ZM=>G_X@J8nU~%f!DLD({iVEve zh5T4`M0boE|M8l~jF8QnXT(l5;-G%2W1D-*u_JpJ+(|QPvc%)ai2Wd$bf>4#(UV)S-tJ;;cv2#wz{4z zXQHxq#H})^DUi2hr_LohMuE(F=m?jjf2QI)q&wLS{v)LQ)L+@widuShg6^0icg=nZ z=HCWDW=vobx$xeZN;tk6Ss&Z;Y!3G~j=Rq%iiipH(49>(aHHF3(7E%O2UeiJEKKYg ztjMyE{;N=}rzwnIwQFzxx(bQ;T+`i#X-95025uU2V*~r8Gz`(&^@jlaX_Mw>o`&ko zPbl?q>V4}i2b%YBXgn-=iizj7e@SvsI_tBKvuDlfHDSW@x+$@dQzD^e&I7+HgoWu@ z<0QP7&Po^zUDt$byl72ku)8(Ul(dppr=6h@{cU{`x3j_y8Qx`vPtLe^o6^IlY5i&L zI_zBz{i->xbSrtnw{>`N%k&efw<4P8^dzsG?t|~m>;W_I5$^aEk;H9DJ;)nzXl-f= zEdRPzA#8Y5tjplRjp{zD$#YU0L9{DwEp`frj%?Es&%>f1i>5OoB&inU+0ivq^}lEL z#BlWLv-1PkR$X`k<3*zNnsw_GqoXWWN-#62S`}spKVOGGDem>;HDEAd4=vGU$ml4x zKKjfBgdKOXuDCyI@j<_B?Iy~dDV|9;fm^N_93CI}cI1$TUAojW0Jyws-s$oEnZMdu zvV@0zd;p^-ZW*iyzNhHcX~=V6OMm!%0?@==fX&I$$Li9>i%dWZ{yA$EN+E4XJ>`he zKFwm!YEod}=nWP{@4+IH-$0jFbJzE8>;Gaukz@3HQrW5hTkwf{jqB82BN21Rz zo@Fa{aEu7 z4c}vK?Dui?xd9pT0czH56D!T{5rT@ei|;n>+4AgJq!j%$dPIMa0{OBy)gd;vzPv*I zXg6hWwrzXl>a?(hHtMz%eL*!aGQhykN?lm1m5I5wxuhbMRMwrk(~-)CXpgCj`YMLz;+;m!o3Gfi3$y!2dRg;$A@Vr>S#_XMQtKkTMed6r!=R2XaO|pPgTis6Z}D~8 zjI!W{y?{-1K+ry#kcJjMw4_WWH(~8*IFJ>JS0`Npa3P#Fi=FprFhEZ_9d&1J z6}VUfc!6=BHgV`KAjm;qjqm&`MI2GpxeF;Y!wn@~;-8N^<5huEhoCic3K(x7z`YN3 zSxga#kFItg9j2T?CL2aedwKgwe?s-JXswxPvQNphe^r7fve~*aofW1r(BMF|)J{*;8QW^0!fsDSaR4xvcd*%|yahhi(`RhKrXc~p#6a~t+dLHl`w^fPfj|VZy8@hY7Wk#tG%J^+=x+?G%claW6Ln- z#w@FL6RwL&gD1;1B0g@+|I0s>Ac+`j7qxjSHT*{_AYbKf$}yke)VR7h!z-axV~*57gO)< zd*d|U^WdnnH9=GtzPgtPt0mb7FL^NscO^wQK?l)|4{ls1{JrKGtgO0kw>Oic;9>3o z(&)lHfiN}apa28SzbmF(29HrFGE*_M$5%AMMSNQw2mDLLgV^93eB!qF>ZRLdZrKDi z;;`x{>oe?(HODGn>=MGYHf)6E-$zk>R<4v!>oEF|4sV$X%wIn^T@6Y=YNCZ4%YYhZ zu6{f4GN;Q^=t>Cv3ngOTay&UAar!UBlfke6Boi5XX# zRIuRi4c|)Ri%G1ORKVOI>qjiY*Qm~I6Zw>ui~iuo50PDLfdd5(s6ZFx2$5nwDe3qF z4<-{uzyly_ew3K3W5-P$?j*0~uoMD~tdV`Fl;*A5wkb^n9$<$1be7q#C#$n|Z;gm0 ztBJ3BS*CLKn8FU2vpl!edg%p24cTlSh(a;LB$l%ac-5Lye7?8ZwECCghHx z$oSK%9o$_AcSs^aI=ox z%kj*9XWzK-tMuUc%aSdKS)ijE_Y2mg=wNQe;A!3@`5!H3L+s*A;bZlW?4I#X+yFC@ z&m`bhxoFBQ>~NDkn2_jsFJOe5!7bf%t7X9}k^YCDc-3LBeALjZ3Pym%eFE&L8bVZw zPy)*IQQRvL{vC^}jnID%CIzT68OX=V2jqVFrp1q}15Oq>qLnDYL8ZG=lJoja)@i*3 zM23+~!Emnli<9SU1K47Th9VtB?y{I$ z^Sk~2`JLPCd;6YqK1aRZuh;YW7}w*vt_O+SPjC23FGUA<=Ah~}fv=um_M|Qp9`-VZ z23$krQe}%!PH00mbV{U-`}&3^-V#JY!WW+xluJCLjqr! zw4T_1W#)AfIMY|1d(Mijvu}1Y5LPK<=)#pwhzLqWl2s8x_`UOSh#k_|Sl=F4zRK6v z=@e-A$wE7aBaK^H7E%@t`4ori4 z84H4{a@f!YB4&O)kxHo602>A9KeS%MjXu5T)_0`k8 zeX807E!{!den!4guHmR0tT)X5^QZDjY(U6okntW;ga6Gvr&)lF+oq z+uRRWbg?wJ4LR#z^o{!Bb8>W(;AbdwgB>X1`5vop8qoH+Fynv)FDNKQ;*!b{I=2kB zo+P_jQ85Q9x(I4_m8PP(yBLYf+rYo6D}eryZhY_9asi< z$pZ%Z^wrcF3mW(uUw0wRw(Irtd&V!5c9RL?YPv*YV|Ty;_#=t+Wjtp`rgU;UAWqym z$~W|WdXT&z>KKm-D1Jf$5^AQolD7BX-lor~WqBnz!KzLBcK{=z0rP1GSwvop8JdS^ z$g^`}SiB>rL5}(wF%f?Nnke0hH3{WV-oOjJBmqpUOhGr~EB$-#16Sl}uMuS^w34hD z0MRr#F>!JKL~puJ{!=~H<=2myoJl#*XmNnbbmpRpWn(tqH{EdHu^K$O!#L%B2o4cn zGd_kVk6CLX$En_5TYp^8|R`MUN123WV7h&d!yRA_Y~g@8QJGh z{8{3imPmy_D1+`~4y~3$iK3o+39gYy^<{_5AVtE=#P(qe7Hb0mk~f2auvMDP89=s5 zhLjCj_`u}*>HNnBX&*)f<*f2fZEP&>W<%(hB>gr#?WpV5OOU%WetK~WgU1r})uyJM z|6Wq-k}%1C@uFS#%0y(F&I||n09z7d01^sNS22 z;w@HpP^sqUqow%Ho<2S3eo6)>Kyqynz3KKO#kC!~cqORL9#~rzaR*z{ONRPvWr(O1 zSZcdf|H+P@$MbaI=n0`cEUgod8jo%r_-N^gzkXICtt%p+)iO}i?{U({?Mq`ORXQS} znE(De9^L<-Y=vUPW)qQcmE{TukPOf&Pr9*Fn;Do4mV^ea)qP?)Fg(r&q^ehits=A& z_Ko#sCd!moC85RwG?Cm1cdNPh`e-{Zu`viJ;06yN>DIxz8i$+h8bLFtDOX_c(X% z+`BN=-pKTe)2r2tR0?2-?CVRpO!X2ov2g@pqi$nNNZ91t zruq&%M&leb6;u!%|L-y=qfZ@Cwer`s|Ldy! zuEZ<4#^#zE{hKSl|G^+$U_dZsAM!~k5YT_ z>g`Iab)!SbfAudwZ(gHzhRKf>d`(VtqNhVjUXc>KjwVX}YI2r+-H>Eh*4WoBM>Od` zy+B-zV_k$IpwT}Iob~lym~C1iKsb_ah1&Rct|3}*2XTpKYo9y;}Go(%lIl$eRz}g zjd#Pm2}mb}V>C&y1r#&NIg2CC*Ll^!b`++NdbA6aA(#8!`O1Wk;N&_HqW;(I6H^PD zya}PK%7-bHoaq?~ZEZJwT;R>=IoYz0?!hi9?&`u<=czH3{FG!Ve}upSF@v&(&aSs~ zG5Vqvq;EBiI5}R*N>667iKTUe-0V=B5=p{ZsmoF3Gluv)a5S%RE&{(|z%)GPY1fUl z>mQUKf@Iwhy@tp)eC%Y? zfDRUQk$_uxaaDuUAfqu5c14OK2`@;SJDM?L6&8FKAW~-poKqm4MI0<3%4nFGy3?Fg zF>|;td+OL+IhnX*4GBR$O>)j!nE6WsbR5YD&dALbFriI~c*cM*pe9@%=n>K}LEvkF zv;r6&LeuFpi38ogq~3k&Q`LM0mVdf_3=rX1M;whoYji8Ml2v62RbDn+(JKWkAMWejJ?1e&EC zumH<~KTHE$!Z_XXlcM*u=p9s+k%Ii#1Ume)UB`}2m??|(F=o`~>;ak!4;Y}8SU*cL|4ps%GeqHARthrFQJ~Za1TKe0 z@E;3NAq8jZb*r4A+M(VZ$!|C}N%&Kl0JYnBoIgJ{Ayg$&=+Fbst zI7V>R{~6P4WGixxAorxCB!ht&x;MsNt6c#vHTj~%6W0b#5(3v>5g~zGoLm@D){^2; zz(H7spamA?M>N+o1GOk=k(=S;UgKWq*iw}$ZCUVbHovyYj~#+kH!}XxvKu%B0y9UP zU(_BX&Nx%CuERZ$!JWp2NL*>|IK+BN4( zIf|A7=H_ABi}km(zB;Xh+UKHhxnsBr466(3-QX6heS*0k*GW;txB4pP6A1mlV0*l_ zva~J+H?|b_UH%YiY)@{jTtD4;b>vNfi;^6>3Zvv%jsCZbS+K@Z&3 z#fMK~ll6f9NMk%+fErP_Gj=|GR(ZQLZ+45TW}Qa}0+=24tgA_2fFjk5&2IEVOr+#6 zK>c+zqJF?h_&o*5BsYQ8f@NePb4F%voX&$nv9Rv|=qlTxsBt5dq$L8cxUzu|-NjNT zx3kk+9XzOqOW(eh)@O~$ae)_Yw$O2A#^O*iCs0;w-~ML>toTawqg@5zlqJpsd6Rj0 zyBvimJB~r9MO>|b1%fF>Qp0}RXUs{;ZcQo4R(QMw=Pck#fj@jqPY?P!Wk?2oM%`e? z;{08>bLVrVI(VHv-JTj%+^QyHB2KL?M+sYEbUr4~ubWCvLu)F+mFi(|57rgJJ@6*I zf+-Y{vW%K&r7u0;UZ#F#ZSo$*sue!hytF0E3`er$deH#vbB4Aa4gRznl(oWB$(cx( z6`t-o@Q1wnNSL`p%VQvP@@e4~U2lPSGt{Ke?#C^~fV9c4s zt5pb5x9LA-oE~xSeisgjjIT)!7>teD<3wQ$4004-713+rcYgfEgd~8(t@X+p5dKd5 zk3x4KSApaw$(=+9U*8UiuiAQIad9EJQ)ZoCLE08#KV#`cj=@}GRvt5hQdD>-bh-y; z=QdyJP?ynJnw;>U+zAx~Ehxg7G<$}UQT%bbcb=nW_-y;3mO`G_Z@Ag37cV42=ZPL` zHKN1n5q75i);KzU`!S>aPF6`rR~c*4p1;qYar7b7Z)6Mk4B}V8`%Oqo$(xb#={TE- zk$mR)__ECP%~eucaT zFOsL>QujO`myX@yb~XLe^^&3ILv7v0A87LCSKO9J&!^TNkv}r(H+{hahxbzd`Cq1lYbo_;1|i1fYI;0F8^GsLButK zsllPRH)1*FpLSs}j3G3#xpz6^fQy#1$Y>4(;oz4k=BP465@a4Q$wIS8Bhw-&amalb z8_}B95!qQ867;xv994T&Q|5l$pFKd`Ky$&w!qj@s(L0Ive6ojiILP7=zvA)2{@Kv^ zCflmO!sUcSXU>tNQ9SUt@T-#>D$b=HIreFQ-N!!t+5*fX-M`u^yl>`Tesk{R%}!}G z!pc%bJh$i&k|v&PX|VV&2kky$sH$e|{=a*{#FPtAX>8TVEJA z{q(kczy}j1ESTWdW_`uy{QR`0v4M$m@3f-(God8(+`irJ^vxY@oL3N9_wqGDeI|!q z=h&%*d`5dome#7WkIY!)^m%MZ=1|CIlD9Eba%qxC6q0QVJ%aV?f_}jhK|SFOd*ok=v zgdri@)An}j59~2xCG_y&_o~$t3#iNaAM=?E^UcOqi_SLVQ5^^h>W&ACiv2rxHg>-M z-+%6;r9;mM<{N$T{&{C#5xK)qgEx+0Gz+Ekg1Jr5jbX!w`#mX~o_gY?#d^P|SW?=p z?bmPSo6OTEM%)DH9yxN`yX31A=JBhj565)01=V7NFyX%!kv=C%V_dv>abo0;)3f%S z;&;8fS&%a5;q`hvW74-@1wHHvf3MtqY~SAR(3vz?+X?%Ck0=8rBDOXf(Kg}mU6wy@ zKId~kevv#?sD^e!nKGYo-8PKT0x7Wki$`A^xi!<+vaXY7cOw$Uh8P{B^kF^&0|!~w zt*e&vuEX@Zpx(C=VAIMXRx~FghTOwCgp8-9T_RP$@9N#Fm*>0BTe^ZG`ZeB{IJ~|y zyK`y~1!Z00=U0*9LBw>Sl1vJY&FIr%BM|qnucINHdH!l#`nDGYEVGky=FYy#ftEJN zv!HXdye#SKE_Z28wBeNVJID7cs$Yrx1NFeB0ZBhUy>k1!f9R;}2u@qtcONvVZ_nWPwL79sXuUJ4_W;c+TSB2qr+P znmL>CGnTLyO~o%YBN6gIw6S+6QMR`|q=$0}a6GiL&$yDWq2=bGVEi(M*}vb^+`Iz9 zsACq{Q!jqG`u0=aUx#m^P%1&m`7lmYUVy963jc*JX=dLKZcqoSs}A<|Pt3Z`C7$XV zUMRagCf~_*L;WaAy2Zw~d14Rnl_5uxPLk zxxb*&?AaOXvfZrA(l?iSOG6{i4~w^Qp7%d1wH_h(QNLa6R){g8!FtP0}QQj zw|UonQ#zC@V_w&0emUP++wwc_@h80}Rf{9)Vy>i)gQyum{bW9)#}lLz#wWPFP0*vz zjAl)ay#1TTbT>_<&4L@?272)DoAMacBsXrH%<#IQt%DYg$S;Uy)IRWj1Jklqh2OZe z5YWqnelG}A_1O$Uzf>e!%aoLnhH-FLJ@^#~(v#1RW?eQi7z(iBbaUrH(0nN<$Ym4a zxI$WyB~nnXsz4j4_}HR#^Y3Xij@_iwZ1SvQUG!O$@MdAXP7`^_&Cn{@yfi{YH=K6d z*Q~j^@cz%kX3!lBh7DF<9!+8Lxqd2Q2=k3zsRe1`G@`$FF|hB=DKPeEcg}_90Plr9 z8E^JtQ>LY5ypgsNzmQO`uYn@YoA>w}sq!<;{sK;FOh7XxN=y-xm8nM{$zdPv*Z3c% zqMF-)1~Es&-7M(w-6xuQur`>9EjL)gom?)n?bjjM^M;+KNu9lh1VedFXlpU!g_Q)9 zvM>w?2ym^*nW{Rf)B+$Gx5qy*FptVD-m_?@l$1In> zsMOzd%sh@#J|tx7<}o|G5By=gKN;I2BfG+t^x&b%PzQ%^4e)^HufEy)9jUWsok+C` z9N_;oW7B^DT^cnF-xRWP^5%AZ0(zQF*i!H6sijMI?)vs}_vLGk-7`O@f1LMX`{~fP zvv2O+Hb3$H>~l+hVO&`Qj{c;MWovtsHvI&#m6s5m@M}YxKiLw-eUn;2$}-0FT*arE z6^=h)26Usb6_y-(sd~`SJzE?KpW8Xe)}nCjef9aq)Pq6)wd7LH%lu#hX^j0_O?QtE zkS|x>ZP)wd@3Fr1%h|JLX)^%>f18I30m{{g!&u8(Wk+d?2fYfo^0RzI4p;L>QyGo! zO@3csh6zUt^I138GGCMbJ37TLwMWz$%0FVeGiG@Q6cKb-F&OZtr^Yvi0+G)kQz8m% zC?#4_@tQdSl{vWZa(InL7gh8qZBcd2nTnyymlm7Hx1RUyQ$3`sjh0z={hAoFXSYa7 zz+@Fux4s}xrJz;o?vRs^kf3cD1iFKF8N&@M_Xi)iYK0?3YJ0RPs^8BvKw}DVuRwwG zc*Qz)tjOoSV_c#MKZZhJV#lK2iqOJHxIoFqy;;w_MB7LlNdMYjCVeDhqLy~Pjfu8n z#6}&^WLF-3&d|<0R8wAXf4R4Y1^5t{LzM{iC@U?Jx!`DYOQhvlQ!C>%i51yEL zdbHY9*U=V*9joPj(0NRwqEXZA4hmXDv9^c&X|F53IF22==;N|Y)7+g(P~&Bwyd%yP z|26%;T!7xsnBC+j!kx-+fJ$5e!ySTkD|>PHu|JmbN$G;S(YHegSqM3*M4xrfcX>GUW6QZM#Z}#$zqzr?Un{brFR(ekr z%$T9zK?_Ydu%*nT$_1J8iqM%b#L5J-c+<9RZFf6q_abcKh_v?AO9JvXyw#FFJJmX> zJ|}WF6Af)zlGnP%5^$*YQ1rOQ8BfAK>ULSR2~irYIHMZ zT3$Ggs0=-G%vFYK@8D>*Rw77oJ?WKgV)Rv64JvkSM2emqqPRVCOOD zZ|uTd8=aV0*Q4|wgLBVG`lpnB&<~-I*AQqzIrzZWl0edC1SUt(aO0us=V7D~p4_Gb z#0Y&kJ|`&0bTD5zy|&fmAhf=`9;y3 zpbZ2D%=@*;kfKu{x$r*Tf|w4V?S^iZ+LyN2p1)*li{c5j`CjX5rhoZzfl(+=%UwbX zMg+g__6hEbgh@!I+FadIio2`T0F*Zp>&kZkP5_UYbnOkHYA?fjMHN0w)Er_*?S0+< zrRoB07h{Ft^5*yL7H!$Ktq4~IL|jyU*SOlV<#7mdRarQZT7;73=P;(Sz?*NoZ=Y7Ov3op;P zJoXV<9M=g?uj(be_&yoG8(^PLkE4{&#LVo)GGFQfoU zviu+;+BJx6`zAN1(iYwg1M>dC4c$-yPaSL#=v0yz3y2n&utBe=R}!6#JBz-sC9e9u z)y^LmQf5fi1r12VO&DjC-z$(9^NGC~sXEXUh|9!reBj$phqv#xZQJPCEW)>9s{$b!1<;(Auvrxv8KTzJE0z&TiCW~ z`$2`BPaIe_fT#YVMR9i|kWrK~#Nm%$zF2|_KlJUX-&>T9iOe5Gg)UG(JlXpYgZs}# z?`hIPz@pEVmjv-L2E`LSq-z{^(PH~1;4eoaD3@H)lZ5G6%HQ)?BF1{30mnnDEu)+? zS`zf>6Ac83U3SBdF|${KY#OA;PkQ!D8*Y?T83a|jl10(d-x$SAhl(n}6h(t!f|)pg z@2~dZ!+yL?d{PGvEvMM~*l^EhKs~6M809yFyGeyvh}i5z@Dk4`7wLcCt3TPsnNvh# z5r@~1I=S%VyQ2sSS_DhBM9#eKeY+O`=Ixg8{N*4X!*p)sxvfV5)SyC0l0YXZH!Xn6 zBYs|`EwXZxf@Lolj8MI!lBS6pSGh`+qb93#60OZ9mT`M@q6n9DLdTK^iLFYE_?a^& z&PT2y2#QlNufSWL{GFAvc&6UoU@k^iQ6_OXi5)k2^$#{BQiI5s7u(i<=T!e>Lh6Gb za}mTwqfFxYs%uj&KyMV6Q$%!X2j@Q1Ev)u-H`ZQz(7PpjQ zWcm^_uD0}aY#|#zCMpCTP!{5oxlTNozqCcfI|uT;YwzIa%(5$!=DIBXxmK#?-*w9R z1$&JbZ1{wU6U8i}FjH;MB!A$-E-C=>QUc|NpY#I<-VtFg6%wX<)JH%=f{fU9kHU)< zOZ*Wz05bbn_1>FLSvaT;afp)}Ktg8B#E%%?aj3tnvT4s_0QhkenG~M9zACMk;u%R> zQWq3p*XQi3y7=2C>6?0^*&+7O#CmI!JCy_VO8)A=?7+ike}nh?)*5 zHc~@%ff2lo@g04;L6#_q@Jb7u@lq(s%a=nb=RgmFg7*3xOa7?G-C^{?P)C7eeWRkH z3Lam5g`h2)dCrikU4pT>L*;_xr{0twFf?wly(_#<&R_t4PNxQgs3=jYY<_R$QTo$= zmQH&M@`DH5fQ6&Z477y+F)V#MkETp5PsbyZZq`5v6>_^`C~819?@ou24aF=U6QRNE zN#Ki#lLcuMIDd%ok2%+604BmXsao4`frDIoXYb))h^;G^=L(@cA9G8!435s)-21t? zL7O(f0_Y{8Q3(%Wcj276F@>s^EX1ff{;3~!ob~Dj?&{!IdPr~MiM3#VvKI+4Suquc zk9?z`i|1B?K6ZR}m8@uskDIIv1>=-87Y+LV0C||DTDV4V5m0yU-aTXKYDW0B$lnd3 z1>J&Fl9X?rR6yZ%Y}Pnd7TUxY5JQ*COg(X43!J4GqtjuB-B<#Kyteo#vJOUb;Pbwn zrGY>-C8C`MVjMw>ftKD5x%urDEH4?P0ihy2stkRr=XZNfO>K*5kmT?p+ig7eNo#1t zbR1y{dEjxx=t_>ri?Y8IfpX-I>IT3hH-MF{4f`w>o}rK+5(uj|Jl|VwCQmtD*`ys$ zaZF`#G>Mv1_mjzQ&c3#7;bjq?{G&Y4Pi{~0Okgl|c~141Nwkan$R4nu0>3hTQ^x>p zXI!HywSUB~eQ)4tZTIBgJ0``ftjuaVCPrSyBFPxt%F;-(N!g26eAFax3}nb@q)V+n z;pyr{QxCoL`b7nk7pnz2iH* zh#P)rL>^A;p|O#Fzi*gvhj$=qowy)yr5SoW^tH^oKt|Jy3_m*r9c$niaiFa*t6IpyoKp z+%oOfI#beS+tqFLYOH!lVhq?`jR)eixZqIxdQfE{m&Lv9b@>*1hB+)Ur>jj@st{vius!69>AAG4n*HA{D^c==r8)0D& zePb)Z<&trQjC=_N#L!(AS`;TFnT36Wm_x>rGdEWdq8qvqZ=l7Tk0UIq7BvRXGTuB> z{YOmv;uJ?Af``{pm>+P1V@xiE3J^DElifmAhhU#lgdRccTQV^?#>HJrf39Ncd^Go9 znWj=@PMbbGn%8gyYNqUn`G!$&Ty_TruB1X1b183?juhiMbTr{&ha$>R4@@SVI;~Qf zKWxBtvwnPQP5br0H^!EbEqWEY$SZTo$25T9LpyYVrcITyd|T0BF!jGcJWG1@Dvki2 zwSsy*c1~fwgioQ^7TS)){N5dKJV}#0B8?I4SYN*n5S~;bKl<-`_HR69hUeMuLqlor!Gm6lH0WPQ#7PAs67vDDHKc|V4 zCe`84L77IlE;9s)|5Vg4>JLq8RHpX0$_0VTE^tCb6rj$0LPELC5CZ^b5BHfYld*{= z0QMYMR~^zA!|rZWf(8~$n$WVW-?(vH`+BuAa)b4v&nZ_cX?jV;pfJRjy^`A%|BLpi z44@zfI3Er65fj#_RjHyk#j(fmG2f&~lSF42H|~T(Wku&DP51>o8reKfgBZti9=@=v zr{lED5B59T&n!sUP9q@^D>RtfA*0&D`q)iw6axhgl--HR%QX+B@51<;=-ZR#Q<;Lp zmqa>|NSd0E_|CRC8QIp})j6pU#5hgb!Mfykk}y60IQEQSJJT6L3hiFj>qv4^)pEvj zn*^C{j01^V`hWa4Nvbiq-?h&u3}Q4$CkKZ^R^YzyTa6OXrcHf*&&#Y&(W6^fg$TT) z8e)zD#bJC%=JsaIn`=8FY!kT*$W4ov^=!uJ#Lff3%|PE2fLUHG)s5Zk!)3(pYFE7^ zunnW2KKHX7(CCzOLARp+7Z!2InT^(KZ1^7gASG zK%&j3U$_M;vrAxu0JZyk5ieGZaXcUR)@i}ue=-|7wV^|pf$^i>o;XhLzAASHg&;Z0 zOWHv?3-f02>QG82ot~DImo(q=Lu?Q}!Q)_$aL~M%0;1M7mSwpgv>S(4wz=qq-r7eL zGyoo*|I(vsMcyzcN!~xMy~{M@y^pZ7i%Ccr_2OwA-p1_7Q~%(pbPc3NM4%_h1I?5d z#o-PqSa!(uj1U3`ITojT z_xPRE_}ZVt4yWZv6!u0$RHqHpf>2bj9>7aB-;=h1=F)nrApxP2f`GPaCA2X9lM6Az zRcc#q67Nf(JMLbVwsIwPioRJ> z<^(6OWujm^^b%h>OGqiQeq?4NloZ6v0uqss6fnW*)6>o3f({;Z5~jwwR4~aElqedO z)a^^;+44+ z|3n^X9;}t&xoS5l3}`8>$*D0XR~%<)6-Ga6kY9fe?8^77oBKV(&?Lmri!tz3bqRPw zAw+WDP!%MJ*a!MDHsz0!UhbekpMKh>Uz~GzbtejKB{xPLGD0D&JHfxhM`L-^=a$9Y zf90etWpWT|bAyL~8^~TDxJ65g!@q#2?+c9doXn(|*M$o|7Z)?5@&wztyWraD_%RUw zFWg_t{VnX=j*>w0E2>-FUXHJipm0OC-o3p-bG|~q<7+R+E-U0i8cU=Npyr3aEPw}4 z#W0PQ{``dha8%&&eY;naimh+!@O=E#GK)d*#In(mO z$Rf2ifAb%h(V}jWNjo|FMVK3AKQyu$#-RNf{Pt&l|AS)1+rNeDZ-GgVin&gvL(@h@wS}(4+$Hr>R^3lTJ~VE^8mkupcmKAAEw+bNxvSk zAY-+g)9iN-%76~O7`2p&rlAq#8M>FcSblfXuAz3~0~%r6eMPEZKP;6D2YG59zouQU zP}&xh9DNso+lCX}>NV#H{LIeNeZSk-8kDzNP2VZd|_L3mrh4@Qd zpyoCPc|Sq{jY6^I;O4e&;`QM3^#=6mlVrbjFe4`dR&9U}oMNKzBg^s=o>)5|jq+53 zLgt>3lZ^?s&W2uc#HLqpjf>(-$dc5>ZP?(!-B?qTcxmI7EphzYtb1b@Pit2lKu84j zD^n>jC>9Ixr&1TWI%U53uK|*(=M;fiU*42c>!aPFka@sVD+FcU@VHy({c^CoeRecd zLfzGN5DSdmyZ5ayL}&bE{vr9AU(J*|Oc73;m=zdKgO;b8PtB;0u>d+7@E599ZHHaT zU3|H~+s9tQWW|$X3%g$0Xx6ynob?Q!fJ?+qHJ*Tpg+Q<62qShREDUmh&6~H>4-CRr z(u!-zCw+zXq7mI>WcqF6?+3-pkv%(!L(n~$KAZ@h_3Q2W`~0ZL($<8GoB-I?jrN^;nx~}Ku;e+VEayFqT)Ga%nYJNO6zqGoZ^JWV zRWY%nXSWE@ZX%C{N*FH#uMp3x?%}*`7_pJ2qy|$3KoSns{WWbV_;E77eDY`3zeGDY z5q$NKyGsD*W#tNJ)})@3EeTB|t=c_2<#~r%-U31r!FgKpr4n*p&_o(+R<}r%5G}OW zyr5hO=|#Rd8!u-}Y|0FYEO17PLV$rL?C{qf^OVF#P%3B+m)rQ49dgwMTuwFg-IHU z0X><${(JH$9g^jod#ANa7ONfFPe(#9=6=iJ8X)T_j$jr0kL~ZhEw=pqcS(LWwMjIa zI(U1KPDgL95NRf-S+%Nkw4QJwVzA~UAyu5=Vv*(kRf9gf=NB*4ib3)c`Qd(6_v-2u z`!mzxBQA&NG4a~g=qaIFZ(sA_lqIXN|}6)je*C47BGA%xK$Ha21R;#{Uo(QZ!hL759kQ^Lr% z_cG@qNs;?AM^QNM6A^)7*E5J(R9m}^pwWhLkRw5Wn6-X-MAMnaKy5YCKf5ope_}#N z!rSd@#-?^C_5u3?bq?>ta+)rAdFXNmy`j_sMAOjegZk3_F8Yym^wAOwdj%y|Lfx4H(AwpI#bX&T0(w%*K>kK5Xbv3qb#bmXh}wwENAi z;vA;-GR83oXh^(t<==mk&TSc2Ew%-Z9}RB!)hYnM54vA5T#)yaFW~X38<; zTr2Z>AS#BR=UVIzFx11}pSNd_n}&y9J%D1A7hBuUoEZ33W;DQt5%r$$SfLdlG~a^% zDA8i)RKGX9UG=A4|0aI8*z{UD0WkgB=Shlelwk~CE-?)fRI(@Kz~vbr9#11z=8X7Z zJAeM^ZWBZCnt#qm3o~=D?bMZS5KBq%xKwb`E!Sct`klorO9rRZ7qKAX0no}bhwyRf ztX067^IQlmbmE^s)kq_|sE2`Bs%46dZQ#^uqaVm~P~WkD92XE*YS%j5GW2Ds0lMa7 zEpn@wg~P{+*raEyYUn!qsrk33E2o)1xpedM&noQB5DAP`4c-o9x$YXkT1M_Tyi zAKwb$q}^mtkoZ62hK|J>=EdSXQJ}O3PuR%L4s1s=V?LouSF(pJyIJHTIsN$*uG9(u z)x_-N20&g+izP4>_DC`;Q@y%YoJ#f#;_K8g;1-CNM2SE}8D|=<=aUkrV7SJBvS)2w zUpm@2W@_Wet-+15Ckz-SG6TQ&1$!*hhw?-j1{3=EQ{@xFo@DvK(bG~*t+8yjL@OH& zVt9p}SqiKVT+bu5fB#-bt1;=GJgT*&G<`P7Ir;MDJ%V41%(3`Dpz9ZzHN(_jLn2G! z!oZdYwcWqJZf>iM1sS~Z68V`Ea9xg7yw`O?9IMps*VU!gC>~88$v?2nl zNzg?pig~NCln{uYv}H4G32lk|uT*8?B;)`{u3TPw$BWm7e}a8xd1bmh(ib0{x9 zB5sLT{M|2Y@vaWDS7#RZ@jd%ZEd3oj(~eH5M=HhY(8|ZriOyq-cKc@O<+FQ^h6Vm!35@7!6%>? zwxGhbxE|A@c)n#VdEKd7f0^9Bch8Sn)k%|xvrjHx_I6BmsuW&hT~Sy6wy{4JelS$V zIHd1;o`I901=Br?>#;AL(nE+K1r2%?=QBeB0%E{HgNA2@%v-{!WOUGC6mP{1FZt*Z za%`^Oym@Hfn$)%qh8AR?&~P`l^qIv`*tA5=e2p5RaTp)YI{ViMF8hx=}PzqNUyz;A3_24MwjXrcX1;k(+Wr7lT~%$)ly@???Jh$+BK zI}xhXiA|cuhi~9{HKpkI>M;zk+CKs&+#48pk*nTmfBdxjSN(1)TW%XY{a{bsYnirSoEzdSH`t>kY(x95~&e^)0&+dvHWU^ zR!y1TIDdF>;!b)#Y@rt=};H4^WsS}Y!Rj{kbiK7QNf8|&T>TN2P z<%5sIKMQ<3<*a|6GTLs3Vd8L?gAY1>p(Am%9QTA6Y%oA8Ui3Z_SbH9N!RrkLo>UxM-HMbPo14pz7mz zk^tnd!j_(mi8)zi$`mNa@ij)JFTVIb>ZbqP#k`WG`^cU+3PwStmx6%`y+^I9kIN;= z6NlnY!x!;{U_8+=$AM-t8u8-69XB~@#~cXy#jEdr-2zhiUtm!vTOS zObTgO#`5r)cQva+g5s8G#GZI=?BW@ue0gFL(JTR1eHM;sTOj_uquqb!_xn8LfoY!2 zgj+>8-LJStST^|bjh-{HckNyN41cTjJ@VMX$0ZM7Zg?H@k>K(+&5k*PXB*m_E)|3A z5#dI*X%HWTb1r({wN@| zx<}w`!{3bR-MbJ6#O4uvByUY;8J5Wzi5fu+QfQ{uXA<&!jN~$9eUCGT}PaF zq2kSuP+)!X7&cH1Qva3S992Z ziDsN$adyvlW#;N;zEPhF7G*@Sawx41J{ffK%yaXPY3GlDa$Vr^&0pwv5|3_@+N<}D zrGA|4I+rvXw)Aadkl4E)EPusPppyF43zGn}E`?{#VLdf8Ptv3tXV2%K|1|zI6|Pnv zFt5<;lGpiiRHEg)%AP@YR9kCyCjvI3(BH#Upg=j`BzE?zSpzveiG|Sed3bAOJCJdH zwOL4uk4W?7^G)j<7C1nHB(Adlt=gbYdd&Z3Q)6nWf_U6z8Ko-wP z4Q*NaZlS|rd+4<(7RU+_cly_d)TW@rD88u37$CfuH?@3xujZ`ijCsiyGy5P0-#C{|In_&lFlw_7Zv&W z<+OJ3KX=&-OBy@)RZde+BkxAz48$7k7H78+!4*HckEhO_O$H*=W;Y6(TdYe#shx~& zUo;`6k@?TBod;;mlIZ(Y-Q0MLM)tnzRTdS4GI-;3kJBi7>if&Jmrq@3^1$#2s7J^E zK=Mr8BND`VctaCWTo zOPik2XJTLh7=Db}cWCS4QN{)Ec|pID_?#%5dJ*CRj{>QQAJupw@P{a&r~+4D>@835 z{rkT@sb_MZaUqJ(r$gO6?BSG)*Hfd@yur>Dhg}@QKYKRW|NTDAmpixae1*$Z131U9 zJa>GJsc(qNK6V-o5{Dv=rbz3}X@Sq@EE$6}6u{H$N585X%A)7lwr!+ym2@tdaz0Nk zA{@+{^4Zqxd0r3_%X2eqe~eWa!*m3af`8^#Eu*8!wq$0Wm}wFZ$p*-6I{VLXF(?G2 z2Q}j0u~tprdGZk!kF!8rAK9Mt5U_sEkCCj z21H8OO;B!Dh?yT=A2o>opV-u43l^cs$Z^WC`SUNhh16)(rlwalupMy?WQim+C}55< z`G-HH9}mxkA77R_LTBOnjfwwK!^v0=7R%1ioPzoD0~V~$JjXsQEimS_*p94n@!GYu z&6=5-x@&lG$9pC59NR}8^vADX_gDH`x!B~~{LckNe`l2{2&H0{ zG222#v?m~71x<|@-%Z>vRXv%%Rc}AT z!*=wRjT>Z!Id|41C zCNXIbRi?t;zKHR-6QMT~gVNhZ2XyI@@apH-A6Nck`i)R9E%n&y0+BUKA%`-U-(2#u3N0sj zvo|g0+ga7OT)jvou^cGt)1#kR$)%^8Hjx0gZ}1Kp$BALifM@asl6^7Ts`>5thNQ)t6%8a@B? zHUcbt4Nr~)vu^I~VVpa+A{lN)vLkYGaDm8K0%LNzb0HnZWl?`QWyePFf^L0`2n9amxY zCvfc!Uc14t@I+L26VqR>__I{rL9>pUb;Y;q@T1Lt@rP{#Lk=A94s|Lww5CAl^}SNL zFIsqj;f~0OM1&(oZfzN7lC&&KAzYNHQe_o^CYh5ap#>*EYgEMsgcw4>=Mf%0$Ny{2 zi<8tEct5Yr?0y^;cBoZ)XYpIumX<4u5|Gbbeg^E3m7UR;{FM%%2o(C5i&8* zH(h%PA*V!3B$+FSHcyv?B*t=_)=vM$85n(fMggkugBdMdf37{&IrlhSb3$sz4qNm- z4)B_}!pu!8KFX?KHgU!0Db+j(+mvw8H*Orh5eEin0t-hPBnP=cr!T6$*v6!s|rjXgc~_LqH^ox5J0!%~zi<^-okmT8n>VhwT-tWSsT zz9C8$xI1n`Q9RG1EKJ^WEvDYPVKz1)$C~;c(P9etXjsnVe8`cIS-OOU3qOZ}F=n-_tjNk&b{ruy{L)pPe|7^3}A0pFaDE%jf+#Eis zA9)_|KKM|~kg?qB_=-m&>oMpBlDzY|uVpdy_P3|cojZvXbR197{RE2l?TByQm%(`* zSiE=@zmwG0^5KXT2_cuAt=8~5{CjCL36Ivc@$hsv41=|1+*SIbAqj84>>_`Dt zneVZm0gCposJ%ty3PxgnjqY_T6vp#Djhg677$)-NODuTDE53C7y3g&qcgGVXtMHyC z(#X?Wj|};4h@#AhKXb0buC7Zb$~Z;Y*_qnlKbE3Sr0TwgxtWW<`>u8U?2i?j@|Y5^ zrD5x%CGTSHCD-;&_gTBvW%1J=HNG!=H6|f$<*xbcSE<6<*8Pl4fF*+BlT8mq+IIas zbI4z0*@A|0rAvPtRt0ErE3@L3%re*Vd0Ug4>LZ@Jv-tGrX2+)|_v!^ah04VND$rIA zduxJI{NGnIZ@BTXuVGTWjYy;Jr#~-jD|($)XocdRc4b6xlqF-cmO?z32+8LfW2e+v zH-5#VfmANL+;ISfUe5TRcE`>!1tF|Q@IL$Pz}-nk6xrWJ8^l9=uW2Q)=hdiK2N zvSucFm$iH<(G047KOPn~0Xc4?3$05>(9pKxGda-_e7lp#AKgaoM=873ks5GbrL(ly zf6r$j2$RNdtp*Nj!~XJ#NLTW{S;)w3t%rxD&&9V06_MjXEE9dz(E-YR;zU}tPNa7$3d7Zsn68WB?MOywF|SK zI-RVKpn?b>gFu0|b?W3ZpcL?6Tqo}pCJ|!cavsSRp3F^X4&)*kF)w{Z^Y-~uNQDxe zZ`?Taud1Uq9nCo9o%%UCZ8T+Z0k7EQJetPI_g5b1+`#zc>79ikOA>BG>Cy(K z>~<43eN@$~RWdNU)Io_HKr%8)7OFaX{ARgBTHVdrmLdjakkD^R0rl-R;f|m;y-6SG zEERXap2z$vzI48jfS&V`S9B>My5R+oD7o02Z<>_Ik`$SJkuStUWbn?L)iaX+i3r?) z^3%S3ngGA=^Mq^rO`A6#}l}; zk2M+>FlO4hDm6$$j`#X*Wo=W9D&*wpR?`(XufAOy z$B0cle!K^h(mlTY^1q@gl(K})0VP2!w5AchEos%YcO9Qw>XDdK%TkhSA#EO%DO4U8 z`c`takC;~m95YXB3!XF#UlF39yt&xyPQbKB%rHXA$M@rg{K1HkI9r?CNEcB4O4)QWK=HnjpfE2~E!Kg;-*E-Bjt^2WfiEZd#19Bv@5cFLh)Hs5#8BpC@@JB$y@4)b^ zoRe8HBmaA6BkA}YK*ZE*@+wBXO2%MUFc`4LGaBj^ty;zK|5^ewESOXW%(JUjNr6lt zrN~2kVT?KAKyustdFM=B^DE}ORksluRr6@ou7WmP0t1zTYy0LwSs#Fh^pS|o#9LLA z+P(wkOEnz&bt{+lsaZwxGjbDK|N0B4gtuz<#*}DoC)8=k%m;?QUA5bwn z3q*sW(t{~COcu#8_~qk>9e85mP0`uo?>=`k*ug@)xd>F5|4t;ccoO!g3H9fo`+@4w zw^GeA8+u4<;!NLrM=UbRZP3De;D5P?c7zRKhIx|?h|~?!r!U8h$tcIT)bmcKaHVrU7v13Uhh*qbo$dncdkVh13l!ltVGPrW=7+@tN zL+1YA?aROXf*- z@WWFN9=4RIv7ANS=UUm6Uk-4~;)T=&8TI;8VEtYqdxWYD4zx%uM6M+A$tmpV(@qCB zoLCAdm4M|MH@+vi8&|pFg$fl~?jtOUxNGaO#>ZzRzdGtt-4~P0uSe#mC61DPIoC(_ zw{!&qjjE9WPkD>CP_V#5)W%JwX7+oVjLFvx!Vg4@;b}{D`umHIqv|$nUI_z7w6das}DvLt6JTyT~@E}))F34<994&$XU^u9p;p=mDx-jC1 zhIJuKm+7-C?1XS>c-pGf3MjvFHl>fDYdvaWdw|3)dh2rEmL#&i2QPcS`20UEz+cW& zra)cuJ~Yv_P%S(J+7j*cduY~*(A~fkIBv4)N7t_(I@Jiy`IRrLnB%*;mMbTh2`WE3 zp=nb)w>3kDyxITfjz8C&Y5E~>VZzK&hwmlqkC}RQYTq3v4m1wh^v9W=RwK?XzKk(K_oiMMYGZQ|@{i-BNriaiqUWPP+2h;`Wl`xy7gJ^k zR#V|Y&hN>iIzkEDe_N}ST^81w&DiQWA+a61+A;ElFq02AL*n0n)D>;`J1M;Y?JO8+ zVmUgTp#( z+tY;^+c%eG{&=1+{1Rft=|D*!Gk0Kg0cQaLdEsSBKg>_;!MTo{_x^8CQ@Xu8i~jEN z`1xv?`DBtnuS$o03s1XWnK%{7!1JitUM1qZ1|=tyu1pDAT?Xq&SMAVc*E-tDBp$ecN8^B9 zQy!}C`v*FNFdh>i?AVY~R)CaEX6(iY0L&@OZqT+xOa8Veq~SU)8()H4OQN2L!nD6b ze?7g$qBurYGG{=~Z#KJoDp{l@)RwiCTMFp@vvh;CBCXPDT%z?uekB-h(XX7$t!mES7G=E8Xz%V zL<;0!Tgf)0w#TM=r3-(A`}rJ#gwPvN6scvMaK8Xy;M){TsJGf=*UdPNp~N_F)RTe1 zzf3oWN@wtT>$?<_M5xPF&QhC&VjQ@1D z$s;XbX1;>cl}vq0{ibh7Q7YJ+`e6_Ays@1J;<`#V;m&02832>aFahdW__mTlT0Rbl z4we&zi1Bs5ye=Hnz9?$JeKj=auRrMTwNS$yA##@ZbiE-reP}uQ1dV;*h@m)*ozuRo zlZ#7HR&ask2M_;FcUwXx;e4ChXcsyhKI{T@SCk9*u*+#9`z>0;gWq@b`R8w0ScDm! z6oz?+Rik0nhtWUyoQ0S}7g&&vak<@9ngdjX+i;I9M%^SanSk8L<;PGL78;KCW9b z2Ru(smUSvgdR#_oytWWb@sHx>Yr%rJe+qK=Fpdi>*=G&j9;AH=F!}qVx6pzF-5I7z z51NJEBNglG!1vRZQAp>~ED@|mHZb``ms0NU{tQ&h8KTf^gYBieb@`+AbBjE9ELfe^ zJH=}&3WQVcg>8c0oYm34^5e^YgR~rlkz>N-iS-C<-4Q>cTd_N6eq<~rBZ`uUc*PmM zFxWAp$*Az+uwTU&toq_E%ySFx6HMGMYPTLzed%EtQ*@&w)J|B6Yq})RHChz{Iv$F~nET{#wgm)41l#BVntENVfs>NL3_pJbxlKcn&@~BU5tEod| z2Qk!@pRJcGpM3Kv_m0?$vSM0+z@|otucHM*u3PG~lw6o2Vm5l+(fac`iH28zQ9VAf zUh&ViUQG!AxPK72w5xC@I}@I-RgXHQ3k!yYZd;4>gIGx9T^FY>E{kc{+Q){>vTL2S zs0-W>cLJkUV5(+CEPUZkApD|L&}O0ll^KeNbOGiUyfgLWdAisd3Mr5-A#p_G4}cPs zsd{-r?Sp264vD3OuK`9rgd#~q!aDqW;*4%Sb|lZ)!6of90f1eRjX+DgL-*B`jw@Gn zLUKQXgshBo>}Vbh%Vg&Tu@d6P(C@A1XQWnG!X_Fu2dF^hzXVF!c*9WuH(x}Z(0*!a zK86Arp?sa$Z_oa9$tN$J#fG6ww>&u)Qh`dVp8J%|C2&)tgm(9@N2Tgq(1IV0t9O=$kh~yN49BA4U|VkZ`Aa<11^M4|#VSY!hTB?L zU_c_LQ6e?6d3&~8-oeIW>`aW3I_&6#s}&U+T(}y>VAV3KxJ>w@efdE<^(B7#1 zs{P?Q**dZTaYoG%*dIYJ=+Sqr@1O?6bmr8oHyiIR+Umc4y#b!5cn-99zu#COOrOV* zOKXypx-naz3h_cYPMxGSxvh%S%VH+##8Z-Ma!e>or-kOSw#W<@Z=q)O<; z$W{Bi0O60@4-MPw=O@Mr{Yn-auLSC02BNdZexd``9)I5Pj!RBrNWd%U0iTn}v4N+` zt#fo@~WU+2xXvzV-{vg%ra>IHlapEv24{~O$H|WGYaI3drrPq2l+AZk><6s zD?pO}pytUo$?5Y{qH5ZQOGh+F1`{gQ`#FXE>{7OH{@I`A;u5EAF4G}o2;C&pX1{d0 z7l>b~21^uMu~ZRBFJE4o(`Vm?y$0Ijecl8Z3R}(PVTm2fjWM$&T7!O}HbH>v+3KrK zQ~Cg9!C)A@_lJV0A@baHa10C51lDY0aL+jO~r()cnoTg8WzfEd$d07?N`0I%8+4*VqM zC}dsp)O*bvHR?{Mz5egNe_mXyjp4j5ZN+Na_GCfx&5Nhn1CMYvqlirsmFSi5F~%+) z;NNv=7o~PULOWwfOp5hN=KlmE9JGICL;Y9+riHEawRFjx)T%929a{ECYg>i(@4hm zu(f}`wIQ$t1r9?@Y54B2@49t`3^;{qt0ERAGO^>4Bk{jD>q3Wj9|Hi=9e2q@8}3Ox`c*Qd20KS_Fde zg7l>>#278jqmcPAAi8tyM7#&dg?TCeJ#fc@cM$lqzp?+A%7-%UedyfzVY8m&w*L7U z@Y!a{LSia#o&{JkDSc?`+3h5LWW+A3KM6&Q&)dpB`SUmCoW|`kkg6U$7$I|FKpm)z zc@47j>yfIY!_$L1)x>s8BtpcZOa?3f2t{6m5PIDHjxBTvM{KLwO?zgb(7EE$6snTk zHu#`g)S-XMU1man5B&4Vg1T5zQU+$(-K|4eORxZ*!KO+CoU(@oFSr;N=R~qqQA8F_ zf>XkjzYN#WunY`*FP;R3E^|+ubbVM>vtzaigvD)b>sAABm_$<&Q1@u3lG7zYrx{lm zAjTZEFX`+t`EV5g_6^-?MXAmJN2YqH#z?}+*o#}H3hrb=<+^1^1BP-kI-vVc+Oz@^ ztQ-@#JT%XABg^>|PLSo{jCN*#bgsJm5v-I*#JwdoW;yEM6k2gRRY!%kuuHlzaGH6p))T_VJ=m6A((U)rfCN(Z>Ysb^s z+3yJ^T#9|wd;xAc8MdiTJFHP*=^r#4v#J7U#&-49sRRwAP@X2h5A?#z)xpokE_O98izx zE;!Ze{P9{sHfz|`b=I{TH!42eBH!pX8=mjyk0D=t`3I0o(yTS)z!>KWR|`Fd>>bmn za?f@D?dwwxyY?a{%lT*9%&J+^tIj*mGEclt+jDcZh~zt!Iwx+(KkIgtzLUk&`xzx9 z6``EUJho6%DVH*9i+XjxE3b^kHWs2!Rv7BA31gD2o;Y;qGrv;}+^D8>3T&RB%7flp z?qa;OO5f)pIO|0UQI`es5sQu(&=Zkr;Nalp+A!5?ZRPa%snYjRF7-<(a`?`3j^Bu* z;|lyXpP=XHb?Sn9L&oU9F?C?-BB!iSqcPEj%7i<3?rzg+gYAiMGy;ZYyu|JU2l}S0 zwsJDIsYjL-37re{MN2}2IBGA`-Jxz;13*Qn;txhAu`2!(rM%i^c-{1AuNn6Wq+p`0 zFMRp(fh*2cnI9}8fKivJSdr}>b%5MHh_l+M!lPGN&!m-Wnsc%0pLgVMg4B;?5utaR z_{%SM?OMS|wam>c&^qypVjMa&ZrpEP(u~s+K76Q@5g=^9s?Fk_b8KXvLJ(T zRo2FJzJIy1xtL0w%3E<~Qz>x}1TnU3-?2&v!A6(V7_w*mM1#DqYZuJFXrq8TZRLhJ zbBk^LhEIR4Fcf~Poe z715E1->9+ijn>^aXURPvGigGQkwyqW>zV$fwyHs9H2hC*fACgZ4$#u|UOD(|{RF}w z^hAn<>-PuXH$pKYqKwRR+E>1oH^**q=a9;}wQB*6)q(0ch+OYQ(Y7r5QnuCm$_{MA zHBuuqtEmx^`K@BR1DiK#H66Fl<4iy*Q2-9{_&F&m`)woE*NK%OxEg$%RHXX`Ew>MK zxd`?k)HKJ?9H%KBKWVTW`?QO zqEUb#Bf?+NOKjD|7?)UZBAM?(I3h1Sw%_^bE{7@ic)LhnPxl80k1)qN80lUCk96LITfpmQ28hf4>Sxp5+8AQ(Vt6iDe}*T(Bdc*C?)66JxVP9VH`(OE&yZ!u4JStZ>$q(tiI3spscS2r zkC{VI20Gm2oNy!-C$v$dMwyAllr4+|B8FN_e>oZ?^k0F)3k-{@s_Hejp5cK@i$Uq@9=rVMgU|fYvIQ$WVj(-zdMl3Zvt_BW1&G?=fvb0M^{JoIV)-Gc` zyP3AOu?!Abe8hjmMf5@B!_Fw%#TEAYj;=i>(R81t^PDp~e70FH^l>i*+ zz0|J(mCNd}vSYY~-7G)Wy=U7tZ620*)e+&AY$D+U_da`hjOPHbBZlB%S1*q#^@q8~ z4`&NYI-tK~AVT^HAbGsqdZcdK+P}Tt90l4?8M_u`4HGWFpfV%gtW~Q`;G`&TCTPXO z_8uWU{>5&*j=;6cb)FuRyp=(+Fi32cN1(= zTuLzVr=lF4Sh#^*h*I(MFY9e1M~{xk4A?)rr2Tnn*(1Cg*)R$(aMSG{S20mVjRL&3 zAn0&wLX(UjFn=pR4E8nxv;ZuKn6`P;KGU-x+Oj)B;xUl6@A$+we3~)8`KEl?yvi(>gUjT;+HFn*Rq=ih`hpBjC2#5G zI+y`pAUXRPxrbP6Hi4&?0>AlG*SCM|ny6e?{(hWi#EhfeHr zRdKYbt&qZj5=bvP0cR7sA-z3XKK*r%UDs}Ltl!9g%91)w>)&C4k!42SUgfmW*#@m& z?!8{Oq;bZiD;`64L_HZDyHI1fYLl|Ich8mW_;P)4KZ79~-+QqK$(y)Q#0qwxas#*4pW1C?`g;L!Oj$Y0kU}lN8(k7C7QfSu%%qP}J zy+cnTX4)d4LRu_NzL18w)|~~%YS&aZxDoY+AQmIpNZ`=laAWcc-mJ<do1D<26bW}+>Wd1=XU}_qwPFr(dviotWO~pMNggUFRBK->t&w=6iS+XJ=>O z#fcwX^t-hee+x7o^m_wt>8{io+Cv;n`pV`j%*bVL!3w{VwSNE#ox=+F80PSXk%o`9@tW^Hv$0mROiSY@2l1>e}$A}J24T%xBJQ$MaC7{1xZJbj>DhLOYIB(zF)^*j*M=g6ItP%@!=tht{xwk07!EOo8F1 zdM3n){j0{hpS3vrCtK$mlvTW4iOszLAYc&xW?YqtNb!#AI8^&`Z!N9Y+dqn<7qHYw zv^sZg%V{&t8~`%7Jp0#NhBr>>6d5fHOvt(kB3 zwYN#)H*3{BP250bzd8^+Ta1!smL7IIJJE?k^C3U8xay{L8O9V z+UJ}|fX7m8)vDW*zDh@>jxByj80@>|%UluiGDT_s-(wQJ5;;>4T#=56dl>pAo9=0E zzE;p@YN0vxp$&R`yKmQf@JzC7UUppl`CS>C`BB&vcAQHjXGEvs^~Puf$6^a7?)i|B zK+rPzA)a>7A5Gl1O*At74k%CnCE12`9W{?8j+)AR?*8XY{DC&sfq)SjhxV&6VN>M1 zj~-3=P*CS^?g?5$70{{XZT(dhl%}%iPD*Qpsyu|?8M|j%3ysUq!5D9=XRqa#)_m=T z*0A_P9I#71Z%eFLsmyLBOmqV2Q4tPl>CzZ0+y~p&2x&~vUFEZ`Th0en++WJ6zdM(p z~_b+M^=3l$X=P{%oh12wmnHdj5`(iS9=P$Seo@Jhv% zhEdeh00qJf!vLmGmiArpRB!q4x~Qg{aqy>?w}7aOj0cCK7@DP3D*@nLbT<4}5z2~; z8$i;V&+WiRV;rs7+9v$kW^i88#EoICG>f1=Gy%O}46r6N4=LJsL&nq`E^$2 zmLjRK39a5qa551SFc2O4mnRbL-n)1G?bl|lTX+8vXId~?3ggG?;TdJ&IdFy^C}#t{ zM}oPy`Y8$JSis$t%`j}f%Rp4zFnei?AI}|0qU@Vr$ZJrau04aIRZP-lrwb&q(y~6f zx~Wjh!W#kjtxqfP{5}YLVkE7dJRd9pM91>@@zfVZEsTn{a)+>Msv{uZrItJ=SOXo} z6mjvj*C-*$F3dPqkJjzZi>r920Md)`lzr?-jPZCPdrhq-n2zSFA#+hiup!31;;Tu@ zEOu!O)JknDiXAb&A$Jvj`?*BMrfVcAqwHnkkfC;XC7AR@*Y=;bQSeY!@dzd3z-dW3 ziM=E{sRA~c0%I~dvk9)BgtnPyBW6p)K4|LbAIk+vK))_ttoG5h;qzH8S}QfPBPFme(v!xUR?2|-~iY<89$V)T#mOMO|$r( z5>lvakaJhQb^}WzPUiE@>|<*w_&TDw*}7x2>1a`2BIw6ZtQ}pZ32ks3i^D}}k(x#- z+&~AbV3J=!niusGs~_3Ow-ujw{n8fN&tr!`Up#&O{7GV~`f@KXk&mAx2Djfy9!46llFJKFWwPnGm$ za7f3ld+tNg#r=ZMGTjdJ5|^z|z;vaMFHvDARqUq^(87>OsOzhLey^2B!4e|Q(dc-8nb@Y` ztfc^Qmn}ac6h|2hQyimrSvSdcba?M;Z&qA@+n9T)@m4}#ZN_yjHO}V_!yi!4J^sc@uv^})+1zMG?=-u1jkxKtg(_CT(h>WFxR%go6r&C8Llxcw9)C;sJ;n`{Aob!_!;O@pF=?U4iGu<%n2;QvV z&6SbKkK{1P{66HELj2V6kzi%E62*O=9}XAKfykdU*x5-le7SW0h^F|P1KiWt<_AJf z7XZ7Y$@dj+ePo|f)GY}%*)mnEV5D0E{1&Sv#6!G$6RKgp<R4NO1CfIDfo@CBY-x zoi4toY@(!DS0SrvkaSrycLQ_rH*p6Trsg~AIixn`1&GZ(Ags(aq2zk1J3g9c$I7kk z3{1jI9VHo%wf+H8l}QJ6b#<26$zt;4?Q|D_-_LYIRkeJD5hNwmKu8u!n%@s%FJDqJ zayYUnnR$V4?V>*$A%m|`_-yio=znBlKn$;>SfPhI&C;(i<*Nj9fx&yGJL(w!LaA`y zt!;R%8kt7ad-R@Z>`wLlZ@}vBmr?C2J75`2)V00Zc-Y}SKMbrH4ie;P$eJ&8kp$*_ zt&rWC{0<6dWr9qc-!cSKQWcZRkM~q4Yv%eOVfniN!H$f&rKPxu0QF^%yxRGm-Sxq- zSB?7kp!24-3VBp2!>dGrL+Uisa;0-G#(a4H97Jj|mW5VOB*Fp|NL!B5&yID%Zd;o( zwC6)wFdTXudN8E)4<)t!`3lS0Te4ui+ zN8|S2S5{_pcN1R-kw&K{%XxaTt&4s(g)&<$JiGHK3~k!UH3D;fno%fw1|D+0Gdd0lD^H^ z`E*&~<2yfe9z1!HFeb;mJu}f_B+7<`RB8h{bNOpAVS*Y{>MMWv_e6`C@z901649T&G zPXOC_lA^2TyGW;qm@vJ{qgZGDfRp5SxY4srTsYxa&wU`~*A|Fr+}@A1@#vj7l<

  • DD>K-T!bY$@wpR|P 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�&^+(8hL!ZHxO|C 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 literal 0 HcmV?d00001 diff --git a/diagrams/JSON_float.png b/diagrams/JSON_float.png new file mode 100644 index 0000000000000000000000000000000000000000..d77dfd2793690af111718f4766d0c41d9c66bc1d GIT binary patch literal 77142 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
    XJ)xJA7 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

    jJxzs7<#NNc2%+iNw=`^*qX;42X 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 rH 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 II;Vst0KygVGynhq literal 0 HcmV?d00001 diff --git a/diagrams/JSON_value.png b/diagrams/JSON_value.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0baa662d88bd3542c1e6e71c72e9ca9604b4ca GIT binary patch literal 153207 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/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 literal 0 HcmV?d00001 From 7657cc21675804f6bf37773fde4f0701223f56a5 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 17:46:21 +0200 Subject: [PATCH 04/43] added ignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..dfa91048 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.*.sw[pon] From 731709e110e571e75d553cb9b05973b9f56b9869 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 18:12:39 +0200 Subject: [PATCH 05/43] deleted documentation --- doc/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/.keep diff --git a/doc/.keep b/doc/.keep deleted file mode 100644 index e69de29b..00000000 From 64de68f025ee2ed51ae96014e58d49bf73b3855c Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Mon, 24 Aug 2009 18:12:42 +0200 Subject: [PATCH 06/43] generated documentation --- doc/Class.html | 302 ++++ doc/Date.html | 343 +++++ doc/DateTime.html | 355 +++++ doc/Enumerable.html | 290 ++++ doc/Exception.html | 343 +++++ doc/JSON.html | 1103 ++++++++++++++ doc/JSON/CircularDatastructure.html | 254 ++++ doc/JSON/Editor.html | 714 +++++++++ doc/JSON/Editor/EditMenu.html | 574 ++++++++ doc/JSON/Editor/FileMenu.html | 581 ++++++++ doc/JSON/Editor/Gtk.html | 249 ++++ doc/JSON/Editor/Gtk/TreeIter.html | 540 +++++++ doc/JSON/Editor/JSONTreeView.html | 1037 +++++++++++++ doc/JSON/Editor/MainWindow.html | 1300 +++++++++++++++++ doc/JSON/Editor/MenuExtension.html | 516 +++++++ doc/JSON/Editor/OptionsMenu.html | 417 ++++++ doc/JSON/Editor/PopUpMenu.html | 774 ++++++++++ doc/JSON/Ext.html | 261 ++++ doc/JSON/Ext/Generator.html | 264 ++++ doc/JSON/Ext/Generator/GeneratorMethods.html | 268 ++++ .../Ext/Generator/GeneratorMethods/Array.html | 293 ++++ .../GeneratorMethods/FalseClass.html | 294 ++++ .../Ext/Generator/GeneratorMethods/Float.html | 315 ++++ .../Ext/Generator/GeneratorMethods/Hash.html | 325 +++++ .../Generator/GeneratorMethods/Integer.html | 294 ++++ .../Generator/GeneratorMethods/NilClass.html | 291 ++++ .../Generator/GeneratorMethods/Object.html | 298 ++++ .../Generator/GeneratorMethods/String.html | 417 ++++++ .../GeneratorMethods/String/Extend.html | 290 ++++ .../Generator/GeneratorMethods/TrueClass.html | 294 ++++ doc/JSON/Ext/Generator/State.html | 1182 +++++++++++++++ doc/JSON/Ext/Parser.html | 659 +++++++++ doc/JSON/GeneratorError.html | 253 ++++ doc/JSON/JSONError.html | 253 ++++ doc/JSON/MissingUnicodeSupport.html | 254 ++++ doc/JSON/NestingError.html | 254 ++++ doc/JSON/ParserError.html | 253 ++++ doc/JSON/Pure.html | 264 ++++ doc/JSON/Pure/Generator.html | 254 ++++ doc/JSON/Pure/Generator/GeneratorMethods.html | 268 ++++ .../Generator/GeneratorMethods/Array.html | 432 ++++++ .../GeneratorMethods/FalseClass.html | 291 ++++ .../Generator/GeneratorMethods/Float.html | 308 ++++ .../Pure/Generator/GeneratorMethods/Hash.html | 442 ++++++ .../Generator/GeneratorMethods/Integer.html | 291 ++++ .../Generator/GeneratorMethods/NilClass.html | 291 ++++ .../Generator/GeneratorMethods/Object.html | 293 ++++ .../Generator/GeneratorMethods/String.html | 428 ++++++ .../GeneratorMethods/String/Extend.html | 298 ++++ .../Generator/GeneratorMethods/TrueClass.html | 291 ++++ doc/JSON/Pure/Generator/State.html | 808 ++++++++++ doc/JSON/Pure/Parser.html | 772 ++++++++++ doc/Kernel.html | 383 +++++ doc/Object.html | 349 +++++ doc/Range.html | 340 +++++ doc/Regexp.html | 341 +++++ doc/Struct.html | 342 +++++ doc/Symbol.html | 297 ++++ doc/Time.html | 348 +++++ doc/created.rid | 1 + doc/doc-main_txt.html | 557 +++++++ doc/ext/json/ext/generator/generator_c.html | 52 + doc/ext/json/ext/parser/parser_c.html | 52 + doc/images/brick.png | Bin 0 -> 452 bytes doc/images/brick_link.png | Bin 0 -> 764 bytes doc/images/bug.png | Bin 0 -> 774 bytes doc/images/bullet_black.png | Bin 0 -> 211 bytes doc/images/bullet_toggle_minus.png | Bin 0 -> 207 bytes doc/images/bullet_toggle_plus.png | Bin 0 -> 209 bytes doc/images/date.png | Bin 0 -> 626 bytes doc/images/find.png | Bin 0 -> 659 bytes doc/images/loadingAnimation.gif | Bin 0 -> 5886 bytes doc/images/macFFBgHack.png | Bin 0 -> 207 bytes doc/images/package.png | Bin 0 -> 853 bytes doc/images/page_green.png | Bin 0 -> 621 bytes doc/images/page_white_text.png | Bin 0 -> 342 bytes doc/images/page_white_width.png | Bin 0 -> 309 bytes doc/images/plugin.png | Bin 0 -> 591 bytes doc/images/ruby.png | Bin 0 -> 592 bytes doc/images/tag_green.png | Bin 0 -> 613 bytes doc/images/wrench.png | Bin 0 -> 610 bytes doc/images/wrench_orange.png | Bin 0 -> 584 bytes doc/images/zoom.png | Bin 0 -> 692 bytes doc/index.html | 911 ++++++++++++ doc/js/darkfish.js | 116 ++ doc/js/jquery.js | 32 + doc/js/quicksearch.js | 114 ++ doc/js/thickbox-compressed.js | 10 + doc/lib/json/add/core_rb.html | 60 + doc/lib/json/add/rails_rb.html | 58 + doc/lib/json/common_rb.html | 54 + doc/lib/json/editor_rb.html | 66 + doc/lib/json/ext_rb.html | 58 + doc/lib/json/pure/generator_rb.html | 52 + doc/lib/json/pure/parser_rb.html | 54 + doc/lib/json/pure_rb.html | 60 + doc/lib/json/version_rb.html | 52 + doc/lib/json_rb.html | 60 + doc/rdoc.css | 696 +++++++++ 99 files changed, 27950 insertions(+) create mode 100644 doc/Class.html create mode 100644 doc/Date.html create mode 100644 doc/DateTime.html create mode 100644 doc/Enumerable.html create mode 100644 doc/Exception.html create mode 100644 doc/JSON.html create mode 100644 doc/JSON/CircularDatastructure.html create mode 100644 doc/JSON/Editor.html create mode 100644 doc/JSON/Editor/EditMenu.html create mode 100644 doc/JSON/Editor/FileMenu.html create mode 100644 doc/JSON/Editor/Gtk.html create mode 100644 doc/JSON/Editor/Gtk/TreeIter.html create mode 100644 doc/JSON/Editor/JSONTreeView.html create mode 100644 doc/JSON/Editor/MainWindow.html create mode 100644 doc/JSON/Editor/MenuExtension.html create mode 100644 doc/JSON/Editor/OptionsMenu.html create mode 100644 doc/JSON/Editor/PopUpMenu.html create mode 100644 doc/JSON/Ext.html create mode 100644 doc/JSON/Ext/Generator.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/Array.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/Float.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/Hash.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/Integer.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/Object.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/String.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html create mode 100644 doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html create mode 100644 doc/JSON/Ext/Generator/State.html create mode 100644 doc/JSON/Ext/Parser.html create mode 100644 doc/JSON/GeneratorError.html create mode 100644 doc/JSON/JSONError.html create mode 100644 doc/JSON/MissingUnicodeSupport.html create mode 100644 doc/JSON/NestingError.html create mode 100644 doc/JSON/ParserError.html create mode 100644 doc/JSON/Pure.html create mode 100644 doc/JSON/Pure/Generator.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/Array.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/Float.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/Hash.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/Integer.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/Object.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/String.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html create mode 100644 doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html create mode 100644 doc/JSON/Pure/Generator/State.html create mode 100644 doc/JSON/Pure/Parser.html create mode 100644 doc/Kernel.html create mode 100644 doc/Object.html create mode 100644 doc/Range.html create mode 100644 doc/Regexp.html create mode 100644 doc/Struct.html create mode 100644 doc/Symbol.html create mode 100644 doc/Time.html create mode 100644 doc/created.rid create mode 100644 doc/doc-main_txt.html create mode 100644 doc/ext/json/ext/generator/generator_c.html create mode 100644 doc/ext/json/ext/parser/parser_c.html create mode 100755 doc/images/brick.png create mode 100755 doc/images/brick_link.png create mode 100644 doc/images/bug.png create mode 100755 doc/images/bullet_black.png create mode 100755 doc/images/bullet_toggle_minus.png create mode 100755 doc/images/bullet_toggle_plus.png create mode 100755 doc/images/date.png create mode 100755 doc/images/find.png create mode 100644 doc/images/loadingAnimation.gif create mode 100644 doc/images/macFFBgHack.png create mode 100755 doc/images/package.png create mode 100755 doc/images/page_green.png create mode 100755 doc/images/page_white_text.png create mode 100755 doc/images/page_white_width.png create mode 100755 doc/images/plugin.png create mode 100755 doc/images/ruby.png create mode 100755 doc/images/tag_green.png create mode 100755 doc/images/wrench.png create mode 100755 doc/images/wrench_orange.png create mode 100755 doc/images/zoom.png create mode 100644 doc/index.html create mode 100644 doc/js/darkfish.js create mode 100644 doc/js/jquery.js create mode 100644 doc/js/quicksearch.js create mode 100644 doc/js/thickbox-compressed.js create mode 100644 doc/lib/json/add/core_rb.html create mode 100644 doc/lib/json/add/rails_rb.html create mode 100644 doc/lib/json/common_rb.html create mode 100644 doc/lib/json/editor_rb.html create mode 100644 doc/lib/json/ext_rb.html create mode 100644 doc/lib/json/pure/generator_rb.html create mode 100644 doc/lib/json/pure/parser_rb.html create mode 100644 doc/lib/json/pure_rb.html create mode 100644 doc/lib/json/version_rb.html create mode 100644 doc/lib/json_rb.html create mode 100644 doc/rdoc.css diff --git a/doc/Class.html b/doc/Class.html new file mode 100644 index 00000000..f570b91c --- /dev/null +++ b/doc/Class.html @@ -0,0 +1,302 @@ + + + + + + + Class: Class + + + + + + + + + + + +

    + + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Class

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + json_creatable?() + click to toggle source + +
    + +
    + +

    +Returns true, if this class can be used to create an instance from a +serialised JSON string. The class has to implement +a class method json_create that expects a hash as first parameter, +which includes the required data. +

    + + + +
    +
    +# File lib/json/common.rb, line 353
    +  def json_creatable?
    +    respond_to?(:json_create)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Date.html b/doc/Date.html new file mode 100644 index 00000000..ceb10ec2 --- /dev/null +++ b/doc/Date.html @@ -0,0 +1,343 @@ + + + + + + + Class: Date + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Date

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 32
    +  def self.json_create(object)
    +    civil(*object.values_at('y', 'm', 'd', 'sg'))
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 38
    +  def to_json(*args)
    +    {
    +      'json_class' => self.class.name,
    +      'y' => year,
    +      'm' => month,
    +      'd' => day,
    +      'sg' => start,
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/DateTime.html b/doc/DateTime.html new file mode 100644 index 00000000..34d8fbf8 --- /dev/null +++ b/doc/DateTime.html @@ -0,0 +1,355 @@ + + + + + + + Class: DateTime + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    DateTime

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 50
    +  def self.json_create(object)
    +    args = object.values_at('y', 'm', 'd', 'H', 'M', 'S')
    +    of_a, of_b = object['of'].split('/')
    +    if of_b and of_b != '0'
    +      args << Rational(of_a.to_i, of_b.to_i)
    +    else
    +      args << of_a
    +    end
    +    args << object['sg']
    +    civil(*args)
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 64
    +  def to_json(*args)
    +    {
    +      'json_class' => self.class.name,
    +      'y' => year,
    +      'm' => month,
    +      'd' => day,
    +      'H' => hour,
    +      'M' => min,
    +      'S' => sec,
    +      'of' => offset.to_s,
    +      'sg' => start,
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Enumerable.html b/doc/Enumerable.html new file mode 100644 index 00000000..ef886231 --- /dev/null +++ b/doc/Enumerable.html @@ -0,0 +1,290 @@ + + + + + + + Module: Enumerable + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Enumerable

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*a) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/rails.rb, line 38
    +  def to_json(*a)
    +    to_a.to_json(*a)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Exception.html b/doc/Exception.html new file mode 100644 index 00000000..6d74cd93 --- /dev/null +++ b/doc/Exception.html @@ -0,0 +1,343 @@ + + + + + + + Class: Exception + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Exception

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 108
    +  def self.json_create(object)
    +    result = new(object['m'])
    +    result.set_backtrace object['b']
    +    result
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 114
    +  def to_json(*args)
    +    {
    +      'json_class' => self.class.name,
    +      'm'   => message,
    +      'b' => backtrace,
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON.html b/doc/JSON.html new file mode 100644 index 00000000..f42dfa01 --- /dev/null +++ b/doc/JSON.html @@ -0,0 +1,1103 @@ + + + + + + + Module: JSON + + + + + + + + + + + +
    + + +
    + + + + + + +
    +

    Namespace

    + +
    + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON

    + +
    + +
    + + + +
    +

    Constants

    +
    + +
    NaN
    + +
    (Not documented)
    + + +
    Infinity
    + +
    (Not documented)
    + + +
    MinusInfinity
    + +
    (Not documented)
    + + +
    UnparserError
    + +

    +For backwards compatibility +

    + + +
    JSON_LOADED
    + +
    (Not documented)
    + + +
    VERSION
    + +

    +JSON version +

    + + +
    JSON_LOADED
    + +
    (Not documented)
    + + +
    +
    + + + + +
    +

    Attributes

    + + +
    + + +
    + parser[R] +
    + +
    + +

    +Returns the JSON parser class, that is used by JSON. This might be either JSON::Ext::Parser or JSON::Pure::Parser. +

    + +
    +
    + +
    + + +
    + generator[R] +
    + +
    + +

    +Returns the JSON generator modul, that is used by +JSON. This might be either JSON::Ext::Generator or JSON::Pure::Generator. +

    + +
    +
    + +
    + + + + +
    + state[RW] +
    + +
    + +

    +Returns the JSON generator state class, that is +used by JSON. This might be either JSON::Ext::Generator::State or JSON::Pure::Generator::State. +

    + +
    +
    + +
    + + + + +
    + create_id[RW] +
    + +
    + +

    +This is create identifier, that is used to decide, if the +json_create hook of a class should be called. It defaults to +‘json_class’. +

    + +
    +
    + +
    + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + [](object, opts = {}) + click to toggle source + +
    + +
    + +

    +If object is string-like parse the string and return the parsed +result as a Ruby data structure. Otherwise generate a JSON text from the Ruby data structure object and +return it. +

    +

    +The opts argument is passed through to generate/parse +respectively, see generate and parse for their documentation. +

    + + + +
    +
    +# File lib/json/common.rb, line 11
    +    def [](object, opts = {})
    +      if object.respond_to? :to_str
    +        JSON.parse(object.to_str, opts => {})
    +      else
    +        JSON.generate(object, opts => {})
    +      end
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + recurse_proc(result, &proc) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/common.rb, line 261
    +  def recurse_proc(result, &proc)
    +    case result
    +    when Array
    +      result.each { |x| recurse_proc x, &proc }
    +      proc.call result
    +    when Hash
    +      result.each { |x, y| recurse_proc x, &proc; recurse_proc y, &proc }
    +      proc.call result
    +    else
    +      proc.call result
    +    end
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + restore(source, proc = nil) + click to toggle source + +
    + +
    + +

    +Alias for load +

    + + + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + dump(obj, anIO = nil, limit = nil) + click to toggle source + +
    + +
    + +

    +Dumps obj as a JSON string, i.e. calls +generate on the object and returns the result. +

    +

    +If anIO (an IO like object or an object that responds to the write method) +was given, the resulting JSON is written to it. +

    +

    +If the number of nested arrays or objects exceeds limit an +ArgumentError exception is raised. This argument is similar (but not +exactly the same!) to the limit argument in Marshal.dump. +

    +

    +This method is part of the implementation of the load/dump interface of +Marshal and YAML. +

    + + + +
    +
    +# File lib/json/common.rb, line 291
    +  def dump(obj, anIO = nil, limit = nil)
    +    if anIO and limit.nil?
    +      anIO = anIO.to_io if anIO.respond_to?(:to_io)
    +      unless anIO.respond_to?(:write)
    +        limit = anIO
    +        anIO = nil
    +      end
    +    end
    +    limit ||= 0
    +    result = generate(obj, :allow_nan => true, :max_nesting => limit)
    +    if anIO
    +      anIO.write result
    +      anIO
    +    else
    +      result
    +    end
    +  rescue JSON::NestingError
    +    raise ArgumentError, "exceed depth limit"
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + fast_generate(obj) + click to toggle source + +
    + +
    + +

    +Unparse the Ruby data structure obj into a single line JSON string and return it. This method disables the +checks for circles in Ruby objects, and also generates NaN, Infinity, +and, -Infinity float values. +

    +

    +WARNING: Be careful not to pass any Ruby data structures with +circles as obj argument, because this will cause JSON to go into an infinite loop. +

    + + + +
    +
    +# File lib/json/common.rb, line 199
    +  def fast_generate(obj)
    +    obj.to_json(nil)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + generate(obj, state = nil) + click to toggle source + +
    + +
    + +

    +Unparse the Ruby data structure obj into a single line JSON string and return it. state is +

    +
      +
    • a JSON::State object, + +
    • +
    • or a Hash like object (responding to to_hash), + +
    • +
    • an object convertible into a hash by a to_h method, + +
    • +
    +

    +that is used as or to configure a State object. +

    +

    +It defaults to a state object, that creates the shortest possible JSON text in one line, checks for circular data +structures and doesn’t allow NaN, Infinity, and -Infinity. +

    +

    +A state hash can have the following keys: +

    +
      +
    • indent: a string used to indent levels (default: ’’), + +
    • +
    • space: a string that is put after, a : or , delimiter (default: +’’), + +
    • +
    • space_before: a string that is put before a : pair delimiter +(default: ’’), + +
    • +
    • object_nl: a string that is put at the end of a JSON object (default: ’’), + +
    • +
    • array_nl: a string that is put at the end of a JSON array (default: ’’), + +
    • +
    • check_circular: true if checking for circular data structures should +be done (the default), false otherwise. + +
    • +
    • allow_nan: true if NaN, Infinity, and -Infinity should be generated, otherwise an +exception is thrown, if these values are encountered. This options defaults +to false. + +
    • +
    • max_nesting: The maximum depth of nesting allowed in the data +structures from which JSON is to be generated. +Disable depth checking with :max_nesting => false, it defaults to 19. + +
    • +
    +

    +See also the fast_generate for the fastest +creation method with the least amount of sanity checks, and the pretty_generate method for some defaults for a +pretty output. +

    + + + +
    +
    +# File lib/json/common.rb, line 177
    +  def generate(obj, state = nil)
    +    if state
    +      state = State.from_state(state)
    +    else
    +      state = State.new
    +    end
    +    obj.to_json(state)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + load(source, proc = nil) + click to toggle source + +
    + +
    + +

    +Load a ruby data structure from a JSON +source 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 +proc was given, it will be called with any nested Ruby object as +an argument recursively in depth first order. +

    +

    +This method is part of the implementation of the load/dump interface of +Marshal and YAML. +

    + + + +
    +
    +# File lib/json/common.rb, line 248
    +  def load(source, proc = nil)
    +    if source.respond_to? :to_str
    +      source = source.to_str
    +    elsif source.respond_to? :to_io
    +      source = source.to_io.read
    +    else
    +      source = source.read
    +    end
    +    result = parse(source, :max_nesting => false, :allow_nan => true)
    +    recurse_proc(result, &proc) if proc
    +    result
    +  end
    +
    + +
    + + +
    + Also aliased as: restore +
    + +
    + + +
    + + +
    + + parse(source, opts = {}) + click to toggle source + +
    + +
    + +

    +Parse the JSON string source into a Ruby +data structure and return it. +

    +

    +opts can have the following keys: +

    +
      +
    • max_nesting: The maximum depth of nesting allowed in the parsed data +structures. Disable depth checking with :max_nesting => false, it defaults +to 19. + +
    • +
    • allow_nan: If set to true, allow NaN, Infinity and -Infinity in defiance of RFC 4627 to be parsed +by the Parser. This option defaults to false. + +
    • +
    • create_additions: If set to false, the Parser doesn’t create +additions even if a matchin class and create_id was found. This option defaults to +true. + +
    • +
    + + + +
    +
    +# File lib/json/common.rb, line 121
    +  def parse(source, opts = {})
    +    JSON.parser.new(source, opts).parse
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + parse!(source, opts = {}) + click to toggle source + +
    + +
    + +

    +Parse the JSON string source into a Ruby +data structure and return it. The bang version of the parse method, +defaults to the more dangerous values for the opts hash, so be +sure only to parse trusted source strings. +

    +

    +opts can have the following keys: +

    +
      +
    • max_nesting: 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. + +
    • +
    • allow_nan: If set to true, allow NaN, Infinity, and -Infinity in defiance of RFC 4627 to be parsed +by the Parser. This option defaults to true. + +
    • +
    • create_additions: If set to false, the Parser doesn’t create +additions even if a matchin class and create_id was found. This option defaults to +true. + +
    • +
    + + + +
    +
    +# File lib/json/common.rb, line 140
    +  def parse!(source, opts = {})
    +    opts = {
    +      :max_nesting => false,
    +      :allow_nan => true
    +    }.update(opts)
    +    JSON.parser.new(source, opts).parse
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + pretty_generate(obj, opts = nil) + click to toggle source + +
    + +
    + +

    +Unparse the Ruby data structure obj into a JSON string and return it. The returned string is a +prettier form of the string returned by unparse. +

    +

    +The opts argument can be used to configure the generator, see the +generate method for a more detailed explanation. +

    + + + +
    +
    +# File lib/json/common.rb, line 214
    +  def pretty_generate(obj, opts = nil)
    +    state = JSON.state.new(
    +      :indent     => '  ',
    +      :space      => ' ',
    +      :object_nl  => "\n",
    +      :array_nl   => "\n",
    +      :check_circular => true
    +    )
    +    if opts
    +      if opts.respond_to? :to_hash
    +        opts = opts.to_hash
    +      elsif opts.respond_to? :to_h
    +        opts = opts.to_h
    +      else
    +        raise TypeError, "can't convert #{opts.class} into Hash"
    +      end
    +      state.configure(opts)
    +    end
    +    obj.to_json(state)
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + recurse_proc(result, &proc) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/common.rb, line 261
    +  def recurse_proc(result, &proc)
    +    case result
    +    when Array
    +      result.each { |x| recurse_proc x, &proc }
    +      proc.call result
    +    when Hash
    +      result.each { |x, y| recurse_proc x, &proc; recurse_proc y, &proc }
    +      proc.call result
    +    else
    +      proc.call result
    +    end
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + restore(source, proc = nil) + click to toggle source + +
    + +
    + +

    +Alias for load +

    + + + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/CircularDatastructure.html b/doc/JSON/CircularDatastructure.html new file mode 100644 index 00000000..ba19f26d --- /dev/null +++ b/doc/JSON/CircularDatastructure.html @@ -0,0 +1,254 @@ + + + + + + + Class: JSON::CircularDatastructure + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::CircularDatastructure

    + +
    +

    +If a circular data structure is encountered while unparsing this exception +is raised. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor.html b/doc/JSON/Editor.html new file mode 100644 index 00000000..10114378 --- /dev/null +++ b/doc/JSON/Editor.html @@ -0,0 +1,714 @@ + + + + + + + Module: JSON::Editor + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor

    + +
    + +
    + + + +
    +

    Constants

    +
    + +
    TITLE
    + +

    +Beginning of the editor window title +

    + + +
    CONTENT_COL
    + +
    (Not documented)
    + + +
    CONTAINER_TYPES
    + +

    +JSON primitive types (Containers) +

    + + +
    ALL_TYPES
    + +

    +All JSON primitive types +

    + + +
    ALL_NODES
    + +

    +The Nodes necessary for the tree representation of a JSON document +

    + + +
    DEFAULT_DIALOG_KEY_PRESS_HANDLER
    + +
    (Not documented)
    + + +
    +
    + + + + +
    +

    Attributes

    + + +
    + + +
    + window[R] +
    + +
    + +

    (Not documented)

    + +
    +
    + +
    + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + data2model(data, model = nil, parent = nil) + click to toggle source + +
    + +
    + +

    +Convert the Ruby data structure data into tree model data for Gtk and returns the whole model. If the +parameter model wasn’t given a new Gtk::TreeStore is created +as the model. The parent 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. +

    + + + +
    +
    +# File lib/json/editor.rb, line 121
    +    def Editor.data2model(data, model = nil, parent = nil)
    +      model ||= TreeStore.new(Gdk::Pixbuf, String, String)
    +      iter = if block_given?
    +        yield model
    +      else
    +        model.append(parent)
    +      end
    +      case data
    +      when Hash
    +        iter.type = 'Hash'
    +        data.sort.each do |key, value|
    +          pair_iter = model.append(iter)
    +          pair_iter.type    = 'Key'
    +          pair_iter.content = key.to_s
    +          Editor.data2model(value, model, pair_iter)
    +        end
    +      when Array
    +        iter.type = 'Array'
    +        data.each do |value|
    +          Editor.data2model(value, model, iter)
    +        end
    +      when Numeric
    +        iter.type = 'Numeric'
    +        iter.content = data.to_s
    +      when String, true, false, nil
    +        iter.type    = data.class.name
    +        iter.content = data.nil? ? 'null' : data.to_s
    +      else
    +        iter.type    = 'String'
    +        iter.content = data.to_s
    +      end
    +      model
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + edit(json, encoding = 'utf8') + click to toggle source + +
    + +
    + +

    +Edit the string json with encoding encoding in the +editor. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1362
    +      def edit(json, encoding = 'utf8')
    +        start(encoding) do |window|
    +          window.edit json
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + error_dialog(window, text) + click to toggle source + +
    + +
    + +

    +Opens an error dialog on top of window showing the error message +text. +

    + + + +
    +
    +# File lib/json/editor.rb, line 50
    +    def Editor.error_dialog(window, text)
    +      dialog = MessageDialog.new(window, Dialog::MODAL, 
    +        MessageDialog::ERROR, 
    +        MessageDialog::BUTTONS_CLOSE, text)
    +      dialog.show_all
    +      dialog.run
    +    rescue TypeError
    +      dialog = MessageDialog.new(Editor.window, Dialog::MODAL, 
    +        MessageDialog::ERROR, 
    +        MessageDialog::BUTTONS_CLOSE, text)
    +      dialog.show_all
    +      dialog.run
    +    ensure
    +      dialog.destroy if dialog
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + fetch_icon(name) + click to toggle source + +
    + +
    + +

    +Returns the Gdk::Pixbuf of the icon named name from the icon +cache. +

    + + + +
    +
    +# File lib/json/editor.rb, line 39
    +    def Editor.fetch_icon(name)
    +      @icon_cache ||= {}
    +      unless @icon_cache.key?(name)
    +        path = File.dirname(__FILE__)
    +        @icon_cache[name] = Gdk::Pixbuf.new(File.join(path, name + '.xpm'))
    +      end
    +     @icon_cache[name]
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + model2data(iter) + click to toggle source + +
    + +
    + +

    +Convert the tree model starting from Gtk::TreeIter iter into a Ruby +data structure and return it. +

    + + + +
    +
    +# File lib/json/editor.rb, line 83
    +    def Editor.model2data(iter)
    +      return nil if iter.nil?
    +      case iter.type
    +      when 'Hash'
    +        hash = {}
    +        iter.each { |c| hash[c.content] = Editor.model2data(c.first_child) }
    +        hash
    +      when 'Array'
    +        array = Array.new(iter.n_children)
    +        iter.each_with_index { |c, i| array[i] = Editor.model2data(c) }
    +        array
    +      when 'Key'
    +        iter.content
    +      when 'String'
    +        iter.content
    +      when 'Numeric'
    +        content = iter.content
    +        if /\./.match(content)
    +          content.to_f
    +        else
    +          content.to_i
    +        end
    +      when 'TrueClass'
    +        true
    +      when 'FalseClass'
    +        false
    +      when 'NilClass'
    +        nil
    +      else
    +        fail "Unknown type found in model: #{iter.type}"
    +      end
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + question_dialog(window, text) + click to toggle source + +
    + +
    + +

    +Opens a yes/no question dialog on top of window showing the error +message text. If yes was answered true is returned, +otherwise false. +

    + + + +
    +
    +# File lib/json/editor.rb, line 69
    +    def Editor.question_dialog(window, text)
    +      dialog = MessageDialog.new(window, Dialog::MODAL, 
    +        MessageDialog::QUESTION, 
    +        MessageDialog::BUTTONS_YES_NO, text)
    +      dialog.show_all
    +      dialog.run do |response|
    +        return Gtk::Dialog::RESPONSE_YES === response
    +      end
    +    ensure
    +      dialog.destroy if dialog
    +    end
    +
    + +
    + + +
    + + +
    + + +
    + + start(encoding = 'utf8') + click to toggle source + +
    + +
    + +

    +Starts a JSON Editor. +If a block was given, it yields to the JSON::Editor::MainWindow instance. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1352
    +      def start(encoding = 'utf8') # :yield: window
    +        Gtk.init
    +        @window = Editor::MainWindow.new(encoding)
    +        @window.icon_list = [ Editor.fetch_icon('json') ]
    +        yield @window if block_given?
    +        @window.show_all
    +        Gtk.main
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/EditMenu.html b/doc/JSON/Editor/EditMenu.html new file mode 100644 index 00000000..ae3d6fbc --- /dev/null +++ b/doc/JSON/Editor/EditMenu.html @@ -0,0 +1,574 @@ + + + + + + + Class: JSON::Editor::EditMenu + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::EditMenu

    + +
    +

    +This class creates the Edit pulldown menu. +

    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + copy(item) + click to toggle source + +
    + +
    + +

    +Copy data from model into primary clipboard. +

    + + + +
    +
    +# File lib/json/editor.rb, line 548
    +      def copy(item)
    +        data = Editor.model2data(model.iter_first)
    +        json = JSON.pretty_generate(data, :max_nesting => false)
    +        c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
    +        c.text = json
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create() + click to toggle source + +
    + +
    + +

    +Create the menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 645
    +      def create
    +        title = MenuItem.new('Edit')
    +        title.submenu = menu
    +        add_item('Copy', ?c, &method(:copy))
    +        add_item('Paste', ?v, &method(:paste))
    +        add_separator
    +        add_item('Find', ?f, &method(:find))
    +        add_item('Find Again', ?g, &method(:find_again))
    +        add_separator
    +        add_item('Sort', ?S, &method(:sort))
    +        title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + find(item) + click to toggle source + +
    + +
    + +

    +Find a string in all nodes’ contents and select the found node in the +treeview. +

    + + + +
    +
    +# File lib/json/editor.rb, line 570
    +      def find(item)
    +        @search = ask_for_find_term(@search) or return
    +        iter = model.get_iter('0') or return
    +        iter.recursive_each do |i|
    +          if @iter
    +            if @iter != i
    +              next
    +            else
    +              @iter = nil
    +              next
    +            end
    +          elsif @search.match(i[CONTENT_COL])
    +             set_cursor(i.path, nil, false)
    +             @iter = i
    +             break
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + find_again(item) + click to toggle source + +
    + +
    + +

    +Repeat the last search given by find. +

    + + + +
    +
    +# File lib/json/editor.rb, line 590
    +      def find_again(item)
    +        @search or return
    +        iter = model.get_iter('0')
    +        iter.recursive_each do |i|
    +          if @iter
    +            if @iter != i
    +              next
    +            else
    +              @iter = nil
    +              next
    +            end
    +          elsif @search.match(i[CONTENT_COL])
    +             set_cursor(i.path, nil, false)
    +             @iter = i
    +             break
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + paste(item) + click to toggle source + +
    + +
    + +

    +Copy json text from primary clipboard into model. +

    + + + +
    +
    +# File lib/json/editor.rb, line 556
    +      def paste(item)
    +        c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
    +        if json = c.wait_for_text
    +          window.ask_save if @changed
    +          begin
    +            window.edit json
    +          rescue JSON::ParserError
    +            window.clear
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + sort(item) + click to toggle source + +
    + +
    + +

    +Sort (Reverse sort) all elements of the selected array by the given +expression. x is the element in question. +

    + + + +
    +
    +# File lib/json/editor.rb, line 611
    +      def sort(item)
    +        if current = selection.selected
    +          if current.type == 'Array'
    +            parent = current.parent
    +            ary = Editor.model2data(current)
    +            order, reverse = ask_for_order
    +            order or return
    +            begin
    +              block = eval "lambda { |x| #{order} }"
    +              if reverse
    +                ary.sort! { |a,b| block[b] <=> block[a] }
    +              else
    +                ary.sort! { |a,b| block[a] <=> block[b] }
    +              end
    +            rescue => e
    +              Editor.error_dialog(self, "Failed to sort Array with #{order}: #{e}!")
    +            else
    +              Editor.data2model(ary, model, parent) do |m|
    +                m.insert_before(parent, current)
    +              end
    +              model.remove(current)
    +              expand_collapse(parent)
    +              window.change
    +              toplevel.display_status("Array has been sorted.")
    +            end
    +          else
    +            toplevel.display_status("Only Array nodes can be sorted!")
    +          end
    +        else
    +            toplevel.display_status("Select an Array to sort first!")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/FileMenu.html b/doc/JSON/Editor/FileMenu.html new file mode 100644 index 00000000..6e8501b4 --- /dev/null +++ b/doc/JSON/Editor/FileMenu.html @@ -0,0 +1,581 @@ + + + + + + + Class: JSON::Editor::FileMenu + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::FileMenu

    + +
    +

    +This class creates the File pulldown menu. +

    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + create() + click to toggle source + +
    + +
    + +

    +Create the menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 527
    +      def create
    +        title = MenuItem.new('File')
    +        title.submenu = menu
    +        add_item('New', &method(:new))
    +        add_item('Open', ?o, &method(:open))
    +        add_item('Open location', ?l, &method(:open_location))
    +        add_item('Revert', &method(:revert))
    +        add_separator
    +        add_item('Save', ?s, &method(:save))
    +        add_item('Save As', ?S, &method(:save_as))
    +        add_separator
    +        add_item('Quit', ?q, &method(:quit))
    +        title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + new(item) + click to toggle source + +
    + +
    + +

    +Clear the model and filename, but ask to save the JSON document, if unsaved changes have occured. +

    + + + +
    +
    +# File lib/json/editor.rb, line 490
    +      def new(item)
    +        window.clear
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + open(item) + click to toggle source + +
    + +
    + +

    +Open a file and load it into the editor. Ask to save the JSON document first, if unsaved changes have +occured. +

    + + + +
    +
    +# File lib/json/editor.rb, line 496
    +      def open(item)
    +        window.file_open
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + open_location(item) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 500
    +      def open_location(item)
    +        window.location_open
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + quit(item) + click to toggle source + +
    + +
    + +

    +Quit the editor, after asking to save any unsaved changes first. +

    + + + +
    +
    +# File lib/json/editor.rb, line 522
    +      def quit(item)
    +        window.quit
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + revert(item) + click to toggle source + +
    + +
    + +

    +Revert the current JSON document in the +editor to the saved version. +

    + + + +
    +
    +# File lib/json/editor.rb, line 505
    +      def revert(item)
    +        window.instance_eval do
    +          @filename and file_open(@filename) 
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + save(item) + click to toggle source + +
    + +
    + +

    +Save the current JSON document. +

    + + + +
    +
    +# File lib/json/editor.rb, line 512
    +      def save(item)
    +        window.file_save
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + save_as(item) + click to toggle source + +
    + +
    + +

    +Save the current JSON document under the +given filename. +

    + + + +
    +
    +# File lib/json/editor.rb, line 517
    +      def save_as(item)
    +        window.file_save_as
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/Gtk.html b/doc/JSON/Editor/Gtk.html new file mode 100644 index 00000000..01d3bbc9 --- /dev/null +++ b/doc/JSON/Editor/Gtk.html @@ -0,0 +1,249 @@ + + + + + + + Module: JSON::Editor::Gtk + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    +
      + +
    +
    +
    + + +
    + +
    + + + + + + +
    +

    Namespace

    + +
    + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::Gtk

    + +
    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/Gtk/TreeIter.html b/doc/JSON/Editor/Gtk/TreeIter.html new file mode 100644 index 00000000..360a4bff --- /dev/null +++ b/doc/JSON/Editor/Gtk/TreeIter.html @@ -0,0 +1,540 @@ + + + + + + + Class: JSON::Editor::Gtk::TreeIter + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::Gtk::TreeIter

    + +
    +

    +The Gtk::TreeIter class is reopened and some +auxiliary methods are added. +

    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + content() + click to toggle source + +
    + +
    + +

    +Returns the content of this node. +

    + + + +
    +
    +# File lib/json/editor.rb, line 195
    +      def content
    +        self[CONTENT_COL]
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + content=(value) + click to toggle source + +
    + +
    + +

    +Sets the content of this node to value. +

    + + + +
    +
    +# File lib/json/editor.rb, line 200
    +      def content=(value)
    +        self[CONTENT_COL] = value
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + each() + click to toggle source + +
    + +
    + +

    +Traverse each of this Gtk::TreeIter +instance’s children and yield to them. +

    + + + +
    +
    +# File lib/json/editor.rb, line 161
    +      def each
    +        n_children.times { |i| yield nth_child(i) }
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + recursive_each(&block) + click to toggle source + +
    + +
    + +

    +Recursively traverse all nodes of this Gtk::TreeIter’s subtree +(including self) and yield to them. +

    + + + +
    +
    +# File lib/json/editor.rb, line 167
    +      def recursive_each(&block)
    +        yield self
    +        each do |i|
    +          i.recursive_each(&block)
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + remove_subtree(model) + click to toggle source + +
    + +
    + +

    +Remove the subtree of this Gtk::TreeIter +instance from the model model. +

    + + + +
    +
    +# File lib/json/editor.rb, line 176
    +      def remove_subtree(model)
    +        while current = first_child
    +          model.remove(current)
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + type() + click to toggle source + +
    + +
    + +

    +Returns the type of this node. +

    + + + +
    +
    +# File lib/json/editor.rb, line 183
    +      def type
    +        self[TYPE_COL]
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + type=(value) + click to toggle source + +
    + +
    + +

    +Sets the type of this node to value. This implies setting the +respective icon accordingly. +

    + + + +
    +
    +# File lib/json/editor.rb, line 189
    +      def type=(value)
    +        self[TYPE_COL] = value
    +        self[ICON_COL] = Editor.fetch_icon(value)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/JSONTreeView.html b/doc/JSON/Editor/JSONTreeView.html new file mode 100644 index 00000000..7638db19 --- /dev/null +++ b/doc/JSON/Editor/JSONTreeView.html @@ -0,0 +1,1037 @@ + + + + + + + Class: JSON::Editor::JSONTreeView + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::JSONTreeView

    + +
    +

    +This class inherits from Gtk::TreeView, to configure it and to add a lot of +behaviour to it. +

    + +
    + + + + + + +
    +

    Attributes

    + + +
    + + +
    + window[R] +
    + +
    + +

    +Returns the MainWindow instance of this JSONTreeView. +

    + +
    +
    + +
    + + + + +
    + expanded[RW] +
    + +
    + +

    +Returns true, if nodes are autoexpanding, false otherwise. +

    + +
    +
    + +
    + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + new(window) + click to toggle source + +
    + +
    + +

    +Creates a JSONTreeView instance, the +parameter window is a MainWindow +instance and used for self delegation. +

    + + + +
    +
    +# File lib/json/editor.rb, line 701
    +      def initialize(window)
    +        @window = window
    +        super(TreeStore.new(Gdk::Pixbuf, String, String))
    +        self.selection.mode = SELECTION_BROWSE
    +
    +        @expanded = false
    +        self.headers_visible = false
    +        add_columns
    +        add_popup_menu
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + ask_for_element(parent = nil, default_type = nil, value_text = @content) + click to toggle source + +
    + +
    + +

    +Ask for an element to be appended parent. +

    + + + +
    +
    +# File lib/json/editor.rb, line 902
    +      def ask_for_element(parent = nil, default_type = nil, value_text = @content)
    +        type_input = value_input = nil
    +
    +        dialog = Dialog.new(
    +          "New element into #{parent ? parent.type : 'root'}",
    +          nil, nil,
    +          [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
    +          [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
    +        )
    +        hbox = HBox.new(false, 5)
    +        hbox.pack_start(Label.new("Type:"), false)
    +        hbox.pack_start(type_input = ComboBox.new(true))
    +        default_active = 0
    +        types = parent ? ALL_TYPES : CONTAINER_TYPES
    +        types.each_with_index do |t, i|
    +          type_input.append_text(t)
    +          if t == default_type
    +            default_active = i
    +          end
    +        end
    +        type_input.active = default_active
    +        dialog.vbox.pack_start(hbox, false)
    +        type_input.signal_connect(:changed) do
    +          configure_value(value_input, types[type_input.active])
    +        end
    +
    +        hbox = HBox.new(false, 5)
    +        hbox.pack_start(Label.new("Value:"), false)
    +        hbox.pack_start(value_input = Entry.new)
    +        value_input.width_chars = 60
    +        value_input.text = value_text if value_text
    +        configure_value(value_input, types[type_input.active])
    +
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
    +        dialog.show_all
    +        self.focus = dialog
    +        dialog.run do |response| 
    +          if response == Dialog::RESPONSE_ACCEPT
    +            type = types[type_input.active]
    +            @content = case type
    +            when 'Numeric'
    +              if (t = value_input.text) == 'Infinity'
    +                1 / 0.0
    +              else
    +                Integer(t) rescue Float(t) rescue 0
    +              end
    +            else
    +              value_input.text
    +            end.to_s
    +            return type, @content
    +          end
    +        end
    +        return
    +      ensure
    +        dialog.destroy if dialog
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + ask_for_find_term(search = nil) + click to toggle source + +
    + +
    + +

    +Ask for a find term to search for in the tree. Returns the term as a +string. +

    + + + +
    +
    +# File lib/json/editor.rb, line 997
    +      def ask_for_find_term(search = nil)
    +        dialog = Dialog.new(
    +          "Find a node matching regex in tree.",
    +          nil, nil,
    +          [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
    +          [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
    +        )
    +        hbox = HBox.new(false, 5)
    +
    +        hbox.pack_start(Label.new("Regex:"), false)
    +        hbox.pack_start(regex_input = Entry.new)
    +        hbox.pack_start(icase_checkbox = CheckButton.new('Icase'), false)
    +        regex_input.width_chars = 60
    +        if search
    +          regex_input.text = search.source
    +          icase_checkbox.active = search.casefold?
    +        end
    +
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
    +        dialog.show_all
    +        self.focus = dialog
    +        dialog.run do |response| 
    +          if response == Dialog::RESPONSE_ACCEPT
    +            begin
    +              return Regexp.new(regex_input.text, icase_checkbox.active? ? Regexp::IGNORECASE : 0)
    +            rescue => e
    +              Editor.error_dialog(self, "Evaluation of regex /#{regex_input.text}/ failed: #{e}!")
    +              return
    +            end
    +          end
    +        end
    +        return
    +      ensure
    +        dialog.destroy if dialog
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + ask_for_hash_pair(parent) + click to toggle source + +
    + +
    + +

    +Ask for a hash key, value pair to be added to the Hash node +parent. +

    + + + +
    +
    +# File lib/json/editor.rb, line 831
    +      def ask_for_hash_pair(parent)
    +        key_input = type_input = value_input = nil
    +
    +        dialog = Dialog.new("New (key, value) pair for Hash", nil, nil,
    +          [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
    +          [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
    +        )
    +        dialog.width_request = 640
    +
    +        hbox = HBox.new(false, 5)
    +        hbox.pack_start(Label.new("Key:"), false)
    +        hbox.pack_start(key_input = Entry.new)
    +        key_input.text = @key || ''
    +        dialog.vbox.pack_start(hbox, false)
    +        key_input.signal_connect(:activate) do
    +          if parent.any? { |c| c.content == key_input.text }
    +            toplevel.display_status('Key already exists in Hash!')
    +            key_input.text = ''
    +          else
    +            toplevel.display_status('Key has been changed.')
    +          end
    +        end
    +
    +        hbox = HBox.new(false, 5)
    +        hbox.pack_start(Label.new("Type:"), false)
    +        hbox.pack_start(type_input = ComboBox.new(true))
    +        ALL_TYPES.each { |t| type_input.append_text(t) }
    +        type_input.active = @type || 0
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        type_input.signal_connect(:changed) do
    +          value_input.editable = false
    +          case ALL_TYPES[type_input.active]
    +          when 'Array', 'Hash'
    +            value_input.text = ''
    +          when 'TrueClass'
    +            value_input.text = 'true'
    +          when 'FalseClass'
    +            value_input.text = 'false'
    +          when 'NilClass'
    +            value_input.text = 'null'
    +          else
    +            value_input.text = ''
    +            value_input.editable = true
    +          end
    +        end
    +
    +        hbox = HBox.new(false, 5)
    +        hbox.pack_start(Label.new("Value:"), false)
    +        hbox.pack_start(value_input = Entry.new)
    +        value_input.width_chars = 60
    +        value_input.text = @value || ''
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
    +        dialog.show_all
    +        self.focus = dialog
    +        dialog.run do |response| 
    +          if response == Dialog::RESPONSE_ACCEPT
    +            @key = key_input.text
    +            type = ALL_TYPES[@type = type_input.active]
    +            content = value_input.text
    +            return @key, type, content
    +          end
    +        end
    +        return
    +      ensure
    +        dialog.destroy
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + ask_for_order() + click to toggle source + +
    + +
    + +

    +Ask for an order criteria for sorting, using x for the element in +question. Returns the order criterium, and true/false for reverse sorting. +

    + + + +
    +
    +# File lib/json/editor.rb, line 964
    +      def ask_for_order
    +        dialog = Dialog.new(
    +          "Give an order criterium for 'x'.",
    +          nil, nil,
    +          [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
    +          [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
    +        )
    +        hbox = HBox.new(false, 5)
    +
    +        hbox.pack_start(Label.new("Order:"), false)
    +        hbox.pack_start(order_input = Entry.new)
    +        order_input.text = @order || 'x'
    +        order_input.width_chars = 60
    +
    +        hbox.pack_start(reverse_checkbox = CheckButton.new('Reverse'), false)
    +
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
    +        dialog.show_all
    +        self.focus = dialog
    +        dialog.run do |response| 
    +          if response == Dialog::RESPONSE_ACCEPT
    +            return @order = order_input.text, reverse_checkbox.active?
    +          end
    +        end
    +        return
    +      ensure
    +        dialog.destroy if dialog
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create_node(parent, type, content) + click to toggle source + +
    + +
    + +

    +Create a type node with content content, and add it to +parent in the model. If parent is nil, create a new model +and put it into the editor treeview. +

    + + + +
    +
    +# File lib/json/editor.rb, line 817
    +      def create_node(parent, type, content)
    +        iter = if parent
    +          model.append(parent)
    +        else
    +          new_model = Editor.data2model(nil)
    +          toplevel.view_new_model(new_model)
    +          new_model.iter_first
    +        end
    +        iter.type, iter.content = type, content
    +        expand_collapse(parent) if parent
    +        iter
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + expand_collapse(iter) + click to toggle source + +
    + +
    + +

    +Expand or collapse row pointed to by iter according to the expanded attribute. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1037
    +      def expand_collapse(iter)
    +        if expanded
    +          expand_row(iter.path, true)
    +        else
    +          collapse_row(iter.path)
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + add_columns() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 720
    +      def add_columns
    +        cell = CellRendererPixbuf.new
    +        column = TreeViewColumn.new('Icon', cell,
    +          'pixbuf'      => ICON_COL
    +        )
    +        append_column(column)
    +
    +        cell = CellRendererText.new
    +        column = TreeViewColumn.new('Type', cell,
    +          'text'      => TYPE_COL
    +        )
    +        append_column(column)
    +
    +        cell = CellRendererText.new
    +        cell.editable = true
    +        column = TreeViewColumn.new('Content', cell,
    +          'text'       => CONTENT_COL
    +        )
    +        cell.signal_connect(:edited, &method(:cell_edited))
    +        append_column(column)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + add_popup_menu() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 807
    +      def add_popup_menu
    +        menu = PopUpMenu.new(self)
    +        menu.create
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + cell_edited(cell, path, value) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 755
    +      def cell_edited(cell, path, value)
    +        iter = model.get_iter(path)
    +        case iter.type
    +        when 'Key'
    +          unify_key(iter, value)
    +          toplevel.display_status('Key has been changed.')
    +        when 'FalseClass'
    +          value.downcase!
    +          if value == 'true'
    +            iter.type, iter.content = 'TrueClass', 'true'
    +          end
    +        when 'TrueClass'
    +          value.downcase!
    +          if value == 'false'
    +            iter.type, iter.content = 'FalseClass', 'false'
    +          end
    +        when 'Numeric'
    +          iter.content =
    +            if value == 'Infinity'
    +              value
    +            else
    +              (Integer(value) rescue Float(value) rescue 0).to_s
    +            end
    +        when 'String'
    +          iter.content = value
    +        when 'Hash', 'Array'
    +          return
    +        else
    +          fail "Unknown type found in model: #{iter.type}"
    +        end
    +        window.change
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + configure_value(value, type) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 788
    +      def configure_value(value, type)
    +        value.editable = false
    +        case type
    +        when 'Array', 'Hash'
    +          value.text = ''
    +        when 'TrueClass'
    +          value.text = 'true'
    +        when 'FalseClass'
    +          value.text = 'false'
    +        when 'NilClass'
    +          value.text = 'null'
    +        when 'Numeric', 'String'
    +          value.text ||= ''
    +          value.editable = true
    +        else
    +          raise ArgumentError, "unknown type '#{type}' encountered"
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + unify_key(iter, key) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 742
    +      def unify_key(iter, key)
    +        return unless iter.type == 'Key'
    +        parent = iter.parent
    +        if parent.any? { |c| c != iter and c.content == key }
    +          old_key = key
    +          i = 0
    +          begin
    +            key = sprintf("%s.%d", old_key, i += 1)
    +          end while parent.any? { |c| c != iter and c.content == key }
    +        end
    +        iter.content = key
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/MainWindow.html b/doc/JSON/Editor/MainWindow.html new file mode 100644 index 00000000..49d07d72 --- /dev/null +++ b/doc/JSON/Editor/MainWindow.html @@ -0,0 +1,1300 @@ + + + + + + + Class: JSON::Editor::MainWindow + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::MainWindow

    + +
    +

    +The editor main window +

    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + new(encoding) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 1050
    +      def initialize(encoding)
    +        @changed  = false
    +        @encoding = encoding
    +        super(TOPLEVEL)
    +        display_title
    +        set_default_size(800, 600)
    +        signal_connect(:delete_event) { quit }
    +
    +        vbox = VBox.new(false, 0)
    +        add(vbox)
    +        #vbox.border_width = 0
    +
    +        @treeview = JSONTreeView.new(self)
    +        @treeview.signal_connect(:'cursor-changed') do
    +          display_status('')
    +        end
    +
    +        menu_bar = create_menu_bar
    +        vbox.pack_start(menu_bar, false, false, 0)
    +
    +        sw = ScrolledWindow.new(nil, nil)
    +        sw.shadow_type = SHADOW_ETCHED_IN
    +        sw.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
    +        vbox.pack_start(sw, true, true, 0)
    +        sw.add(@treeview)
    +
    +        @status_bar = Statusbar.new
    +        vbox.pack_start(@status_bar, false, false, 0)
    +
    +        @filename ||= nil
    +        if @filename
    +          data = read_data(@filename)
    +          view_new_model Editor.data2model(data)
    +        end
    +
    +        signal_connect(:button_release_event) do |_,event|
    +          if event.button == 2
    +            c = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
    +            if url = c.wait_for_text
    +              location_open url
    +            end
    +            false
    +          else
    +            true
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + ask_for_location() + click to toggle source + +
    + +
    + +

    +Ask for location URI a to load data from. Returns the URI as a string. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1320
    +      def ask_for_location
    +        dialog = Dialog.new(
    +          "Load data from location...",
    +          nil, nil,
    +          [ Stock::OK, Dialog::RESPONSE_ACCEPT ],
    +          [ Stock::CANCEL, Dialog::RESPONSE_REJECT ]
    +        )
    +        hbox = HBox.new(false, 5)
    +
    +        hbox.pack_start(Label.new("Location:"), false)
    +        hbox.pack_start(location_input = Entry.new)
    +        location_input.width_chars = 60
    +        location_input.text = @location || ''
    +
    +        dialog.vbox.pack_start(hbox, false)
    +
    +        dialog.signal_connect(:'key-press-event', &DEFAULT_DIALOG_KEY_PRESS_HANDLER)
    +        dialog.show_all
    +        dialog.run do |response| 
    +          if response == Dialog::RESPONSE_ACCEPT
    +            return @location = location_input.text
    +          end
    +        end
    +        return
    +      ensure
    +        dialog.destroy if dialog
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + ask_save() + click to toggle source + +
    + +
    + +

    +Opens a dialog, asking, if changes should be saved to a file. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1141
    +      def ask_save
    +        if Editor.question_dialog(self,
    +          "Unsaved changes to JSON model. Save?")
    +          if @filename
    +            file_save
    +          else
    +            file_save_as
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + change() + click to toggle source + +
    + +
    + +

    +Sets editor status to changed, to indicate that the edited data containts +unsaved changes. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1112
    +      def change
    +        @changed = true
    +        display_title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + clear() + click to toggle source + +
    + +
    + +

    +Clear the current model, after asking to save all unsaved changes. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1171
    +      def clear
    +        ask_save if @changed
    +        @filename = nil
    +        self.view_new_model nil
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create_menu_bar() + click to toggle source + +
    + +
    + +

    +Creates the menu bar with the pulldown menus and returns it. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1099
    +      def create_menu_bar
    +        menu_bar = MenuBar.new
    +        @file_menu = FileMenu.new(@treeview)
    +        menu_bar.append @file_menu.create
    +        @edit_menu = EditMenu.new(@treeview)
    +        menu_bar.append @edit_menu.create
    +        @options_menu = OptionsMenu.new(@treeview)
    +        menu_bar.append @options_menu.create
    +        menu_bar
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + display_status(text) + click to toggle source + +
    + +
    + +

    +Displays text in the status bar. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1133
    +      def display_status(text)
    +        @cid ||= nil
    +        @status_bar.pop(@cid) if @cid
    +        @cid = @status_bar.get_context_id('dummy')
    +        @status_bar.push(@cid, text)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + display_title() + click to toggle source + +
    + +
    + +

    +Display the new title according to the editor’s current state. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1163
    +      def display_title
    +        title = TITLE.dup
    +        title << ": #@filename" if @filename
    +        title << " *" if @changed
    +        self.title = title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + edit(json) + click to toggle source + +
    + +
    + +

    +Edit the string json in the editor. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1202
    +      def edit(json)
    +        if json.respond_to? :read
    +          json = json.read
    +        end
    +        data = parse_json json
    +        view_new_model Editor.data2model(data)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + file_open(filename = nil) + click to toggle source + +
    + +
    + +

    +Open the file filename or call the select_file method to ask for a +filename. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1195
    +      def file_open(filename = nil)
    +        filename = select_file('Open as a JSON file') unless filename
    +        data = load_file(filename) or return
    +        view_new_model Editor.data2model(data)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + file_save() + click to toggle source + +
    + +
    + +

    +Save the current file. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1211
    +      def file_save
    +        if @filename
    +          store_file(@filename)
    +        else
    +          file_save_as
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + file_save_as() + click to toggle source + +
    + +
    + +

    +Save the current file as the filename +

    + + + +
    +
    +# File lib/json/editor.rb, line 1220
    +      def file_save_as
    +        filename = select_file('Save as a JSON file')
    +        store_file(filename)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + load_file(filename) + click to toggle source + +
    + +
    + +

    +Load the file named filename into the editor as a JSON document. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1247
    +      def load_file(filename)
    +        if filename
    +          if File.directory?(filename)
    +            Editor.error_dialog(self, "Try to select a JSON file!")
    +            nil
    +          else
    +            @filename = filename
    +            if data = read_data(filename)
    +              toplevel.display_status("Loaded data from '#@filename'.")
    +            end
    +            display_title
    +            data
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + load_location(uri) + click to toggle source + +
    + +
    + +

    +Load the data at location uri into the editor as a JSON document. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1264
    +      def load_location(uri)
    +        data = read_data(uri) or return
    +        @filename = nil
    +        toplevel.display_status("Loaded data from '#{uri}'.")
    +        display_title
    +        data
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + location_open(uri = nil) + click to toggle source + +
    + +
    + +

    +Open the data at the location uri, if given. Otherwise open a +dialog to ask for the uri. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1185
    +      def location_open(uri = nil)
    +        uri = ask_for_location unless uri
    +        uri or return
    +        ask_save if @changed
    +        data = load_location(uri) or return
    +        view_new_model Editor.data2model(data)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + quit() + click to toggle source + +
    + +
    + +

    +Quit this editor, that is, leave this editor’s main loop. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1153
    +      def quit
    +        ask_save if @changed
    +        if Gtk.main_level > 0
    +          destroy
    +          Gtk.main_quit
    +        end
    +        nil
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + read_data(filename) + click to toggle source + +
    + +
    + +

    +Read a JSON document from the file named +filename, parse it into a ruby data structure, and return the +data. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1284
    +      def read_data(filename)
    +        open(filename) do |f|
    +          json = f.read
    +          return parse_json(json)
    +        end
    +      rescue => e
    +        Editor.error_dialog(self, "Failed to parse JSON file: #{e}!")
    +        return
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + select_file(message) + click to toggle source + +
    + +
    + +

    +Open a file selecton dialog, displaying message, and return the +selected filename or nil, if no file was selected. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1296
    +      def select_file(message)
    +        filename = nil
    +        fs = FileSelection.new(message)
    +        fs.set_modal(true)
    +        @default_dir = File.join(Dir.pwd, '') unless @default_dir
    +        fs.set_filename(@default_dir)
    +        fs.set_transient_for(self)
    +        fs.signal_connect(:destroy) { Gtk.main_quit }
    +        fs.ok_button.signal_connect(:clicked) do
    +          filename = fs.filename
    +          @default_dir = File.join(File.dirname(filename), '')
    +          fs.destroy
    +          Gtk.main_quit
    +        end
    +        fs.cancel_button.signal_connect(:clicked) do
    +          fs.destroy
    +          Gtk.main_quit
    +        end
    +        fs.show_all
    +        Gtk.main
    +        filename
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + store_file(path) + click to toggle source + +
    + +
    + +

    +Store the current JSON document to +path. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1226
    +      def store_file(path)
    +        if path
    +          data = Editor.model2data(@treeview.model.iter_first)
    +          File.open(path + '.tmp', 'wb') do |output|
    +            data or break
    +            if @options_menu.pretty_item.active?
    +              output.puts JSON.pretty_generate(data, :max_nesting => false)
    +            else
    +              output.write JSON.generate(data, :max_nesting => false)
    +            end
    +          end
    +          File.rename path + '.tmp', path
    +          @filename = path
    +          toplevel.display_status("Saved data to '#@filename'.")
    +          unchange
    +        end
    +      rescue SystemCallError => e
    +        Editor.error_dialog(self, "Failed to store JSON file: #{e}!")
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + unchange() + click to toggle source + +
    + +
    + +

    +Sets editor status to unchanged, to indicate that the edited data +doesn’t containt unsaved changes. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1119
    +      def unchange
    +        @changed = false
    +        display_title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + view_new_model(model) + click to toggle source + +
    + +
    + +

    +Puts a new model model into the Gtk::TreeView to be edited. +

    + + + +
    +
    +# File lib/json/editor.rb, line 1125
    +      def view_new_model(model)
    +        @treeview.model     = model
    +        @treeview.expanded  = true
    +        @treeview.expand_all
    +        unchange
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + check_pretty_printed(json) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 1177
    +      def check_pretty_printed(json)
    +        pretty = !!((nl_index = json.index("\n")) && nl_index != json.size - 1)
    +        @options_menu.pretty_item.active = pretty
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + parse_json(json) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 1272
    +      def parse_json(json)
    +        check_pretty_printed(json)
    +        if @encoding && !/^utf8$/i.match(@encoding)
    +          iconverter = Iconv.new('utf8', @encoding)
    +          json = iconverter.iconv(json)
    +        end
    +        JSON::parse(json, :max_nesting => false, :create_additions => false)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/MenuExtension.html b/doc/JSON/Editor/MenuExtension.html new file mode 100644 index 00000000..8bfb2d7c --- /dev/null +++ b/doc/JSON/Editor/MenuExtension.html @@ -0,0 +1,516 @@ + + + + + + + Module: JSON::Editor::MenuExtension + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::MenuExtension

    + +
    +

    +This module bundles some method, that can be used to create a menu. It +should be included into the class in question. +

    + +
    + + + + + + +
    +

    Attributes

    + + +
    + + +
    + treeview[R] +
    + +
    + +

    +Returns the Gtk::TreeView of this menu. +

    + +
    +
    + + + +
    + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + new(treeview) + click to toggle source + +
    + +
    + +

    +Creates a Menu, that includes MenuExtension. treeview is the +Gtk::TreeView, on which it operates. +

    + + + +
    +
    +# File lib/json/editor.rb, line 212
    +      def initialize(treeview)
    +        @treeview = treeview
    +        @menu = Menu.new
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + add_item(label, keyval = nil, klass = MenuItem, &callback) + click to toggle source + +
    + +
    + +

    +Adds a Gtk::MenuItem to this instance’s menu. label is the label +string, klass is the item type, and callback is the +procedure, that is called if the item is activated. +

    + + + +
    +
    +# File lib/json/editor.rb, line 231
    +      def add_item(label, keyval = nil, klass = MenuItem, &callback)
    +        label = "#{label} (C-#{keyval.chr})" if keyval
    +        item = klass.new(label)
    +        item.signal_connect(:activate, &callback)
    +        if keyval
    +          self.signal_connect(:'key-press-event') do |item, event|
    +            if event.state & Gdk::Window::ModifierType::CONTROL_MASK != 0 and
    +              event.keyval == keyval
    +              callback.call item
    +            end
    +          end
    +        end
    +        menu.append item
    +        item
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + add_separator() + click to toggle source + +
    + +
    + +

    +Adds a Gtk::SeparatorMenuItem to this instance’s menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 224
    +      def add_separator
    +        menu.append SeparatorMenuItem.new
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create() + click to toggle source + +
    + +
    + +

    +This method should be implemented in subclasses to create the menu of this instance. It has to be +called after an instance of this class is created, to build the menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 250
    +      def create
    +        raise NotImplementedError
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + method_missing(*a, &b) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/editor.rb, line 254
    +      def method_missing(*a, &b)
    +        treeview.__send__(*a, &b)
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/OptionsMenu.html b/doc/JSON/Editor/OptionsMenu.html new file mode 100644 index 00000000..e5de8d35 --- /dev/null +++ b/doc/JSON/Editor/OptionsMenu.html @@ -0,0 +1,417 @@ + + + + + + + Class: JSON::Editor::OptionsMenu + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::OptionsMenu

    + +
    + +
    + + + + + + +
    +

    Attributes

    + + +
    + + +
    + pretty_item[R] +
    + +
    + +

    (Not documented)

    + +
    +
    + +
    + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + collapsed_nodes(item) + click to toggle source + +
    + +
    + +

    +Collapse/Expand all nodes by default. +

    + + + +
    +
    +# File lib/json/editor.rb, line 663
    +      def collapsed_nodes(item)
    +        if expanded
    +          self.expanded = false
    +          collapse_all
    +        else
    +          self.expanded = true
    +          expand_all 
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create() + click to toggle source + +
    + +
    + +

    +Create the menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 682
    +      def create
    +        title = MenuItem.new('Options')
    +        title.submenu = menu
    +        add_item('Collapsed nodes', nil, CheckMenuItem, &method(:collapsed_nodes))
    +        @pretty_item = add_item('Pretty saving', nil, CheckMenuItem,
    +          &method(:pretty_saving))
    +        @pretty_item.active = true
    +        window.unchange
    +        title
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + pretty_saving(item) + click to toggle source + +
    + +
    + +

    +Toggle pretty saving mode on/off. +

    + + + +
    +
    +# File lib/json/editor.rb, line 674
    +      def pretty_saving(item)
    +        @pretty_item.toggled
    +        window.change
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Editor/PopUpMenu.html b/doc/JSON/Editor/PopUpMenu.html new file mode 100644 index 00000000..007c66a0 --- /dev/null +++ b/doc/JSON/Editor/PopUpMenu.html @@ -0,0 +1,774 @@ + + + + + + + Class: JSON::Editor::PopUpMenu + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + + + +
    +

    Included Modules

    + +
    + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Editor::PopUpMenu

    + +
    +

    +This class creates the popup menu, that opens when clicking onto the +treeview. +

    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + append_new_node(item) + click to toggle source + +
    + +
    + +

    +Append a new node to the selected Hash or Array. +

    + + + +
    +
    +# File lib/json/editor.rb, line 388
    +      def append_new_node(item)
    +        if parent = selection.selected
    +          parent_type = parent.type
    +          case parent_type
    +          when 'Hash'
    +            key, type, content = ask_for_hash_pair(parent)
    +            key or return
    +            iter = create_node(parent, 'Key', key)
    +            iter = create_node(iter, type, content)
    +            toplevel.display_status(
    +              "Added a (key, value)-pair to '#{parent_type}'.")
    +            window.change
    +          when 'Array'
    +            type, content = ask_for_element(parent)
    +            type or return
    +            iter = create_node(parent, type, content)
    +            window.change
    +            toplevel.display_status("Appendend an element to '#{parent_type}'.")
    +          else
    +            toplevel.display_status("Cannot append to '#{parent_type}'!")
    +          end
    +        else
    +          type, content = ask_for_element
    +          type or return
    +          iter = create_node(nil, type, content)
    +          window.change
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + change_node(item) + click to toggle source + +
    + +
    + +

    +Change the type or content of the selected node. +

    + + + +
    +
    +# File lib/json/editor.rb, line 265
    +      def change_node(item)
    +        if current = selection.selected
    +          parent = current.parent
    +          old_type, old_content = current.type, current.content
    +          if ALL_TYPES.include?(old_type)
    +            @clipboard_data = Editor.model2data(current)
    +            type, content = ask_for_element(parent, current.type,
    +              current.content)
    +            if type
    +              current.type, current.content = type, content
    +              current.remove_subtree(model)
    +              toplevel.display_status("Changed a node in tree.")
    +              window.change
    +            end
    +          else
    +            toplevel.display_status(
    +              "Cannot change node of type #{old_type} in tree!")
    +          end
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + collapse_expand(item) + click to toggle source + +
    + +
    + +

    +Recursively collapse/expand a subtree starting from the selected node. +

    + + + +
    +
    +# File lib/json/editor.rb, line 444
    +      def collapse_expand(item)
    +        if current = selection.selected
    +          if row_expanded?(current.path)
    +            collapse_row(current.path)
    +          else
    +            expand_row(current.path, true)
    +          end
    +        else
    +            toplevel.display_status("Append a node into the root first!")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + copy_node(item) + click to toggle source + +
    + +
    + +

    +Copy the selected node and its subtree, and save it into the clipboard. +

    + + + +
    +
    +# File lib/json/editor.rb, line 305
    +      def copy_node(item)
    +        if current = selection.selected
    +          if current and current.type == 'Key'
    +            @clipboard_data = {
    +              current.content => Editor.model2data(current.first_child)
    +            }
    +          else
    +            @clipboard_data = Editor.model2data(current)
    +          end
    +          window.change
    +          toplevel.display_status("Copied a node from tree.")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + create() + click to toggle source + +
    + +
    + +

    +Create the menu. +

    + + + +
    +
    +# File lib/json/editor.rb, line 457
    +      def create
    +        add_item("Change node", ?n, &method(:change_node))
    +        add_separator
    +        add_item("Cut node", ?X, &method(:cut_node))
    +        add_item("Copy node", ?C, &method(:copy_node))
    +        add_item("Paste node (appending)", ?A, &method(:paste_node_appending))
    +        add_item("Paste node (inserting before)", ?I,
    +          &method(:paste_node_inserting_before))
    +        add_separator
    +        add_item("Append new node", ?a, &method(:append_new_node))
    +        add_item("Insert new node before", ?i, &method(:insert_new_node))
    +        add_separator 
    +        add_item("Collapse/Expand node (recursively)", ?e,
    +          &method(:collapse_expand))
    +
    +        menu.show_all
    +        signal_connect(:button_press_event) do |widget, event|
    +          if event.kind_of? Gdk::EventButton and event.button == 3
    +            menu.popup(nil, nil, event.button, event.time)
    +          end
    +        end
    +        signal_connect(:popup_menu) do
    +          menu.popup(nil, nil, 0, Gdk::Event::CURRENT_TIME)
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + cut_node(item) + click to toggle source + +
    + +
    + +

    +Cut the selected node and its subtree, and save it into the clipboard. +

    + + + +
    +
    +# File lib/json/editor.rb, line 288
    +      def cut_node(item)
    +        if current = selection.selected
    +          if current and current.type == 'Key'
    +            @clipboard_data = {
    +              current.content => Editor.model2data(current.first_child)
    +            }
    +          else
    +            @clipboard_data = Editor.model2data(current)
    +          end
    +          model.remove(current)
    +          window.change
    +          toplevel.display_status("Cut a node from tree.")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + insert_new_node(item) + click to toggle source + +
    + +
    + +

    +Insert a new node into an Array before the selected element. +

    + + + +
    +
    +# File lib/json/editor.rb, line 418
    +      def insert_new_node(item)
    +        if current = selection.selected
    +          parent = current.parent or return
    +          parent_parent = parent.parent
    +          parent_type = parent.type
    +          if parent_type == 'Array'
    +            selected_index = parent.each_with_index do |c, i|
    +              break i if c == current
    +            end
    +            type, content = ask_for_element(parent)
    +            type or return
    +            iter = model.insert_before(parent, current)
    +            iter.type, iter.content = type, content
    +            toplevel.display_status("Inserted an element to " +
    +              "'#{parent_type}' before index #{selected_index}.")
    +            window.change
    +          else
    +            toplevel.display_status(
    +              "Cannot insert node below '#{parent_type}'!")
    +          end
    +        else
    +            toplevel.display_status("Append a node into the root first!")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + paste_node_appending(item) + click to toggle source + +
    + +
    + +

    +Paste the data in the clipboard into the selected Array or Hash by +appending it. +

    + + + +
    +
    +# File lib/json/editor.rb, line 321
    +      def paste_node_appending(item)
    +        if current = selection.selected
    +          if @clipboard_data
    +            case current.type
    +            when 'Array'
    +              Editor.data2model(@clipboard_data, model, current)
    +              expand_collapse(current)
    +            when 'Hash'
    +              if @clipboard_data.is_a? Hash
    +                parent = current.parent
    +                hash = Editor.model2data(current)
    +                model.remove(current)
    +                hash.update(@clipboard_data)
    +                Editor.data2model(hash, model, parent)
    +                if parent
    +                  expand_collapse(parent)
    +                elsif @expanded
    +                  expand_all
    +                end
    +                window.change
    +              else
    +                toplevel.display_status(
    +                  "Cannot paste non-#{current.type} data into '#{current.type}'!")
    +              end
    +            else
    +              toplevel.display_status(
    +                "Cannot paste node below '#{current.type}'!")
    +            end
    +          else
    +            toplevel.display_status("Nothing to paste in clipboard!")
    +          end
    +        else
    +            toplevel.display_status("Append a node into the root first!")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + paste_node_inserting_before(item) + click to toggle source + +
    + +
    + +

    +Paste the data in the clipboard into the selected Array inserting it before +the selected element. +

    + + + +
    +
    +# File lib/json/editor.rb, line 359
    +      def paste_node_inserting_before(item)
    +        if current = selection.selected
    +          if @clipboard_data
    +            parent = current.parent or return
    +            parent_type = parent.type
    +            if parent_type == 'Array'
    +              selected_index = parent.each_with_index do |c, i|
    +                break i if c == current
    +              end
    +              Editor.data2model(@clipboard_data, model, parent) do |m|
    +                m.insert_before(parent, current)
    +              end
    +              expand_collapse(current)
    +              toplevel.display_status("Inserted an element to " +
    +                "'#{parent_type}' before index #{selected_index}.")
    +              window.change
    +            else
    +              toplevel.display_status(
    +                "Cannot insert node below '#{parent_type}'!")
    +            end
    +          else
    +            toplevel.display_status("Nothing to paste in clipboard!")
    +          end
    +        else
    +            toplevel.display_status("Append a node into the root first!")
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext.html b/doc/JSON/Ext.html new file mode 100644 index 00000000..2c4c6fc3 --- /dev/null +++ b/doc/JSON/Ext.html @@ -0,0 +1,261 @@ + + + + + + + Module: JSON::Ext + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + +
    +

    Namespace

    + +
    + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext

    + +
    +

    +This module holds all the modules/classes that implement JSON’s +functionality as C extensions. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator.html b/doc/JSON/Ext/Generator.html new file mode 100644 index 00000000..dd66f6c9 --- /dev/null +++ b/doc/JSON/Ext/Generator.html @@ -0,0 +1,264 @@ + + + + + + + Module: JSON::Ext::Generator + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + +
    +

    Namespace

    + +
    + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator

    + +
    +

    +This is the JSON generator implemented as a C +extension. It can be configured to be used by setting +

    +
    + JSON.generator = JSON::Ext::Generator
    +
    +

    +with the method generator= in JSON. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods.html b/doc/JSON/Ext/Generator/GeneratorMethods.html new file mode 100644 index 00000000..31d08f22 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods.html @@ -0,0 +1,268 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + + + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods

    + +
    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Array.html b/doc/JSON/Ext/Generator/GeneratorMethods/Array.html new file mode 100644 index 00000000..5113ab49 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/Array.html @@ -0,0 +1,293 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::Array + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::Array

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0) + click to toggle source + +
    + +
    + +

    +Returns a JSON string containing a JSON array, that is unparsed from this Array instance. state is a JSON::State +object, that can also be used to configure the produced JSON string output further. depth +is used to find out nesting depth, to indent accordingly. +

    + + + +
    +
    +static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self) 
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html new file mode 100644 index 00000000..bef550d2 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/FalseClass.html @@ -0,0 +1,294 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::FalseClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::FalseClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0) + click to toggle source + +
    + +
    + +

    +Returns a JSON string for false: +‘false’. +

    + + + +
    +
    +static VALUE mFalseClass_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result = rb_str_new2("false");
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Float.html b/doc/JSON/Ext/Generator/GeneratorMethods/Float.html new file mode 100644 index 00000000..19429865 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/Float.html @@ -0,0 +1,315 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::Float + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::Float

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string representation +for this Float number. +

    + + + +
    +
    +static VALUE mFloat_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    JSON_Generator_State *state = NULL;
    +    VALUE Vstate, rest, tmp, result;
    +    double value = RFLOAT_VALUE(self);
    +    rb_scan_args(argc, argv, "01*", &Vstate, &rest);
    +    if (!NIL_P(Vstate)) Data_Get_Struct(Vstate, JSON_Generator_State, state);
    +    if (isinf(value)) {
    +        if (!state || state->allow_nan) {
    +            result = rb_funcall(self, i_to_s, 0);
    +        } else {
    +            tmp = rb_funcall(self, i_to_s, 0);
    +            rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp));
    +        }
    +    } else if (isnan(value)) {
    +        if (!state || state->allow_nan) {
    +            result = rb_funcall(self, i_to_s, 0);
    +        } else {
    +            tmp = rb_funcall(self, i_to_s, 0);
    +            rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp));
    +        }
    +    } else {
    +        result = rb_funcall(self, i_to_s, 0);
    +    }
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html b/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html new file mode 100644 index 00000000..cb329680 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/Hash.html @@ -0,0 +1,325 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::Hash + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::Hash

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0) + click to toggle source + +
    + +
    + +

    +Returns a JSON string containing a JSON object, that is unparsed from this Hash instance. state is a JSON::State object, +that can also be used to configure the produced JSON string output further. depth +is used to find out nesting depth, to indent accordingly. +

    + + + +
    +
    +static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE Vstate, Vdepth, result;
    +    long depth;
    +
    +    rb_scan_args(argc, argv, "02", &Vstate, &Vdepth);
    +    depth = NIL_P(Vdepth) ? 0 : FIX2LONG(Vdepth);
    +    if (NIL_P(Vstate)) {
    +        long len = RHASH_SIZE(self);
    +        result = rb_str_buf_new(len);
    +        rb_str_buf_cat2(result, "{");
    +        rb_hash_foreach(self, hash_to_json_i, result);
    +        rb_str_buf_cat2(result, "}");
    +    } else {
    +        GET_STATE(Vstate);
    +        check_max_nesting(state, depth);
    +        if (state->check_circular) {
    +            VALUE self_id = rb_obj_id(self);
    +            if (RTEST(rb_hash_aref(state->seen, self_id))) {
    +                rb_raise(eCircularDatastructure,
    +                        "circular data structures not supported!");
    +            }
    +            rb_hash_aset(state->seen, self_id, Qtrue);
    +            result = mHash_json_transfrom(self, Vstate, LONG2FIX(depth));
    +            rb_hash_delete(state->seen, self_id);
    +        } else {
    +            result = mHash_json_transfrom(self, Vstate, LONG2FIX(depth));
    +        }
    +    }
    +    OBJ_INFECT(result, self);
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html b/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html new file mode 100644 index 00000000..155f91bc --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/Integer.html @@ -0,0 +1,294 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::Integer + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::Integer

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string representation +for this Integer number. +

    + + + +
    +
    +static VALUE mInteger_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result = rb_funcall(self, i_to_s, 0);
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html new file mode 100644 index 00000000..d61e1d4b --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/NilClass.html @@ -0,0 +1,291 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::NilClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::NilClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0) + click to toggle source + +
    + +
    + + + + + +
    +
    +static VALUE mNilClass_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result = rb_str_new2("null");
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/Object.html b/doc/JSON/Ext/Generator/GeneratorMethods/Object.html new file mode 100644 index 00000000..6ca6c5b2 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/Object.html @@ -0,0 +1,298 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::Object + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::Object

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Converts this object to a string (calling to_s), converts it to a JSON string, and returns the result. This +is a fallback, if no special method to_json was defined for some object. +

    + + + +
    +
    +static VALUE mObject_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result, string = rb_funcall(self, i_to_s, 0);
    +    Check_Type(string, T_STRING);
    +    result = mString_to_json(argc, argv, string);
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/String.html b/doc/JSON/Ext/Generator/GeneratorMethods/String.html new file mode 100644 index 00000000..fb5a8426 --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/String.html @@ -0,0 +1,417 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::String + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::String

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + included(modul) + click to toggle source + +
    + +
    + +

    +Extends modul with the String::Extend module. +

    + + + +
    +
    +static VALUE mString_included_s(VALUE self, VALUE modul) 
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +This string should be encoded with UTF-8 A call to this method returns a JSON string encoded with UTF16 big endian +characters as u????. +

    + + + +
    +
    +static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result = rb_str_buf_new(RSTRING_LEN(self));
    +    rb_str_buf_cat2(result, "\"");
    +    JSON_convert_UTF8_to_JSON(result, self, strictConversion);
    +    rb_str_buf_cat2(result, "\"");
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + to_json_raw(*args) + click to toggle source + +
    + +
    + +

    +This method creates a JSON text from +the result of a call to to_json_raw_object of this String. +

    + + + +
    +
    +static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self) 
    +
    + +
    + + +
    + + +
    + + +
    + + to_json_raw_object() + click to toggle source + +
    + +
    + +

    +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 JSON instead of UTF-8 strings, e. g. +binary data. +

    + + + +
    +
    +static VALUE mString_to_json_raw_object(VALUE self) 
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + 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 00000000..dca0a7bc --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/String/Extend.html @@ -0,0 +1,290 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::String::Extend + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::String::Extend

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + json_create(o) + click to toggle source + +
    + +
    + +

    +Raw Strings are JSON Objects (the +raw bytes are stored in an array for the key “raw”). The Ruby +String can be created by this module method. +

    + + + +
    +
    +static VALUE mString_Extend_json_create(VALUE self, VALUE o) 
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html b/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html new file mode 100644 index 00000000..8419356d --- /dev/null +++ b/doc/JSON/Ext/Generator/GeneratorMethods/TrueClass.html @@ -0,0 +1,294 @@ + + + + + + + Module: JSON::Ext::Generator::GeneratorMethods::TrueClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::GeneratorMethods::TrueClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0) + click to toggle source + +
    + +
    + +

    +Returns a JSON string for true: +‘true’. +

    + + + +
    +
    +static VALUE mTrueClass_to_json(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE result = rb_str_new2("true");
    +    FORCE_UTF8(result);
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Generator/State.html b/doc/JSON/Ext/Generator/State.html new file mode 100644 index 00000000..218b5680 --- /dev/null +++ b/doc/JSON/Ext/Generator/State.html @@ -0,0 +1,1182 @@ + + + + + + + Class: JSON::Ext::Generator::State + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Generator::State

    + +
    +

    +This class is used to create State instances, that +are use to hold data while generating a JSON text from a a Ruby data structure. +

    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + from_state(opts) + click to toggle source + +
    + +
    + +

    +Creates a State object from opts, which +ought to be Hash to create a new State instance +configured by opts, something else to create an unconfigured +instance. If opts is a State object, it +is just returned. +

    + + + +
    +
    +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);
    +    }
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + new(opts = {}) + click to toggle source + +
    + +
    + +

    +Instantiates a new State object, configured by +opts. +

    +

    +opts can have the following keys: +

    +
      +
    • indent: a string used to indent levels (default: ’’), + +
    • +
    • space: a string that is put after, a : or , delimiter (default: +’’), + +
    • +
    • space_before: a string that is put +before a : pair delimiter (default: ’’), + +
    • +
    • object_nl: a string that is put at +the end of a JSON object (default: +’’), + +
    • +
    • array_nl: a string that is put at +the end of a JSON array (default: +’’), + +
    • +
    • check_circular: true if checking for circular data structures should +be done, false (the default) otherwise. + +
    • +
    • allow_nan: true if NaN, Infinity, and -Infinity should be generated, +otherwise an exception is thrown, if these values are encountered. This +options defaults to false. + +
    • +
    + + + +
    +
    +static VALUE cState_initialize(int argc, VALUE *argv, VALUE self)
    +{
    +    VALUE opts;
    +    GET_STATE(self);
    +
    +    rb_scan_args(argc, argv, "01", &opts);
    +    state->indent = rb_str_new2("");
    +    state->space = rb_str_new2("");
    +    state->space_before = rb_str_new2("");
    +    state->array_nl = rb_str_new2("");
    +    state->object_nl = rb_str_new2("");
    +    if (NIL_P(opts)) {
    +        state->check_circular = 1;
    +        state->allow_nan = 0;
    +        state->max_nesting = 19;
    +    } else {
    +        cState_configure(self, opts);
    +    }
    +    state->seen = rb_hash_new();
    +    state->memo = Qnil;
    +    state->depth = INT2FIX(0);
    +    return self;
    +}
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + allow_nan? + click to toggle source + +
    + +
    + +

    +Returns true, if NaN, Infinity, and -Infinity should be generated, +otherwise returns false. +

    + + + +
    +
    +static VALUE cState_allow_nan_p(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->allow_nan ? Qtrue : Qfalse;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + array_nl() + click to toggle source + +
    + +
    + +

    +This string is put at the end of a line that holds a JSON array. +

    + + + +
    +
    +static VALUE cState_array_nl(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->array_nl;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + array_nl=(array_nl) + click to toggle source + +
    + +
    + +

    +This string is put at the end of a line that holds a JSON array. +

    + + + +
    +
    +static VALUE cState_array_nl_set(VALUE self, VALUE array_nl)
    +{
    +    GET_STATE(self);
    +    Check_Type(array_nl, T_STRING);
    +    return state->array_nl = array_nl;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + check_circular? + click to toggle source + +
    + +
    + +

    +Returns true, if circular data structures should be checked, otherwise +returns false. +

    + + + +
    +
    +static VALUE cState_check_circular_p(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->check_circular ? Qtrue : Qfalse;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + configure(opts) + click to toggle source + +
    + +
    + +

    +Configure this State instance with the Hash +opts, and return itself. +

    + + + +
    +
    +static VALUE cState_configure(VALUE self, VALUE opts)
    +{
    +    VALUE tmp;
    +    GET_STATE(self);
    +    tmp = rb_convert_type(opts, T_HASH, "Hash", "to_hash");
    +    if (NIL_P(tmp)) tmp = rb_convert_type(opts, T_HASH, "Hash", "to_h");
    +    if (NIL_P(tmp)) {
    +        rb_raise(rb_eArgError, "opts has to be hash like or convertable into a hash");
    +    }
    +    opts = tmp;
    +    tmp = rb_hash_aref(opts, ID2SYM(i_indent));
    +    if (RTEST(tmp)) {
    +        Check_Type(tmp, T_STRING);
    +        state->indent = tmp;
    +    }
    +    tmp = rb_hash_aref(opts, ID2SYM(i_space));
    +    if (RTEST(tmp)) {
    +        Check_Type(tmp, T_STRING);
    +        state->space = tmp;
    +    }
    +    tmp = rb_hash_aref(opts, ID2SYM(i_space_before));
    +    if (RTEST(tmp)) {
    +        Check_Type(tmp, T_STRING);
    +        state->space_before = tmp;
    +    }
    +    tmp = rb_hash_aref(opts, ID2SYM(i_array_nl));
    +    if (RTEST(tmp)) {
    +        Check_Type(tmp, T_STRING);
    +        state->array_nl = tmp;
    +    }
    +    tmp = rb_hash_aref(opts, ID2SYM(i_object_nl));
    +    if (RTEST(tmp)) {
    +        Check_Type(tmp, T_STRING);
    +        state->object_nl = tmp;
    +    }
    +    tmp = ID2SYM(i_check_circular);
    +    if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
    +        tmp = rb_hash_aref(opts, ID2SYM(i_check_circular));
    +        state->check_circular = RTEST(tmp);
    +    } else {
    +        state->check_circular = 1;
    +    }
    +    tmp = ID2SYM(i_max_nesting);
    +    state->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->max_nesting = FIX2LONG(max_nesting);
    +        } else {
    +            state->max_nesting = 0;
    +        }
    +    }
    +    tmp = rb_hash_aref(opts, ID2SYM(i_allow_nan));
    +    state->allow_nan = RTEST(tmp);
    +    return self;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + forget(object) + click to toggle source + +
    + +
    + +

    +Forget object for this generating run. +

    + + + +
    +
    +static VALUE cState_forget(VALUE self, VALUE object)
    +{
    +    GET_STATE(self);
    +    return rb_hash_delete(state->seen, rb_obj_id(object));
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + indent() + click to toggle source + +
    + +
    + +

    +This string is used to indent levels in the JSON text. +

    + + + +
    +
    +static VALUE cState_indent(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->indent;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + indent=(indent) + click to toggle source + +
    + +
    + +

    +This string is used to indent levels in the JSON text. +

    + + + +
    +
    +static VALUE cState_indent_set(VALUE self, VALUE indent)
    +{
    +    GET_STATE(self);
    +    Check_Type(indent, T_STRING);
    +    return state->indent = indent;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + max_nesting + click to toggle source + +
    + +
    + +

    +This integer returns the maximum level of data structure nesting in the +generated JSON, max_nesting = 0 if no maximum is checked. +

    + + + +
    +
    +static VALUE cState_max_nesting(VALUE self)
    +{
    +    GET_STATE(self);
    +    return LONG2FIX(state->max_nesting);
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + max_nesting=(depth) + click to toggle source + +
    + +
    + +

    +This sets the maximum level of data structure nesting in the generated JSON to the integer depth, max_nesting = 0 if no maximum should be +checked. +

    + + + +
    +
    +static VALUE cState_max_nesting_set(VALUE self, VALUE depth)
    +{
    +    GET_STATE(self);
    +    Check_Type(depth, T_FIXNUM);
    +    state->max_nesting = FIX2LONG(depth);
    +    return Qnil;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + object_nl() + click to toggle source + +
    + +
    + +

    +This string is put at the end of a line that holds a JSON object (or Hash). +

    + + + +
    +
    +static VALUE cState_object_nl(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->object_nl;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + object_nl=(object_nl) + click to toggle source + +
    + +
    + +

    +This string is put at the end of a line that holds a JSON object (or Hash). +

    + + + +
    +
    +static VALUE cState_object_nl_set(VALUE self, VALUE object_nl)
    +{
    +    GET_STATE(self);
    +    Check_Type(object_nl, T_STRING);
    +    return state->object_nl = object_nl;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + remember(object) + click to toggle source + +
    + +
    + +

    +Remember object, to find out if it was already encountered (if a +cyclic data structure is rendered). +

    + + + +
    +
    +static VALUE cState_remember(VALUE self, VALUE object)
    +{
    +    GET_STATE(self);
    +    return rb_hash_aset(state->seen, rb_obj_id(object), Qtrue);
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + seen?(object) + click to toggle source + +
    + +
    + +

    +Returns true, if object was already seen during this +generating run. +

    + + + +
    +
    +static VALUE cState_seen_p(VALUE self, VALUE object)
    +{
    +    GET_STATE(self);
    +    return rb_hash_aref(state->seen, rb_obj_id(object));
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + space() + click to toggle source + +
    + +
    + +

    +This string is used to insert a space between the tokens in a JSON string. +

    + + + +
    +
    +static VALUE cState_space(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->space;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + space=(space) + click to toggle source + +
    + +
    + +

    +This string is used to insert a space between the tokens in a JSON string. +

    + + + +
    +
    +static VALUE cState_space_set(VALUE self, VALUE space)
    +{
    +    GET_STATE(self);
    +    Check_Type(space, T_STRING);
    +    return state->space = space;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + space_before() + click to toggle source + +
    + +
    + +

    +This string is used to insert a space before the ’:’ in JSON objects. +

    + + + +
    +
    +static VALUE cState_space_before(VALUE self)
    +{
    +    GET_STATE(self);
    +    return state->space_before;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + space_before=(space_before) + click to toggle source + +
    + +
    + +

    +This string is used to insert a space before the ’:’ in JSON objects. +

    + + + +
    +
    +static VALUE cState_space_before_set(VALUE self, VALUE space_before)
    +{
    +    GET_STATE(self);
    +    Check_Type(space_before, T_STRING);
    +    return state->space_before = space_before;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + to_h + click to toggle source + +
    + +
    + +

    +Returns the configuration instance variables as a hash, that can be passed +to the configure method. +

    + + + +
    +
    +static VALUE cState_to_h(VALUE self)
    +{
    +    VALUE result = rb_hash_new();
    +    GET_STATE(self);
    +    rb_hash_aset(result, ID2SYM(i_indent), state->indent);
    +    rb_hash_aset(result, ID2SYM(i_space), state->space);
    +    rb_hash_aset(result, ID2SYM(i_space_before), state->space_before);
    +    rb_hash_aset(result, ID2SYM(i_object_nl), state->object_nl);
    +    rb_hash_aset(result, ID2SYM(i_array_nl), state->array_nl);
    +    rb_hash_aset(result, ID2SYM(i_check_circular), state->check_circular ? Qtrue : Qfalse);
    +    rb_hash_aset(result, ID2SYM(i_allow_nan), state->allow_nan ? Qtrue : Qfalse);
    +    rb_hash_aset(result, ID2SYM(i_max_nesting), LONG2FIX(state->max_nesting));
    +    return result;
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Ext/Parser.html b/doc/JSON/Ext/Parser.html new file mode 100644 index 00000000..4a3e3b52 --- /dev/null +++ b/doc/JSON/Ext/Parser.html @@ -0,0 +1,659 @@ + + + + + + + Class: JSON::Ext::Parser + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Ext::Parser

    + +
    +

    +This is the JSON parser implemented as a C +extension. It can be configured to be used by setting +

    +
    + JSON.parser = JSON::Ext::Parser
    +
    +

    +with the method parser= in JSON. +

    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + new(source, opts => {}) + click to toggle source + +
    + +
    + +

    +Creates a new JSON::Ext::Parser instance for the +string source. +

    +

    +Creates a new JSON::Ext::Parser instance for the +string source. +

    +

    +It will be configured by the opts hash. opts can have the +following keys: +

    +

    +opts can have the following keys: +

    +
      +
    • max_nesting: The maximum depth of nesting allowed in the parsed data +structures. Disable depth checking with :max_nesting => false|nil|0, it +defaults to 19. + +
    • +
    • allow_nan: If set to true, allow NaN, Infinity and -Infinity in +defiance of RFC 4627 to be parsed by the Parser. +This option defaults to false. + +
    • +
    • create_additions: If set to false, the Parser doesn’t create additions even if a +matchin class and create_id was found. This option defaults to true. + +
    • +
    • object_class: Defaults to Hash + +
    • +
    • array_class: Defaults to Array + +
    • +
    + + + +
    +
    +static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)
    +{
    +    char *ptr;
    +    long len;
    +    VALUE source, opts;
    +    GET_STRUCT;
    +    rb_scan_args(argc, argv, "11", &source, &opts);
    +    source = StringValue(source);
    +    ptr = RSTRING_PTR(source);
    +    len = RSTRING_LEN(source);
    +    if (len < 2) {
    +        rb_raise(eParserError, "A JSON text must at least contain two octets!");
    +    }
    +    if (!NIL_P(opts)) {
    +        opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash");
    +        if (NIL_P(opts)) {
    +            rb_raise(rb_eArgError, "opts needs to be like a hash");
    +        } 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->max_nesting = FIX2INT(max_nesting);
    +                } else {
    +                    json->max_nesting = 0;
    +                }
    +            } else {
    +                json->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->allow_nan = RTEST(allow_nan) ? 1 : 0;
    +            } else {
    +                json->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->create_id = rb_funcall(mJSON, i_create_id, 0);
    +                } else {
    +                    json->create_id = Qnil;
    +                }
    +            } else {
    +                json->create_id = rb_funcall(mJSON, i_create_id, 0);
    +            }
    +            tmp = ID2SYM(i_object_class);
    +            if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
    +                json->object_class = rb_hash_aref(opts, tmp);
    +            } else {
    +                json->object_class = Qnil;
    +            }
    +            tmp = ID2SYM(i_array_class);
    +            if (st_lookup(RHASH_TBL(opts), tmp, 0)) {
    +                json->array_class = rb_hash_aref(opts, tmp);
    +            } else {
    +                json->array_class = Qnil;
    +            }
    +        }
    +    } else {
    +        json->max_nesting = 19;
    +        json->allow_nan = 0;
    +        json->create_id = rb_funcall(mJSON, i_create_id, 0);
    +        json->object_class = Qnil;
    +        json->array_class = Qnil;
    +    }
    +    json->current_nesting = 0;
    +    /*
    +       Convert these?
    +    if (len >= 4 &&  ptr[0] == 0 && ptr[1] == 0 && ptr[2] == 0) {
    +        rb_raise(eParserError, "Only UTF8 octet streams are supported atm!");
    +    } else if (len >= 4 && ptr[0] == 0 && ptr[2] == 0) {
    +        rb_raise(eParserError, "Only UTF8 octet streams are supported atm!");
    +    } else if (len >= 4 && ptr[1] == 0 && ptr[2] == 0 && ptr[3] == 0) {
    +        rb_raise(eParserError, "Only UTF8 octet streams are supported atm!");
    +    } else if (len >= 4 && ptr[1] == 0 && ptr[3] == 0) {
    +        rb_raise(eParserError, "Only UTF8 octet streams are supported atm!");
    +    }
    +    */
    +    json->len = len;
    +    json->source = ptr;
    +    json->Vsource = source;
    +    return self;
    +}
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + parse() + click to toggle source + +
    + +
    + +

    +Parses the current JSON text source +and returns the complete data structure as a result. +

    + + + +
    +
    +static VALUE cParser_parse(VALUE self)
    +{
    +    char *p, *pe;
    +    int cs = EVIL;
    +    VALUE result = Qnil;
    +    GET_STRUCT;
    +
    +    
    +#line 1614 "parser.c"
    +        {
    +        cs = JSON_start;
    +        }
    +
    +#line 611 "parser.rl"
    +    p = json->source;
    +    pe = p + json->len;
    +    
    +#line 1623 "parser.c"
    +        {
    +        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 <= (*p) && (*p) <= 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 462 "parser.rl"
    +        {
    +        char *np;
    +        json->current_nesting = 1;
    +        np = JSON_parse_array(json, p, pe, &result);
    +        if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
    +    }
    +        goto st10;
    +tr4:
    +#line 455 "parser.rl"
    +        {
    +        char *np;
    +        json->current_nesting = 1;
    +        np = JSON_parse_object(json, p, pe, &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 1700 "parser.c"
    +        switch( (*p) ) {
    +                case 13: goto st10;
    +                case 32: goto st10;
    +                case 47: goto st6;
    +        }
    +        if ( 9 <= (*p) && (*p) <= 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 614 "parser.rl"
    +
    +    if (cs >= JSON_first_final && p == pe) {
    +        return result;
    +    } else {
    +        rb_raise(eParserError, "%u: unexpected token at '%s'", __LINE__, p);
    +    }
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + source() + click to toggle source + +
    + +
    + +

    +Returns a copy of the current source string, that was used to +construct this Parser. +

    + + + +
    +
    +static VALUE cParser_source(VALUE self)
    +{
    +    GET_STRUCT;
    +    return rb_str_dup(json->Vsource);
    +}
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/GeneratorError.html b/doc/JSON/GeneratorError.html new file mode 100644 index 00000000..c59576ff --- /dev/null +++ b/doc/JSON/GeneratorError.html @@ -0,0 +1,253 @@ + + + + + + + Class: JSON::GeneratorError + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::GeneratorError

    + +
    +

    +This exception is raised, if a generator or unparser error occurs. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/JSONError.html b/doc/JSON/JSONError.html new file mode 100644 index 00000000..5ca2a075 --- /dev/null +++ b/doc/JSON/JSONError.html @@ -0,0 +1,253 @@ + + + + + + + Class: JSON::JSONError + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::JSONError

    + +
    +

    +The base exception for JSON errors. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/MissingUnicodeSupport.html b/doc/JSON/MissingUnicodeSupport.html new file mode 100644 index 00000000..ccb541b2 --- /dev/null +++ b/doc/JSON/MissingUnicodeSupport.html @@ -0,0 +1,254 @@ + + + + + + + Class: JSON::MissingUnicodeSupport + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::MissingUnicodeSupport

    + +
    +

    +This exception is raised, if the required unicode support is missing on the +system. Usually this means, that the iconv library is not installed. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/NestingError.html b/doc/JSON/NestingError.html new file mode 100644 index 00000000..0bf75a67 --- /dev/null +++ b/doc/JSON/NestingError.html @@ -0,0 +1,254 @@ + + + + + + + Class: JSON::NestingError + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::NestingError

    + +
    +

    +This exception is raised, if the nesting of parsed datastructures is too +deep. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/ParserError.html b/doc/JSON/ParserError.html new file mode 100644 index 00000000..b32d206d --- /dev/null +++ b/doc/JSON/ParserError.html @@ -0,0 +1,253 @@ + + + + + + + Class: JSON::ParserError + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::ParserError

    + +
    +

    +This exception is raised, if a parser error occurs. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure.html b/doc/JSON/Pure.html new file mode 100644 index 00000000..a551a1d1 --- /dev/null +++ b/doc/JSON/Pure.html @@ -0,0 +1,264 @@ + + + + + + + Module: JSON::Pure + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + + + + +
    +

    Namespace

    + +
    + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure

    + +
    +

    +This module holds all the modules/classes that implement JSON’s +functionality in pure ruby. +

    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator.html b/doc/JSON/Pure/Generator.html new file mode 100644 index 00000000..f966155d --- /dev/null +++ b/doc/JSON/Pure/Generator.html @@ -0,0 +1,254 @@ + + + + + + + Module: JSON::Pure::Generator + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + + + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator

    + +
    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods.html b/doc/JSON/Pure/Generator/GeneratorMethods.html new file mode 100644 index 00000000..4c094f50 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods.html @@ -0,0 +1,268 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + + + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods

    + +
    + +
    + + + + + + + + + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Array.html b/doc/JSON/Pure/Generator/GeneratorMethods/Array.html new file mode 100644 index 00000000..ffb7a721 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/Array.html @@ -0,0 +1,432 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::Array + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::Array

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0, *) + click to toggle source + +
    + +
    + +

    +Returns a JSON string containing a JSON array, that is unparsed from this Array instance. state is a JSON::State +object, that can also be used to configure the produced JSON string output further. depth +is used to find out nesting depth, to indent accordingly. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 298
    +          def to_json(state = nil, depth = 0, *)
    +            if state
    +              state = JSON.state.from_state(state)
    +              state.check_max_nesting(depth)
    +              json_check_circular(state) { json_transform(state, depth) }
    +            else
    +              json_transform(state, depth)
    +            end
    +          end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + json_check_circular(state) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 310
    +          def json_check_circular(state)
    +            if state and state.check_circular?
    +              state.seen?(self) and raise JSON::CircularDatastructure,
    +                "circular data structures not supported!"
    +              state.remember self
    +            end
    +            yield
    +          ensure
    +            state and state.forget self
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + json_shift(state, depth) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 321
    +          def json_shift(state, depth)
    +            state and not state.array_nl.empty? or return ''
    +            state.indent * depth
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + json_transform(state, depth) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 326
    +          def json_transform(state, depth)
    +            delim = ','
    +            if state
    +              delim << state.array_nl
    +              result = '['
    +              result << state.array_nl
    +              result << map { |value|
    +                json_shift(state, depth + 1) << value.to_json(state, depth + 1)
    +              }.join(delim)
    +              result << state.array_nl
    +              result << json_shift(state, depth) 
    +              result << ']'
    +            else
    +              '[' << map { |value| value.to_json }.join(delim) << ']'
    +            end
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html new file mode 100644 index 00000000..715208e7 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/FalseClass.html @@ -0,0 +1,291 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::FalseClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::FalseClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string for false: +‘false’. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 419
    +          def to_json(*) 'false' end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Float.html b/doc/JSON/Pure/Generator/GeneratorMethods/Float.html new file mode 100644 index 00000000..eb0b0457 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/Float.html @@ -0,0 +1,308 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::Float + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::Float

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, *) + click to toggle source + +
    + +
    + +

    +Returns a JSON string representation +for this Float number. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 351
    +          def to_json(state = nil, *)
    +            case
    +            when infinite?
    +              if !state || state.allow_nan?
    +                to_s
    +              else
    +                raise GeneratorError, "#{self} not allowed in JSON"
    +              end
    +            when nan?
    +              if !state || state.allow_nan?
    +                to_s
    +              else
    +                raise GeneratorError, "#{self} not allowed in JSON"
    +              end
    +            else
    +              to_s
    +            end
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html b/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html new file mode 100644 index 00000000..8499fda0 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/Hash.html @@ -0,0 +1,442 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::Hash + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::Hash

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(state = nil, depth = 0, *) + click to toggle source + +
    + +
    + +

    +Returns a JSON string containing a JSON object, that is unparsed from this Hash instance. state is a JSON::State object, +that can also be used to configure the produced JSON string output further. depth +is used to find out nesting depth, to indent accordingly. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 236
    +          def to_json(state = nil, depth = 0, *)
    +            if state
    +              state = JSON.state.from_state(state)
    +              state.check_max_nesting(depth)
    +              json_check_circular(state) { json_transform(state, depth) }
    +            else
    +              json_transform(state, depth)
    +            end
    +          end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + json_check_circular(state) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 248
    +          def json_check_circular(state)
    +            if state and state.check_circular?
    +              state.seen?(self) and raise JSON::CircularDatastructure,
    +                  "circular data structures not supported!"
    +              state.remember self
    +            end
    +            yield
    +          ensure
    +            state and state.forget self
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + json_shift(state, depth) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 259
    +          def json_shift(state, depth)
    +            state and not state.object_nl.empty? or return ''
    +            state.indent * depth
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + json_transform(state, depth) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 264
    +          def json_transform(state, depth)
    +            delim = ','
    +            if state
    +              delim << state.object_nl
    +              result = '{'
    +              result << state.object_nl
    +              result << map { |key,value|
    +                s = json_shift(state, depth + 1)
    +                s << key.to_s.to_json(state, depth + 1)
    +                s << state.space_before
    +                s << ':'
    +                s << state.space
    +                s << value.to_json(state, depth + 1)
    +              }.join(delim)
    +              result << state.object_nl
    +              result << json_shift(state, depth)
    +              result << '}'
    +            else
    +              result = '{'
    +              result << map { |key,value|
    +                key.to_s.to_json << ':' << value.to_json
    +              }.join(delim)
    +              result << '}'
    +            end
    +            result
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html b/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html new file mode 100644 index 00000000..607e2ece --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/Integer.html @@ -0,0 +1,291 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::Integer + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::Integer

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string representation +for this Integer number. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 346
    +          def to_json(*) to_s end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html new file mode 100644 index 00000000..d1d9d1b6 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/NilClass.html @@ -0,0 +1,291 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::NilClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::NilClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string for nil: +‘null’. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 424
    +          def to_json(*) 'null' end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/Object.html b/doc/JSON/Pure/Generator/GeneratorMethods/Object.html new file mode 100644 index 00000000..d50e33f0 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/Object.html @@ -0,0 +1,293 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::Object + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::Object

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Converts this object to a string (calling to_s), converts it to a JSON string, and returns the result. This +is a fallback, if no special method to_json was defined for some object. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 227
    +          def to_json(*) to_s.to_json end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/String.html b/doc/JSON/Pure/Generator/GeneratorMethods/String.html new file mode 100644 index 00000000..6c85e64e --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/String.html @@ -0,0 +1,428 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::String + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::String

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + included(modul) + click to toggle source + +
    + +
    + +

    +Extends modul with the String::Extend module. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 390
    +          def self.included(modul)
    +            modul.extend Extend
    +          end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +This string should be encoded with UTF-8 A call to this method returns a JSON string encoded with UTF16 big endian +characters as u????. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 375
    +          def to_json(*)
    +            '"' << JSON.utf8_to_json(self) << '"'
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + to_json_raw(*args) + click to toggle source + +
    + +
    + +

    +This method creates a JSON text from +the result of a call to to_json_raw_object of this String. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 407
    +          def to_json_raw(*args)
    +            to_json_raw_object.to_json(*args)
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + to_json_raw_object() + click to toggle source + +
    + +
    + +

    +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 JSON instead of UTF-8 strings, e. g. +binary data. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 398
    +          def to_json_raw_object
    +            {
    +              JSON.create_id  => self.class.name,
    +              'raw'           => self.unpack('C*'),
    +            }
    +          end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + 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 00000000..e231a993 --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/String/Extend.html @@ -0,0 +1,298 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::String::Extend + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::String::Extend

    + +
    +

    +Module that holds the extinding methods if, the String module is included. +

    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + json_create(o) + click to toggle source + +
    + +
    + +

    +Raw Strings are JSON Objects (the +raw bytes are stored in an array for the key “raw”). The Ruby +String can be created by this module method. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 384
    +            def json_create(o)
    +              o['raw'].pack('C*')
    +            end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html b/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html new file mode 100644 index 00000000..dc1c0d3c --- /dev/null +++ b/doc/JSON/Pure/Generator/GeneratorMethods/TrueClass.html @@ -0,0 +1,291 @@ + + + + + + + Module: JSON::Pure::Generator::GeneratorMethods::TrueClass + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::GeneratorMethods::TrueClass

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    +Returns a JSON string for true: +‘true’. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 414
    +          def to_json(*) 'true' end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Generator/State.html b/doc/JSON/Pure/Generator/State.html new file mode 100644 index 00000000..6b347931 --- /dev/null +++ b/doc/JSON/Pure/Generator/State.html @@ -0,0 +1,808 @@ + + + + + + + Class: JSON::Pure::Generator::State + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Generator::State

    + +
    +

    +This class is used to create State instances, that +are use to hold data while generating a JSON text from a a Ruby data structure. +

    + +
    + + + + + + +
    +

    Attributes

    + + +
    + + + + +
    + indent[RW] +
    + +
    + +

    +This string is used to indent levels in the JSON text. +

    + +
    +
    + +
    + + + + +
    + space[RW] +
    + +
    + +

    +This string is used to insert a space between the tokens in a JSON string. +

    + +
    +
    + +
    + + + + +
    + space_before[RW] +
    + +
    + +

    +This string is used to insert a space before the ’:’ in JSON objects. +

    + +
    +
    + +
    + + + + +
    + object_nl[RW] +
    + +
    + +

    +This string is put at the end of a line that holds a JSON object (or Hash). +

    + +
    +
    + +
    + + + + +
    + array_nl[RW] +
    + +
    + +

    +This string is put at the end of a line that holds a JSON array. +

    + +
    +
    + +
    + + + + +
    + max_nesting[RW] +
    + +
    + +

    +This integer returns the maximum level of data structure nesting in the +generated JSON, max_nesting = 0 if no maximum is checked. +

    + +
    +
    + +
    + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + from_state(opts) + click to toggle source + +
    + +
    + +

    +Creates a State object from opts, which +ought to be Hash to create a new State instance +configured by opts, something else to create an unconfigured +instance. If opts is a State object, it +is just returned. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 95
    +        def self.from_state(opts)
    +          case opts
    +          when self
    +            opts
    +          when Hash
    +            new(opts)
    +          else
    +            new
    +          end
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + new(opts = {}) + click to toggle source + +
    + +
    + +

    +Instantiates a new State object, configured by +opts. +

    +

    +opts can have the following keys: +

    +
      +
    • indent: a string used to indent levels (default: ’’), + +
    • +
    • space: a string that is put after, a : or , delimiter (default: +’’), + +
    • +
    • space_before: a string that is +put before a : pair delimiter (default: ’’), + +
    • +
    • object_nl: a string that is put +at the end of a JSON object (default: +’’), + +
    • +
    • array_nl: a string that is put at +the end of a JSON array (default: +’’), + +
    • +
    • check_circular: true if checking for circular data structures should +be done (the default), false otherwise. + +
    • +
    • check_circular: true if checking for circular data structures should +be done, false (the default) otherwise. + +
    • +
    • allow_nan: true if NaN, Infinity, and -Infinity should be generated, +otherwise an exception is thrown, if these values are encountered. This +options defaults to false. + +
    • +
    + + + +
    +
    +# File lib/json/pure/generator.rb, line 122
    +        def initialize(opts = {})
    +          @seen = {}
    +          @indent         = ''
    +          @space          = ''
    +          @space_before   = ''
    +          @object_nl      = ''
    +          @array_nl       = ''
    +          @check_circular = true
    +          @allow_nan      = false
    +          configure opts
    +        end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + allow_nan?() + click to toggle source + +
    + +
    + +

    +Returns true if NaN, Infinity, and -Infinity should be considered as valid +JSON and output. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 170
    +        def allow_nan?
    +          @allow_nan
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + check_circular?() + click to toggle source + +
    + +
    + +

    +Returns true, if circular data structures should be checked, otherwise +returns false. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 164
    +        def check_circular?
    +          @check_circular
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + configure(opts) + click to toggle source + +
    + +
    + +

    +Configure this State instance with the Hash +opts, and return itself. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 193
    +        def configure(opts)
    +          @indent         = opts[:indent] if opts.key?(:indent)
    +          @space          = opts[:space] if opts.key?(:space)
    +          @space_before   = opts[:space_before] if opts.key?(:space_before)
    +          @object_nl      = opts[:object_nl] if opts.key?(:object_nl)
    +          @array_nl       = opts[:array_nl] if opts.key?(:array_nl)
    +          @check_circular = !!opts[:check_circular] if opts.key?(:check_circular)
    +          @allow_nan      = !!opts[:allow_nan] if opts.key?(:allow_nan)
    +          if !opts.key?(:max_nesting) # defaults to 19
    +            @max_nesting = 19
    +          elsif opts[:max_nesting]
    +            @max_nesting = opts[:max_nesting]
    +          else
    +            @max_nesting = 0
    +          end
    +          self
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + forget(object) + click to toggle source + +
    + +
    + +

    +Forget object for this generating run. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 187
    +        def forget(object)
    +          @seen.delete object.__id__
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + remember(object) + click to toggle source + +
    + +
    + +

    +Remember object, to find out if it was already encountered (if a +cyclic data structure is if a cyclic data structure is rendered). +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 182
    +        def remember(object)
    +          @seen[object.__id__] = true
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + seen?(object) + click to toggle source + +
    + +
    + +

    +Returns true, if object was already seen during this +generating run. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 176
    +        def seen?(object)
    +          @seen.key?(object.__id__)
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + to_h() + click to toggle source + +
    + +
    + +

    +Returns the configuration instance variables as a hash, that can be passed +to the configure method. +

    + + + +
    +
    +# File lib/json/pure/generator.rb, line 213
    +        def to_h
    +          result = {}
    +          for iv in %w[indent space space_before object_nl array_nl check_circular allow_nan max_nesting]
    +            result[iv.intern] = instance_variable_get("@#{iv}")
    +          end
    +          result
    +        end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/JSON/Pure/Parser.html b/doc/JSON/Pure/Parser.html new file mode 100644 index 00000000..e6255513 --- /dev/null +++ b/doc/JSON/Pure/Parser.html @@ -0,0 +1,772 @@ + + + + + + + Class: JSON::Pure::Parser + + + + + + + + + + + +
    +
    +
    +

    In Files

    + +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    JSON::Pure::Parser

    + +
    +

    +This class implements the JSON parser that is +used to parse a JSON string into a Ruby data +structure. +

    + +
    + + + +
    +

    Constants

    +
    + +
    STRING
    + +
    (Not documented)
    + + +
    INTEGER
    + +
    (Not documented)
    + + +
    FLOAT
    + +
    (Not documented)
    + + +
    NAN
    + +
    (Not documented)
    + + +
    INFINITY
    + +
    (Not documented)
    + + +
    MINUS_INFINITY
    + +
    (Not documented)
    + + +
    OBJECT_OPEN
    + +
    (Not documented)
    + + +
    OBJECT_CLOSE
    + +
    (Not documented)
    + + +
    ARRAY_OPEN
    + +
    (Not documented)
    + + +
    ARRAY_CLOSE
    + +
    (Not documented)
    + + +
    PAIR_DELIMITER
    + +
    (Not documented)
    + + +
    COLLECTION_DELIMITER
    + +
    (Not documented)
    + + +
    TRUE
    + +
    (Not documented)
    + + +
    FALSE
    + +
    (Not documented)
    + + +
    NULL
    + +
    (Not documented)
    + + +
    IGNORE
    + +
    (Not documented)
    + + +
    UNPARSED
    + +
    (Not documented)
    + + +
    UNESCAPE_MAP
    + +

    +Unescape characters in strings. +

    + + +
    +
    + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + new(source, opts = {}) + click to toggle source + +
    + +
    + +

    +Creates a new JSON::Pure::Parser instance for the +string source. +

    +

    +It will be configured by the opts hash. opts can have the +following keys: +

    +
      +
    • max_nesting: The maximum depth of nesting allowed in the parsed data +structures. Disable depth checking with :max_nesting => false|nil|0, it +defaults to 19. + +
    • +
    • allow_nan: If set to true, allow NaN, Infinity and -Infinity in +defiance of RFC 4627 to be parsed by the Parser. +This option defaults to false. + +
    • +
    • create_additions: If set to false, the Parser doesn’t create additions even if a +matchin class and create_id was found. This option defaults to true. + +
    • +
    • object_class: Defaults to Hash + +
    • +
    • array_class: Defaults to Array + +
    • +
    + + + +
    +
    +# File lib/json/pure/parser.rb, line 68
    +      def initialize(source, opts = {})
    +        super
    +        if !opts.key?(:max_nesting) # defaults to 19
    +          @max_nesting = 19
    +        elsif opts[:max_nesting]
    +          @max_nesting = opts[:max_nesting]
    +        else
    +          @max_nesting = 0
    +        end
    +        @allow_nan = !!opts[:allow_nan]
    +        ca = true
    +        ca = opts[:create_additions] if opts.key?(:create_additions)
    +        @create_id = ca ? JSON.create_id : nil
    +        @object_class = opts[:object_class] || Hash
    +        @array_class = opts[:array_class] || Array
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + parse() + click to toggle source + +
    + +
    + +

    +Parses the current JSON string +source and returns the complete data structure as a result. +

    + + + +
    +
    +# File lib/json/pure/parser.rb, line 89
    +      def parse
    +        reset
    +        obj = nil
    +        until eos?
    +          case
    +          when scan(OBJECT_OPEN)
    +            obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
    +            @current_nesting = 1
    +            obj = parse_object
    +          when scan(ARRAY_OPEN)
    +            obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
    +            @current_nesting = 1
    +            obj = parse_array
    +          when skip(IGNORE)
    +            ;
    +          else
    +            raise ParserError, "source '#{peek(20)}' not in JSON!"
    +          end
    +        end
    +        obj or raise ParserError, "source did not contain any JSON!"
    +        obj
    +      end
    +
    + +
    + + +
    + + +
    + +
    +

    Private Instance Methods

    + + +
    + + +
    + + parse_array() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/parser.rb, line 190
    +      def parse_array
    +        raise NestingError, "nesting of #@current_nesting is too deep" if
    +          @max_nesting.nonzero? && @current_nesting > @max_nesting
    +        result = @array_class.new
    +        delim = false
    +        until eos?
    +          case
    +          when (value = parse_value) != UNPARSED
    +            delim = false
    +            result << value
    +            skip(IGNORE)
    +            if scan(COLLECTION_DELIMITER)
    +              delim = true
    +            elsif match?(ARRAY_CLOSE)
    +              ;
    +            else
    +              raise ParserError, "expected ',' or ']' in array at '#{peek(20)}'!"
    +            end
    +          when scan(ARRAY_CLOSE)
    +            if delim
    +              raise ParserError, "expected next element in array at '#{peek(20)}'!"
    +            end
    +            break
    +          when skip(IGNORE)
    +            ;
    +          else
    +            raise ParserError, "unexpected token in array at '#{peek(20)}'!"
    +          end
    +        end
    +        result
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + parse_object() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/parser.rb, line 222
    +      def parse_object
    +        raise NestingError, "nesting of #@current_nesting is too deep" if
    +          @max_nesting.nonzero? && @current_nesting > @max_nesting
    +        result = @object_class.new
    +        delim = false
    +        until eos?
    +          case
    +          when (string = parse_string) != UNPARSED
    +            skip(IGNORE)
    +            unless scan(PAIR_DELIMITER)
    +              raise ParserError, "expected ':' in object at '#{peek(20)}'!"
    +            end
    +            skip(IGNORE)
    +            unless (value = parse_value).equal? UNPARSED
    +              result[string] = value
    +              delim = false
    +              skip(IGNORE)
    +              if scan(COLLECTION_DELIMITER)
    +                delim = true
    +              elsif match?(OBJECT_CLOSE)
    +                ;
    +              else
    +                raise ParserError, "expected ',' or '}' in object at '#{peek(20)}'!"
    +              end
    +            else
    +              raise ParserError, "expected value in object at '#{peek(20)}'!"
    +            end
    +          when scan(OBJECT_CLOSE)
    +            if delim
    +              raise ParserError, "expected next name, value pair in object at '#{peek(20)}'!"
    +            end
    +            if @create_id and klassname = result[@create_id]
    +              klass = JSON.deep_const_get klassname
    +              break unless klass and klass.json_creatable?
    +              result = klass.json_create(result)
    +            end
    +            break
    +          when skip(IGNORE)
    +            ;
    +          else
    +            raise ParserError, "unexpected token in object at '#{peek(20)}'!"
    +          end
    +        end
    +        result
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + parse_string() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/parser.rb, line 128
    +      def parse_string
    +        if scan(STRING)
    +          return '' if self[1].empty?
    +          string = self[1].gsub(%r((?:\\[\\bfnrt"/]|(?:\\u(?:[A-Fa-f\d]{4}))+|\\[\x20-\xff]))n) do |c|
    +            if u = UNESCAPE_MAP[$&[1]]
    +              u
    +            else # \uXXXX
    +              bytes = ''
    +              i = 0
    +              while c[6 * i] == ?\\ && c[6 * i + 1] == ?u
    +                bytes << c[6 * i + 2, 2].to_i(16) << c[6 * i + 4, 2].to_i(16)
    +                i += 1
    +              end
    +              JSON::UTF16toUTF8.iconv(bytes)
    +            end
    +          end
    +          if string.respond_to?(:force_encoding)
    +            string.force_encoding(Encoding::UTF_8)
    +          end
    +          string
    +        else
    +          UNPARSED
    +        end
    +      rescue Iconv::Failure => e
    +        raise GeneratorError, "Caught #{e.class}: #{e}"
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + parse_value() + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/pure/parser.rb, line 155
    +      def parse_value
    +        case
    +        when scan(FLOAT)
    +          Float(self[1])
    +        when scan(INTEGER)
    +          Integer(self[1])
    +        when scan(TRUE)
    +          true
    +        when scan(FALSE)
    +          false
    +        when scan(NULL)
    +          nil
    +        when (string = parse_string) != UNPARSED
    +          string
    +        when scan(ARRAY_OPEN)
    +          @current_nesting += 1
    +          ary = parse_array
    +          @current_nesting -= 1
    +          ary
    +        when scan(OBJECT_OPEN)
    +          @current_nesting += 1
    +          obj = parse_object
    +          @current_nesting -= 1
    +          obj
    +        when @allow_nan && scan(NAN)
    +          NaN
    +        when @allow_nan && scan(INFINITY)
    +          Infinity
    +        when @allow_nan && scan(MINUS_INFINITY)
    +          MinusInfinity
    +        else
    +          UNPARSED
    +        end
    +      end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Kernel.html b/doc/Kernel.html new file mode 100644 index 00000000..de69284f --- /dev/null +++ b/doc/Kernel.html @@ -0,0 +1,383 @@ + + + + + + + Module: Kernel + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Kernel

    + +
    + +
    + + + + + + + + + +
    +

    Private Instance Methods

    + + +
    + + +
    + + JSON(object, opts = {}) + click to toggle source + +
    + +
    + +

    +If object is string-like parse the string and return the parsed +result as a Ruby data structure. Otherwise generate a JSON text from the Ruby data structure +object and return it. +

    +

    +The opts argument is passed through to generate/parse +respectively, see generate and parse for their documentation. +

    + + + +
    +
    +# File lib/json/common.rb, line 339
    +  def JSON(object, opts = {})
    +    if object.respond_to? :to_str
    +      JSON.parse(object.to_str, opts)
    +    else
    +      JSON.generate(object, opts)
    +    end
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + j(*objs) + click to toggle source + +
    + +
    + +

    +Outputs objs to STDOUT as JSON +strings in the shortest form, that is in one line. +

    + + + +
    +
    +# File lib/json/common.rb, line 317
    +  def j(*objs)
    +    objs.each do |obj|
    +      puts JSON::generate(obj, :allow_nan => true, :max_nesting => false)
    +    end
    +    nil
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + jj(*objs) + click to toggle source + +
    + +
    + +

    +Ouputs objs to STDOUT as JSON +strings in a pretty format, with indentation and over many lines. +

    + + + +
    +
    +# File lib/json/common.rb, line 326
    +  def jj(*objs)
    +    objs.each do |obj|
    +      puts JSON::pretty_generate(obj, :allow_nan => true, :max_nesting => false)
    +    end
    +    nil
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Object.html b/doc/Object.html new file mode 100644 index 00000000..951289cf --- /dev/null +++ b/doc/Object.html @@ -0,0 +1,349 @@ + + + + + + + Class: Object + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Object

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/rails.rb, line 10
    +  def self.json_create(object)
    +    obj = new
    +    for key, value in object
    +      next if key == 'json_class'
    +      instance_variable_set "@#{key}", value
    +    end
    +    obj
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*a) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/rails.rb, line 19
    +  def to_json(*a)
    +    result = {
    +      'json_class' => self.class.name
    +    }
    +    instance_variables.inject(result) do |r, name|
    +      r[name[1..-1]] = instance_variable_get name
    +      r
    +    end
    +    result.to_json(*a)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Range.html b/doc/Range.html new file mode 100644 index 00000000..3a20f334 --- /dev/null +++ b/doc/Range.html @@ -0,0 +1,340 @@ + + + + + + + Class: Range + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Range

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 80
    +  def self.json_create(object)
    +    new(*object['a'])
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 84
    +  def to_json(*args)
    +    {
    +      'json_class'   => self.class.name,
    +      'a'         => [ first, last, exclude_end? ]
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Regexp.html b/doc/Regexp.html new file mode 100644 index 00000000..d763e750 --- /dev/null +++ b/doc/Regexp.html @@ -0,0 +1,341 @@ + + + + + + + Class: Regexp + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Regexp

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 124
    +  def self.json_create(object)
    +    new(object['s'], object['o'])
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 128
    +  def to_json(*)
    +    {
    +      'json_class' => self.class.name,
    +      'o' => options,
    +      's' => source,
    +    }.to_json
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Struct.html b/doc/Struct.html new file mode 100644 index 00000000..0757eaa6 --- /dev/null +++ b/doc/Struct.html @@ -0,0 +1,342 @@ + + + + + + + Class: Struct + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Struct

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 93
    +  def self.json_create(object)
    +    new(*object['v'])
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 97
    +  def to_json(*args)
    +    klass = self.class.name
    +    klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
    +    {
    +      'json_class' => klass,
    +      'v'     => values,
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Symbol.html b/doc/Symbol.html new file mode 100644 index 00000000..6c91fcee --- /dev/null +++ b/doc/Symbol.html @@ -0,0 +1,297 @@ + + + + + + + Class: Symbol + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Symbol

    + +
    + +
    + + + + + + + + + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*a) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/rails.rb, line 32
    +  def to_json(*a)
    +    to_s.to_json(*a)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/Time.html b/doc/Time.html new file mode 100644 index 00000000..852351ae --- /dev/null +++ b/doc/Time.html @@ -0,0 +1,348 @@ + + + + + + + Class: Time + + + + + + + + + + + +
    +
    +
    +

    In Files

    +
    + +
    +
    + + +
    + +
    + + + +
    +

    Parent

    + + + +
    + + + + + + + +
    +

    Methods

    + +
    + + + + +
    + +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    Time

    + +
    + +
    + + + + + + + + + +
    +

    Public Class Methods

    + + +
    + + +
    + + json_create(object) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 11
    +  def self.json_create(object)
    +    if usec = object.delete('u') # used to be tv_usec -> tv_nsec
    +      object['n'] = usec * 1000
    +    end
    +    if respond_to?(:tv_nsec)
    +      at(*object.values_at('s', 'n'))
    +    else
    +      at(object['s'], object['n'] / 1000)
    +    end
    +  end
    +
    + +
    + + +
    + + +
    + +
    +

    Public Instance Methods

    + + +
    + + +
    + + to_json(*args) + click to toggle source + +
    + +
    + +

    (Not documented)

    + + + +
    +
    +# File lib/json/add/core.rb, line 22
    +  def to_json(*args)
    +    {
    +      'json_class' => self.class.name,
    +      's' => tv_sec,
    +      'n' => respond_to?(:tv_nsec) ? tv_nsec : tv_usec * 1000
    +    }.to_json(*args)
    +  end
    +
    + +
    + + +
    + + +
    + + +
    + + +
    + +

    Disabled; run with --debug to generate this.

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + + diff --git a/doc/created.rid b/doc/created.rid new file mode 100644 index 00000000..ced20b48 --- /dev/null +++ b/doc/created.rid @@ -0,0 +1 @@ +Mon, 24 Aug 2009 18:12:40 +0200 diff --git a/doc/doc-main_txt.html b/doc/doc-main_txt.html new file mode 100644 index 00000000..6b13aa95 --- /dev/null +++ b/doc/doc-main_txt.html @@ -0,0 +1,557 @@ + + + + + + + + File: doc-main.txt [RDoc Documentation] + + + + + + + + + + +
    +
    + + +
    +

    Files

    + +
    + + +
    +

    Class Index + [+]

    +
    +
    + Quicksearch + +
    +
    + + + +
    + + +
    +
    + +
    +

    json - JSON Implementation for Ruby

    +

    Description

    +

    +This is a implementation of the JSON specification +according to RFC 4627 (www.ietf.org/rfc/rfc4627.txt). +Starting from version 1.0.0 on there will be two variants available: +

    +
      +
    • A pure ruby variant, that relies on the iconv and the stringscan +extensions, which are both part of the ruby standard library. + +
    • +
    • 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 (www.cs.queensu.ca/~thurston/ragel). + +
    • +
    +

    +Both variants of the JSON generator escape all +non-ASCII an 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 JSON +text 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’t expect UTF-8 encoded texts. On the negative side this may lead +to a bit longer strings than necessarry. +

    +

    +All strings, that are to be encoded as JSON +strings, should be UTF-8 byte sequences on the Ruby side. To encode raw +binary strings, that aren’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. +

    +

    Author

    +

    +Florian Frank <flori@ping.de> +

    +

    License

    +

    +This software is distributed under the same license as Ruby itself, see www.ruby-lang.org/en/LICENSE.txt. +

    +

    Download

    +

    +The latest version of this library can be downloaded at +

    + +

    +Online Documentation should be located at +

    + +

    Usage

    +

    +To use JSON you can +

    +
    +  require 'json'
    +
    +

    +to load the installed variant (either the extension ‘json’ or +the pure variant ‘json_pure’). If you have installed the +extension variant, you can pick either the extension variant or the pure +variant by typing +

    +
    +  require 'json/ext'
    +
    +

    +or +

    +
    +  require 'json/pure'
    +
    +

    +You can choose to load a set of common additions to ruby core’s +objects if you +

    +
    +  require 'json/add/core'
    +
    +

    +After requiring this you can, e. g., serialise/deserialise Ruby ranges: +

    +
    +  JSON JSON(1..10) # => 1..10
    +
    +

    +To find out how to add JSON support to other or +your own classes, read the Examples section below. +

    +

    +To get the best compatibility to rails’ JSON +implementation, you can +

    +
    +  require 'json/add/rails'
    +
    +

    +Both of the additions attempt to require ‘json’ (like above) +first, if it has not been required yet. +

    +

    Speed Comparisons

    +

    +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: +

    +
    + Comparing times (call_time_mean):
    +  1 ParserBenchmarkExt#parser   900 repeats:
    +        553.922304770 (  real) ->   21.500x
    +          0.001805307
    +  2 ParserBenchmarkYAML#parser  1000 repeats:
    +        224.513358139 (  real) ->    8.714x
    +          0.004454078
    +  3 ParserBenchmarkPure#parser  1000 repeats:
    +         26.755020642 (  real) ->    1.038x
    +          0.037376163
    +  4 ParserBenchmarkRails#parser 1000 repeats:
    +         25.763381731 (  real) ->    1.000x
    +          0.038814780
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +In the table above 1 is JSON::Ext::Parser, 2 is YAML.load with YAML +compatbile JSON document, 3 is is JSON::Pure::Parser, 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 JSON::Pure::Parser! +

    +

    +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 JSON::Pure::Parser runs: +

    +
    + Comparing times (call_time_median):
    +  1 ParserBenchmarkExt#parser   900 repeats:
    +        800.592479481 (  real) ->   26.936x
    +          0.001249075
    +  2 ParserBenchmarkYAML#parser  1000 repeats:
    +        271.002390644 (  real) ->    9.118x
    +          0.003690004
    +  3 ParserBenchmarkRails#parser 1000 repeats:
    +         30.227910865 (  real) ->    1.017x
    +          0.033082008
    +  4 ParserBenchmarkPure#parser  1000 repeats:
    +         29.722384421 (  real) ->    1.000x
    +          0.033644676
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +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: +

    +
    + Comparing times (call_time_mean):
    +  1 GeneratorBenchmarkExt#generator_fast    1000 repeats:
    +        547.354332608 (  real) ->   15.090x
    +          0.001826970
    +  2 GeneratorBenchmarkExt#generator_safe    1000 repeats:
    +        443.968212317 (  real) ->   12.240x
    +          0.002252414
    +  3 GeneratorBenchmarkExt#generator_pretty  900 repeats:
    +        375.104545883 (  real) ->   10.341x
    +          0.002665923
    +  4 GeneratorBenchmarkPure#generator_fast   1000 repeats:
    +         49.978706968 (  real) ->    1.378x
    +          0.020008521
    +  5 GeneratorBenchmarkRails#generator       1000 repeats:
    +         38.531868759 (  real) ->    1.062x
    +          0.025952543
    +  6 GeneratorBenchmarkPure#generator_safe   1000 repeats:
    +         36.927649925 (  real) ->    1.018x 7 (>=3859)
    +          0.027079979
    +  7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
    +         36.272134441 (  real) ->    1.000x 6 (>=3859)
    +          0.027569373
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +In the table above 1-3 are JSON::Ext::Generator methods. 4, 6, and +7 are JSON::Pure::Generator methods +and 5 is the Rails JSON generator. It is now a bit +faster than the generator_safe and generator_pretty methods of the pure +variant but slower than the others. +

    +

    +To achieve the fastest JSON text output, you can +use the fast_generate method. Beware, that this will disable the checking +for circular Ruby data structures, which may cause JSON to go into an infinite loop. +

    +

    +Here are the median comparisons for completeness’ sake: +

    +
    + Comparing times (call_time_median):
    +  1 GeneratorBenchmarkExt#generator_fast    1000 repeats:
    +        708.258020939 (  real) ->   16.547x
    +          0.001411915
    +  2 GeneratorBenchmarkExt#generator_safe    1000 repeats:
    +        569.105020353 (  real) ->   13.296x
    +          0.001757145
    +  3 GeneratorBenchmarkExt#generator_pretty  900 repeats:
    +        482.825371244 (  real) ->   11.280x
    +          0.002071142
    +  4 GeneratorBenchmarkPure#generator_fast   1000 repeats:
    +         62.717626652 (  real) ->    1.465x
    +          0.015944481
    +  5 GeneratorBenchmarkRails#generator       1000 repeats:
    +         43.965681162 (  real) ->    1.027x
    +          0.022745013
    +  6 GeneratorBenchmarkPure#generator_safe   1000 repeats:
    +         43.929073409 (  real) ->    1.026x 7 (>=3859)
    +          0.022763968
    +  7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
    +         42.802514491 (  real) ->    1.000x 6 (>=3859)
    +          0.023363113
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    Examples

    +

    +To create a JSON text from a ruby data structure, +you can call JSON.generate like that: +

    +
    + json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    + # => "[1,2,{\"a\":3.141},false,true,null,\"4..10\"]"
    +
    +

    +To create a valid JSON text you have to make sure, +that the output is embedded in either a JSON array +[] or a JSON object {}. The easiest way to do this, +is by putting your values in a Ruby Array or Hash instance. +

    +

    +To get back a ruby data structure from a JSON text, +you have to call JSON.parse on it: +

    +
    + JSON.parse json
    + # => [1, 2, {"a"=>3.141}, false, true, nil, "4..10"]
    +
    +

    +Note, that the range from the original data structure is a simple string +now. The reason for this is, that JSON +doesn’t support ranges or arbitrary classes. In this case the json +library falls back to call Object#to_json, which is the same as +to_s.to_json. +

    +

    +It’s possible to add JSON support +serialization to arbitrary classes by simply implementing a more +specialized version of the to_json method, that should return a JSON object (a hash converted to JSON with to_json) like this (don’t forget the +*a for all the arguments): +

    +
    + class Range
    +   def to_json(*a)
    +     {
    +       'json_class'   => self.class.name, # = 'Range'
    +       'data'         => [ first, last, exclude_end? ]
    +     }.to_json(*a)
    +   end
    + end
    +
    +

    +The hash key ‘json_class’ is the class, that will be asked to +deserialise the JSON representation later. In this +case it’s ‘Range’, but any namespace of the form +‘A::B’ or ’::A::B’ will do. All other keys are +arbitrary and can be used to store the necessary data to configure the +object to be deserialised. +

    +

    +If a the key ‘json_class’ is found in a JSON object, the JSON parser +checks if the given class responds to the json_create class method. If so, +it is called with the JSON object converted to a +Ruby hash. So a range can be deserialised by implementing Range.json_create like this: +

    +
    + class Range
    +   def self.json_create(o)
    +     new(*o['data'])
    +   end
    + end
    +
    +

    +Now it possible to serialise/deserialise ranges as well: +

    +
    + json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    + # => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]"
    + JSON.parse json
    + # => [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    +
    +

    +JSON.generate always creates the shortest +possible string representation of a ruby data structure in one line. This +good for data storage or network protocols, but not so good for humans to +read. Fortunately there’s also JSON.pretty_generate (or JSON.pretty_generate) that creates a more +readable output: +

    +
    + puts JSON.pretty_generate([1, 2, {"a"=>3.141}, false, true, nil, 4..10])
    + [
    +   1,
    +   2,
    +   {
    +     "a": 3.141
    +   },
    +   false,
    +   true,
    +   null,
    +   {
    +     "json_class": "Range",
    +     "data": [
    +       4,
    +       10,
    +       false
    +     ]
    +   }
    + ]
    +
    +

    +There are also the methods Kernel#j for +generate, and Kernel#jj for +pretty_generate output to the console, that work analogous to Core +Ruby’s p and the pp library’s pp methods. +

    +

    +The script tools/server.rb contains a small example if you want to test, +how receiving a JSON object from a webrick server +in your browser with the javasript prototype library (www.prototypejs.org) works. +

    + +
    + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + + diff --git a/doc/ext/json/ext/generator/generator_c.html b/doc/ext/json/ext/generator/generator_c.html new file mode 100644 index 00000000..ada9cdca --- /dev/null +++ b/doc/ext/json/ext/generator/generator_c.html @@ -0,0 +1,52 @@ + + + + + + + + File: generator.c [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/ext/json/ext/parser/parser_c.html b/doc/ext/json/ext/parser/parser_c.html new file mode 100644 index 00000000..bae909f3 --- /dev/null +++ b/doc/ext/json/ext/parser/parser_c.html @@ -0,0 +1,52 @@ + + + + + + + + File: parser.c [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/images/brick.png b/doc/images/brick.png new file mode 100755 index 0000000000000000000000000000000000000000..7851cf34c946e5667221e3478668503eb1cd733f GIT binary patch literal 452 zcmV;#0XzPQP)Pdwe5?6tW?r-ok|b$oDQj8FV%kZPq;(MWOV8?8;<)(iP}>hNMU> z7fbz%jjlr7h8uuoQ~J6}n}@Y@PdTk=)PxO{%7zmL?dchpZX*~n;I{!C>*(8cU;q(~ zAS%Po_@naEU!xidrBXD?;hN|x^%W|Ij)0y*r5vi|?W&Fub(NqJ@z0o=O&SR3v>A``^efOSo-hEdApp;^Jd;9y!%1UfzX6Bh- z%-mbG|0Na{7Ruai_Y+DEb1s+b!*9k%Q!whMxjtZKA*?o;i1g&jy0@( zaU=-@d-h+o%gal6JRXEXA&L3`d2 z%jIxzZ~*p9O-;EJp_Ds0If38rM<5W8ic~K>FOK&2_p!CLg^i63OioVb6k$)zWHLx3 z5;!|M!}<9+#QSi1dRlbEcxPt^;cysUuU8@%3}RwpLRIGG<|IKnoyP6$Eh3SKw7a*r zSDXP=IYc&YZf;7@?fCe($^l9ORaJ3wbAx0uiC8QqRr$2t-Cfy8%XCI3B%pxJW>XdM zw~zPt_s}#A@pxQ5Ly)4szaMtH9lgE1SXx@b+S(fW`ub$fYPE8J7#bSNDzme*Ub07{ zQKV8SjEs!%0@v5ql8ggm!@$6Rbi^E8vBqpRM-}l+@5OSMrl+TWj*gC^qoV@>u{fQb zov5v?g~?>X@bEC&+uLPaQ&Ypn-y~^mZA}+f(&2EFH8eE%dU|@ENpN*_1-)L6_4Rc* zFuq@`IjX9vp1QiaK9ZojyZhnQURP99d=u;%37VRkpwsD4U0sd3x;hEQB&e^i|3QN0 z=H|Os1fRqaw!?#igLmS4HE!G3*ce(`TF} zlgUq0Q544c8(ae&UR$8ps&snq6^bPY3v3xAmMW74Di$h~GCH6E3TaYs2#6A<7K*gC z777H71_Wa;(dfp+g-drPCSWu)#PInZi72LJ;o?i~$-U=y&UbQ89Dul3%3P+Axkzc* zbH-y;QF=hR{qLItf%ci2_&e5wNo0gnVatG?ul6Zw=o$I9Ljfn*ic3`U?>IfEim3g{ zujU&$-hy6wn;w(xme|zJm;lWJxtTFfM)q0`kX!Vu0+d${$}LCddK1<^htTe-fUYL3 zB`SdNsZD>RgvLj1<^@h6_+cDRK2Brcr2~>%$*5S)hyV33PV^teac3%|4lz@8p4?)5 z?t5o^?q+%^%)Yygo~I^U4VR!bTnWuE35hcWrfCDR3q+sxJ79e7Fg`&)RCqLA^2^y^ z0laVfadW90_Fz8Brm|r47sB^u1VgI>kanj)Z4`zMSfHlm8>CwXa$JVM`$2RrmZB-3 zN10m-!;BvH*Br3V8t`DH7m`jf#2upVDXl{5ff18_pzCPK1Zu$$CKKvd8FGeFf)+K<|x33pc7P&S#3GZT4mEw;nr(Ze*F z3&*?-4U-lm*#tber5 z%S_ceqB`b3ko6r~BbvDwdohTvP(3a(pq{x#T$yQsu#OKwEe}KuH^Mh@nxg_(Nw136 zq#a^3xNBke)In+!?qk3%4wB69{pF`Tzg`07*qoM6N<$ Eg55P&8UO$Q literal 0 HcmV?d00001 diff --git a/doc/images/bullet_black.png b/doc/images/bullet_black.png new file mode 100755 index 0000000000000000000000000000000000000000..57619706d10d9736b1849a83f2c5694fbe09c53b GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$h^>lFz(Kw&{<9vg>5sw~gS5O!4 zr|{HuUFIBKiQyL}eBJ-L{`UVT|6_O~L{G%N{Wbre{kQtZ_0LvEhC#5QQ<|d}62BjvZR2H60wE-$h^mK6y(Kw&{<9vg>(S^W+6Zii9 z|Nhthr~iNb*Z!}6uiN$Dz5neG3a-`baBX8yz1H+_;eX)`ni0%X8XBDc-`=Ph(Uan2 zYsR{H!kvIN--9isvHznRsC#5QQ<|d}62BjvZR2H60wE-$h_H=O!(Kw&{<9vg>(S^W+6Zii9 z|Nhthr~iNb*Z!}6uiN$Dz5neG3a-`baBX8yz4q@v|B?28{s)#N@CGn3@%_y|zAV9T z66e<&B4?b6oF&azg|C(V&1ZbI_D}pL`}(^FT2yXwG1Ph~$Q@h8mJYOz!PC{xWt~$( F699+YQR)By literal 0 HcmV?d00001 diff --git a/doc/images/date.png b/doc/images/date.png new file mode 100755 index 0000000000000000000000000000000000000000..783c83357fdf90a1c7c024358e1d768b5c09c135 GIT binary patch literal 626 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 Dl)1NK literal 0 HcmV?d00001 diff --git a/doc/images/macFFBgHack.png b/doc/images/macFFBgHack.png new file mode 100644 index 0000000000000000000000000000000000000000..c6473b324ee1dae1faaacc0826639833f551116c GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAIEX7WqAsj$Z!;#Vf4nJ za0`Jjl>Qs8<JF;+Fd5q0wCR k?u=~bH}2*0f`J3~k>FVdQ&MBb@0BAfpf&c&j literal 0 HcmV?d00001 diff --git a/doc/images/package.png b/doc/images/package.png new file mode 100755 index 0000000000000000000000000000000000000000..da3c2a2d74bab159ba0f65d7db601768258afcb2 GIT binary patch literal 853 zcmV-b1FHOqP)5TQ^(M5v$(QKVE?W+9X! z*o}&~6c?_FreF)9NJB7b5Nbn{G0n4+%uJhR9(V5R|NFTpb|HgjefT!tIhLx@DR+N) zV+fHiR5Yt19}k|KnCsND{tH-`IMJ)3AE?OtyZ4>Un|6(d%h#JK`i&a7^xW9>`yBy` zS4SOHeOpC7$?hH5-#7Rswiue_8Ju*2N@$58=a#2OTA3png`w3v->gWif7t%e$ z$NLVS!tFT#8WL|Wa&K~+{%4P2cRfwesYV1_!F=3OaRVHl(>=`%&{x*s30c}#CNE@&;ItrAv!f!)Oy$Q9t$uS=(sD$-J{T*^(8Eez1E-l3}} zPrfHZ1`qsIFe&gipuL8-IZbo2Yg{lFGKs?ZZWcOaOdk*3`5T;$?AjbG1#`B510Er^h2)2r3Y{!8_2Gj=$KzuN5 zaErtW8W_Y2iJJjY)5pmTVJoPJYpanPOEuYHclM^C1F>${hFRpdi8a<2H|Xudf78bm(zwJ9`K%6I?q*Ua~ fW9JvIbn5*B+_J)rUMBs>00000NkvXXu0mjfH&TkY literal 0 HcmV?d00001 diff --git a/doc/images/page_green.png b/doc/images/page_green.png new file mode 100755 index 0000000000000000000000000000000000000000..de8e003f9fb8752c09e7f3655d5d8664b5c62fc3 GIT binary patch literal 621 zcmV-z0+RiSP)QqUjAtB;_Vvt6}AS_5YgM`Uqu`yva+H8^=4U$e4gHb}u zAQ2N{V3A%pO|?Pv?tb6z=jC}SiRa$G^v3q?*6XcYz$p|cq{uLj@#~Fi`J(>5{@&&N zy%T^+;>8cXx%|o77anP?&W1?1A(>-T49z9pyeCl@7YI+Si zKti7=B~``}TImz(G{0PnlQA3P#MAd}sorMjkP!50B7$nAkU^%#nl{Q9lW0@}9fE-> zN(q7tRuiC_T1r|BBtVBTlQ2+70$Rf;eF`Z;lx46Cpu-rEgb)EBKq(b^W8l<^We(`D z43?0=01z<3G6+UUv6`CsWCk6^93!#+<;ws7007{zS3k2k9-zZKFO~(k`>s0y006+1 zgF_jyIhsL-`FMf~JL~C=cV75(CrJ|q;MVO961G=O zm9d)YpJg5g(4i_HKL75eSE}mq$Y}r}hyVdcV~p>6a}oXr80q`oj%+s700000NkvXX Hu0mjfPs|!l literal 0 HcmV?d00001 diff --git a/doc/images/page_white_text.png b/doc/images/page_white_text.png new file mode 100755 index 0000000000000000000000000000000000000000..813f712f726c935f9adf8d2f2dd0d7683791ef11 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%6;pyTSA|c6o&@eC9QG)Hj&ExYL zO&oVL^)+cM^qd@ApywS>pwx0H@RDN}hq;7mU-SKczYQ-hnrr=;iDAQMZQ+*g=YOM= z!QlMQEn7FbaD->uKAYgo_j9)W&$$zS*W9}m(ey0q$&7l-XEWO0Y(9M=SnhLbwy;d>@~SY$Ku*0xPvIOQeV1x7u_z-2-X>_74(yfh7C znXL|3GZ+d2`3re2hs?MKC#5QQ<|d}62BjvZR2H60wE-$R?&;zfqH(@;q9b3Efq-lM(nr^( z=EYR73-9e)UYMWsXy%?aZsD68Yyv^2$~6QgEcljw%kx>O(f-gQ?@fOOx3A-0+Qw?O zRx~W)kn~Qe2d6f9nMG#g9Q04Mk==M~N!Dglvxk!fgVh#w@ZV$IY1+Xc`d{d2UcaP~ zfWp)_Ivqj}l2SPy^9ZWy6rG9Yx4v67_uA&&9|XA~5-#3)W3%em1peD8RWH^#O%XoM zxMPud%}GTj#~*+7JMxTd!`{^Q+>(D3*|@KV`*G2;{QnANOxu1$r2xIe;OXk;vd$@? F2>@zac~<}c literal 0 HcmV?d00001 diff --git a/doc/images/plugin.png b/doc/images/plugin.png new file mode 100755 index 0000000000000000000000000000000000000000..6187b15aec001b7080b51a5f944f07591f26cc15 GIT binary patch literal 591 zcmV-V0eEcNHZMNv|IbJ-M`( zKwWL~opzjJe^WpCmV9E;(0&ut2;4va_(#>M8)>9$R5viQnf(Nkh~VM$y>J(jqb$cj z+nL1Nm|mV)Gm|9MnHf*7Ja4OEAQz__^LRKOLEwqpiGV^^A*T=#&inGm-62Xs;dnSp zKj&H9T*boh2i)W+(n27l!C)>fq|L%VB1i ziC4p;NwV_}ZjW7$LRW#(_bKF#hp=!IqNO26Z*w2+LEwx{PVnZ&Sn}T;mtzb$;qA*nT@@+ zV5uQ@iXDTPoTbV#FRr~z04|PPh`wXTNoCm9*tG&?e3+fYl>K6+&3|Cc$KOpL`ER+_ dcRl5U#9zn6ZO}GFk7R5;7c zlif>`Q5?tj7Yw@ZCMtTF^Q|ZedeJhM%QPCR*bs8V79p$QTo7e94yQNXRs-{0?hOn_-8n0AMO@u1Ts zNl8QzJs1#rz%RBt?ux>l+amAvh+J!{$lkaqv}+Erb-6j2xp>K4GLQnNB*W`hFg*?P z^AL@~(h~Z+wfcWEXHqV^Tq-#z$7Y#o0;yFxA!00F}F2dX# zjE$iOgT#G4*1TR6kB1Gnn@>$meCh2a>c5YuIvFn-R2W@>4@M*m@-|jiDV?b)bccgA zyPfsMM!rjy>+1O2)5Eg29Z_*2p&qGnmS!OH?vZ(4>QB01d>j%9n4QINxkyT(Dos?I zjaWF$*IQmh`SF-?xU%xMEfjq1=6qY*g&lgG_cXv$BGoIWyfO5 zp>pdV*O+y=&6@N2WWFo(%RtT`Q(H^6zn^a%epE~Kx^mEJ{c8`luC$nc*z9j|4Ms8aJK-la^5T)AZ%#@G{_P{NCN^P z(J0zvSn~SSm(Ur);-M~8^*;61*VRI`T1BN&LAhK;sZ>I-SVW;vfUfJv=ko^ugnc0x zhJodBxe>iyk3%w<%wC8holUJ4(iv>tL{`DQt zPOsyUbO_Cmc&*iHkqbm3ku`|GcC^OhF>jj9W*GkH;^g!iUVpib_h*=@udp4h(P+e*zL_~ZmJjh(y^BxULwq>9zXoYE8sq{#pN~U0C6!8vY)5N2 z9P*}mw}7X$O^qTtJef1ACWvJT9^wt-)Zh0r~j#0bT`f;-zv6 z^Tmw22!%rMcs!TaUX<-8s;X-B`+Xbo+_uWuFa z1yIPc?DTrQ7KvRhmt*TG|L=EYQ=LqFX;=Lp`4}jx6BE-@00000NkvXXu0mjf=s_29 literal 0 HcmV?d00001 diff --git a/doc/images/wrench.png b/doc/images/wrench.png new file mode 100755 index 0000000000000000000000000000000000000000..5c8213fef5ab969f03189d4367e32e597e38bd7f GIT binary patch literal 610 zcmV-o0-gPdP)^jb z4`0v}DG1te)wmeb(>p90leRz?_mO+^JKy=v&2<29Od6?F%9%(c8los#f*@G`-%W&* z$)uBj2i@u-@SgX}gtyWPe6d*|w6h%R? zScK2#Yn%$sum0cy>90DmY*i{1XqpClEtktsRTZ)lCUe z<FogV^*tm>8*AlX za4oiR!&85LrobG57qUHUX#{>Vz(RHpB5|@>9O6N$jqB8>%($0wxE5R3)b>Y~xtCo$ zCgEk&A?_#IxHdN)9tqre^o{ho4{?hmPuf@^@I3-wncaRd%|~O3xbrKY=&TiwPYkJroM{;WUQTuMY8vpg}f4o)2%U3C;eEDoiEh?94d(rV57VIF#8VqzW$HrDC|#U`x@QDbgi zVl)t9GGz&YY#D?gc%>hISA+_EBpnXt#pnC`p6@xw0$8TCbULjhlgVx(kuc)%xbgqq zR5+DNDFRN0!y)7Gm}oT0i39}h4h928qY?Rho^UvPGJ#kuW|-Amtrn`Pmd&+bFo@sp z$LI4IQw7BG?|#2ewOS<<3VjL$0=lMY^m;wqZujv5kx1l%Sl;V&Iy4#$ip3&@LV2!7vhhN=PCz%^9v24`qb(+m4W?!q-&~=?ssf5GfnAmJKV;3bvpDm0(NhahZ=&^sqo6Odj6>)Dq_3p~4~ zvb`d3Mydwjt&Df^hVmLtI2x=U&h9(JVYX-!y~z3zi;1>=LY;o(bL$(Yf$lf)dMf0-u^0HrpTG Wk@)HE*94aU0000m+BBgry{~j2fHLegbHP( zrgXNbr0}2;^nywdjLjZe?uxtrd3D(pZH@fFFc0{BW_~jxoO1w7-VX;6vK@ROA$$R6 zEmo;Ht-Mj|>5jUy{bQ^V5@53LRI8AgLpUm|m+15sqcz@QtVSo|oz7ArM8?pIn+>gN z0b=4_b5O|4A*;Q+vc9Vqr~%3V155*NV~@gTz}KSUiKB-uJzjMZ>5%Q#n24H!V{ zTY(LLAE*NAHZ}C#wnj%Bw5OFIkRhkkAW#kDC3j9Wm0YXRaXlyyp>#mVfYG)eC;@ab zDb=T-BCAY4LI(Z@GOTr2V_A{pRwSmz+8Be>CjAw(=gnbVWAeguvZa93JmL(EDxv1m z0OP4q=fpAK1Mq!C2`OkEn37o;m#wF#(t(8Pu#S?2f#x<~4EO{@fmm`p9veD6RZ_jp z@Au4};q&`XuKEYgIiB4((kgxOs#YdqJw0fY>9^K_agEu5+$#k;w#%I2N>n_?)YIqu z`tq&#_^p?-%K*U0^}|7+9U(&k0?s;=r=uCZ%)H9_edH8wK}gB(nUB1FFk+2Ol%BXV zHoFY`D~2x|2 + + + + + + + RDoc Documentation + + + + + + + + + + + + +

    RDoc Documentation

    + + +
    +

    json - JSON Implementation for Ruby

    +

    Description

    +

    +This is a implementation of the JSON specification +according to RFC 4627 (www.ietf.org/rfc/rfc4627.txt). +Starting from version 1.0.0 on there will be two variants available: +

    +
      +
    • A pure ruby variant, that relies on the iconv and the stringscan +extensions, which are both part of the ruby standard library. + +
    • +
    • 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 (www.cs.queensu.ca/~thurston/ragel). + +
    • +
    +

    +Both variants of the JSON generator escape all +non-ASCII an 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 JSON +text 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’t expect UTF-8 encoded texts. On the negative side this may lead +to a bit longer strings than necessarry. +

    +

    +All strings, that are to be encoded as JSON +strings, should be UTF-8 byte sequences on the Ruby side. To encode raw +binary strings, that aren’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. +

    +

    Author

    +

    +Florian Frank <flori@ping.de> +

    +

    License

    +

    +This software is distributed under the same license as Ruby itself, see www.ruby-lang.org/en/LICENSE.txt. +

    +

    Download

    +

    +The latest version of this library can be downloaded at +

    + +

    +Online Documentation should be located at +

    + +

    Usage

    +

    +To use JSON you can +

    +
    +  require 'json'
    +
    +

    +to load the installed variant (either the extension ‘json’ or +the pure variant ‘json_pure’). If you have installed the +extension variant, you can pick either the extension variant or the pure +variant by typing +

    +
    +  require 'json/ext'
    +
    +

    +or +

    +
    +  require 'json/pure'
    +
    +

    +You can choose to load a set of common additions to ruby core’s +objects if you +

    +
    +  require 'json/add/core'
    +
    +

    +After requiring this you can, e. g., serialise/deserialise Ruby ranges: +

    +
    +  JSON JSON(1..10) # => 1..10
    +
    +

    +To find out how to add JSON support to other or +your own classes, read the Examples section below. +

    +

    +To get the best compatibility to rails’ JSON +implementation, you can +

    +
    +  require 'json/add/rails'
    +
    +

    +Both of the additions attempt to require ‘json’ (like above) +first, if it has not been required yet. +

    +

    Speed Comparisons

    +

    +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: +

    +
    + Comparing times (call_time_mean):
    +  1 ParserBenchmarkExt#parser   900 repeats:
    +        553.922304770 (  real) ->   21.500x
    +          0.001805307
    +  2 ParserBenchmarkYAML#parser  1000 repeats:
    +        224.513358139 (  real) ->    8.714x
    +          0.004454078
    +  3 ParserBenchmarkPure#parser  1000 repeats:
    +         26.755020642 (  real) ->    1.038x
    +          0.037376163
    +  4 ParserBenchmarkRails#parser 1000 repeats:
    +         25.763381731 (  real) ->    1.000x
    +          0.038814780
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +In the table above 1 is JSON::Ext::Parser, 2 is YAML.load with YAML +compatbile JSON document, 3 is is JSON::Pure::Parser, 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 JSON::Pure::Parser! +

    +

    +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 JSON::Pure::Parser runs: +

    +
    + Comparing times (call_time_median):
    +  1 ParserBenchmarkExt#parser   900 repeats:
    +        800.592479481 (  real) ->   26.936x
    +          0.001249075
    +  2 ParserBenchmarkYAML#parser  1000 repeats:
    +        271.002390644 (  real) ->    9.118x
    +          0.003690004
    +  3 ParserBenchmarkRails#parser 1000 repeats:
    +         30.227910865 (  real) ->    1.017x
    +          0.033082008
    +  4 ParserBenchmarkPure#parser  1000 repeats:
    +         29.722384421 (  real) ->    1.000x
    +          0.033644676
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +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: +

    +
    + Comparing times (call_time_mean):
    +  1 GeneratorBenchmarkExt#generator_fast    1000 repeats:
    +        547.354332608 (  real) ->   15.090x
    +          0.001826970
    +  2 GeneratorBenchmarkExt#generator_safe    1000 repeats:
    +        443.968212317 (  real) ->   12.240x
    +          0.002252414
    +  3 GeneratorBenchmarkExt#generator_pretty  900 repeats:
    +        375.104545883 (  real) ->   10.341x
    +          0.002665923
    +  4 GeneratorBenchmarkPure#generator_fast   1000 repeats:
    +         49.978706968 (  real) ->    1.378x
    +          0.020008521
    +  5 GeneratorBenchmarkRails#generator       1000 repeats:
    +         38.531868759 (  real) ->    1.062x
    +          0.025952543
    +  6 GeneratorBenchmarkPure#generator_safe   1000 repeats:
    +         36.927649925 (  real) ->    1.018x 7 (>=3859)
    +          0.027079979
    +  7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
    +         36.272134441 (  real) ->    1.000x 6 (>=3859)
    +          0.027569373
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    +In the table above 1-3 are JSON::Ext::Generator methods. 4, 6, and +7 are JSON::Pure::Generator methods +and 5 is the Rails JSON generator. It is now a bit +faster than the generator_safe and generator_pretty methods of the pure +variant but slower than the others. +

    +

    +To achieve the fastest JSON text output, you can +use the fast_generate method. Beware, that this will disable the checking +for circular Ruby data structures, which may cause JSON to go into an infinite loop. +

    +

    +Here are the median comparisons for completeness’ sake: +

    +
    + Comparing times (call_time_median):
    +  1 GeneratorBenchmarkExt#generator_fast    1000 repeats:
    +        708.258020939 (  real) ->   16.547x
    +          0.001411915
    +  2 GeneratorBenchmarkExt#generator_safe    1000 repeats:
    +        569.105020353 (  real) ->   13.296x
    +          0.001757145
    +  3 GeneratorBenchmarkExt#generator_pretty  900 repeats:
    +        482.825371244 (  real) ->   11.280x
    +          0.002071142
    +  4 GeneratorBenchmarkPure#generator_fast   1000 repeats:
    +         62.717626652 (  real) ->    1.465x
    +          0.015944481
    +  5 GeneratorBenchmarkRails#generator       1000 repeats:
    +         43.965681162 (  real) ->    1.027x
    +          0.022745013
    +  6 GeneratorBenchmarkPure#generator_safe   1000 repeats:
    +         43.929073409 (  real) ->    1.026x 7 (>=3859)
    +          0.022763968
    +  7 GeneratorBenchmarkPure#generator_pretty 1000 repeats:
    +         42.802514491 (  real) ->    1.000x 6 (>=3859)
    +          0.023363113
    +            calls/sec (  time) ->    speed  covers
    +            secs/call
    +
    +

    Examples

    +

    +To create a JSON text from a ruby data structure, +you can call JSON.generate like that: +

    +
    + json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    + # => "[1,2,{\"a\":3.141},false,true,null,\"4..10\"]"
    +
    +

    +To create a valid JSON text you have to make sure, +that the output is embedded in either a JSON array +[] or a JSON object {}. The easiest way to do this, +is by putting your values in a Ruby Array or Hash instance. +

    +

    +To get back a ruby data structure from a JSON text, +you have to call JSON.parse on it: +

    +
    + JSON.parse json
    + # => [1, 2, {"a"=>3.141}, false, true, nil, "4..10"]
    +
    +

    +Note, that the range from the original data structure is a simple string +now. The reason for this is, that JSON +doesn’t support ranges or arbitrary classes. In this case the json +library falls back to call Object#to_json, which is the same as +to_s.to_json. +

    +

    +It’s possible to add JSON support +serialization to arbitrary classes by simply implementing a more +specialized version of the to_json method, that should return a JSON object (a hash converted to JSON with to_json) like this (don’t forget the +*a for all the arguments): +

    +
    + class Range
    +   def to_json(*a)
    +     {
    +       'json_class'   => self.class.name, # = 'Range'
    +       'data'         => [ first, last, exclude_end? ]
    +     }.to_json(*a)
    +   end
    + end
    +
    +

    +The hash key ‘json_class’ is the class, that will be asked to +deserialise the JSON representation later. In this +case it’s ‘Range’, but any namespace of the form +‘A::B’ or ’::A::B’ will do. All other keys are +arbitrary and can be used to store the necessary data to configure the +object to be deserialised. +

    +

    +If a the key ‘json_class’ is found in a JSON object, the JSON parser +checks if the given class responds to the json_create class method. If so, +it is called with the JSON object converted to a +Ruby hash. So a range can be deserialised by implementing Range.json_create like this: +

    +
    + class Range
    +   def self.json_create(o)
    +     new(*o['data'])
    +   end
    + end
    +
    +

    +Now it possible to serialise/deserialise ranges as well: +

    +
    + json = JSON.generate [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    + # => "[1,2,{\"a\":3.141},false,true,null,{\"json_class\":\"Range\",\"data\":[4,10,false]}]"
    + JSON.parse json
    + # => [1, 2, {"a"=>3.141}, false, true, nil, 4..10]
    +
    +

    +JSON.generate always creates the shortest +possible string representation of a ruby data structure in one line. This +good for data storage or network protocols, but not so good for humans to +read. Fortunately there’s also JSON.pretty_generate (or JSON.pretty_generate) that creates a more +readable output: +

    +
    + puts JSON.pretty_generate([1, 2, {"a"=>3.141}, false, true, nil, 4..10])
    + [
    +   1,
    +   2,
    +   {
    +     "a": 3.141
    +   },
    +   false,
    +   true,
    +   null,
    +   {
    +     "json_class": "Range",
    +     "data": [
    +       4,
    +       10,
    +       false
    +     ]
    +   }
    + ]
    +
    +

    +There are also the methods Kernel#j for +generate, and Kernel#jj for +pretty_generate output to the console, that work analogous to Core +Ruby’s p and the pp library’s pp methods. +

    +

    +The script tools/server.rb contains a small example if you want to test, +how receiving a JSON object from a webrick server +in your browser with the javasript prototype library (www.prototypejs.org) works. +

    + +
    + + + + +

    Files

    + + + +

    Classes/Modules

    + + +

    Methods

    + + +
    +

    [Validate]

    +

    Generated with the Darkfish + Rdoc Generator 1.1.6.

    +
    + + diff --git a/doc/js/darkfish.js b/doc/js/darkfish.js new file mode 100644 index 00000000..43528fdd --- /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 + * + */ + +/* 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( '
    ' ); + } 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 00000000..afe9e74c --- /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=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-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]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=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&¬xml&&!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&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&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*",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 im[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=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=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=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=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("
    ").append(res.responseText.replace(//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;ithis.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 00000000..332772ac --- /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 + * + */ +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 00000000..3a3fdae1 --- /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(c35?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("<4 5=\'B\'><4 5=\'8\'>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'><4 5=\'8\'>");$("#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+"\' />");$(\'#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&1d;&1d;2T &2R;"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;&2O; 2N"}}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("<1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"<4 5=\'2A\'>1l 1k 1j 1s");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'>");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 5=\'2e\'>1l 1k 1j 1s ")}n{$("#B").N();$("#8").q(" ")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"<4 5=\'2e\'>1l 1k 1j 1s<4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'>")}}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 + + + + + + + File: core.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json
    • + +
    • date
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    +

    +This file contains implementations of ruby core’s custom objects for +serialisation/deserialisation. +

    + +
    + +
    + + + diff --git a/doc/lib/json/add/rails_rb.html b/doc/lib/json/add/rails_rb.html new file mode 100644 index 00000000..59794785 --- /dev/null +++ b/doc/lib/json/add/rails_rb.html @@ -0,0 +1,58 @@ + + + + + + + + File: rails.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    +

    +This file contains implementations of rails custom objects for +serialisation/deserialisation. +

    + +
    + +
    + + + diff --git a/doc/lib/json/common_rb.html b/doc/lib/json/common_rb.html new file mode 100644 index 00000000..461ca838 --- /dev/null +++ b/doc/lib/json/common_rb.html @@ -0,0 +1,54 @@ + + + + + + + + File: common.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json/version
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json/editor_rb.html b/doc/lib/json/editor_rb.html new file mode 100644 index 00000000..474e71df --- /dev/null +++ b/doc/lib/json/editor_rb.html @@ -0,0 +1,66 @@ + + + + + + + + File: editor.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • gtk2
    • + +
    • iconv
    • + +
    • json
    • + +
    • rbconfig
    • + +
    • open-uri
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    +

    +To use the GUI JSON editor, start the +edit_json.rb executable script. It requires ruby-gtk to be installed. +

    + +
    + +
    + + + diff --git a/doc/lib/json/ext_rb.html b/doc/lib/json/ext_rb.html new file mode 100644 index 00000000..1b694fa9 --- /dev/null +++ b/doc/lib/json/ext_rb.html @@ -0,0 +1,58 @@ + + + + + + + + File: ext.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json/common
    • + +
    • json/ext/parser
    • + +
    • json/ext/generator
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json/pure/generator_rb.html b/doc/lib/json/pure/generator_rb.html new file mode 100644 index 00000000..5640defd --- /dev/null +++ b/doc/lib/json/pure/generator_rb.html @@ -0,0 +1,52 @@ + + + + + + + + File: generator.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json/pure/parser_rb.html b/doc/lib/json/pure/parser_rb.html new file mode 100644 index 00000000..ec529c47 --- /dev/null +++ b/doc/lib/json/pure/parser_rb.html @@ -0,0 +1,54 @@ + + + + + + + + File: parser.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • strscan
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json/pure_rb.html b/doc/lib/json/pure_rb.html new file mode 100644 index 00000000..c2e63561 --- /dev/null +++ b/doc/lib/json/pure_rb.html @@ -0,0 +1,60 @@ + + + + + + + + File: pure.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json/common
    • + +
    • json/pure/parser
    • + +
    • json/pure/generator
    • + +
    • iconv
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json/version_rb.html b/doc/lib/json/version_rb.html new file mode 100644 index 00000000..69c7b6ad --- /dev/null +++ b/doc/lib/json/version_rb.html @@ -0,0 +1,52 @@ + + + + + + + + File: version.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/lib/json_rb.html b/doc/lib/json_rb.html new file mode 100644 index 00000000..e51e27a7 --- /dev/null +++ b/doc/lib/json_rb.html @@ -0,0 +1,60 @@ + + + + + + + + File: json.rb [RDoc Documentation] + + + + + + + + + + +
    +
    +
    Last Modified
    +
    Mon Aug 24 18:12:39 +0200 2009
    + + +
    Requires
    +
    +
      + +
    • json/common
    • + +
    • json/version
    • + +
    • json/ext
    • + +
    • json/pure
    • + +
    +
    + + + +
    +
    + +
    + +
    +

    Description

    + +
    + +
    + + + diff --git a/doc/rdoc.css b/doc/rdoc.css new file mode 100644 index 00000000..bca0a021 --- /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 + * + */ + +/* 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 */ From 69c384d6fe06cbb1ffd5a73854d88f0d75d22309 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Tue, 25 Aug 2009 00:18:45 +0200 Subject: [PATCH 07/43] made pages a bit more beautiful --- clear.incl | 1 + headline.incl | 5 ++++- index.html | 9 ++++++--- index.tmpl | 2 +- json_logo.png | Bin 0 -> 7116 bytes logo.incl | 1 - screenshots.html | 38 ++++++++++++++++++++------------------ screenshots.tmpl | 4 ++-- 8 files changed, 34 insertions(+), 26 deletions(-) create mode 100644 clear.incl create mode 100644 json_logo.png diff --git a/clear.incl b/clear.incl new file mode 100644 index 00000000..8df3d7db --- /dev/null +++ b/clear.incl @@ -0,0 +1 @@ +
    diff --git a/headline.incl b/headline.incl index d2e0f505..a0359023 100644 --- a/headline.incl +++ b/headline.incl @@ -1 +1,4 @@ -

    [=@project_unixname] – [=@project_name]

    +

    + + [=@project_name] +

    diff --git a/index.html b/index.html index b6e65a83..4ba35f9e 100644 --- a/index.html +++ b/index.html @@ -21,10 +21,13 @@ - -
    -

    json – JSON implementation for Ruby

    +

    + + JSON implementation for Ruby +

    + +

    Description

    diff --git a/index.tmpl b/index.tmpl index 10e3a114..b6a486f1 100644 --- a/index.tmpl +++ b/index.tmpl @@ -1,8 +1,8 @@ [^header.incl] [^linkbox.incl] -[^logo.incl]

    [^headline.incl] +[^clear.incl] [^description.incl] [^installation.incl] [^usage.incl] diff --git a/json_logo.png b/json_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f98988df5b980f80488e0595052a88c2e0add95a GIT binary patch literal 7116 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 UeuTCX{Bs0QQ_@zfhFgXF2ftNeQvd(} literal 0 HcmV?d00001 diff --git a/logo.incl b/logo.incl index 40255bff..e69de29b 100644 --- a/logo.incl +++ b/logo.incl @@ -1 +0,0 @@ - diff --git a/screenshots.html b/screenshots.html index a1897998..2b59fc50 100644 --- a/screenshots.html +++ b/screenshots.html @@ -21,10 +21,12 @@ -
    -

    json – JSON implementation for Ruby

    +

    + + JSON implementation for Ruby +

    Screenshots

    Here are some Screenshots from the graphical JSON Editor @@ -32,65 +34,65 @@

    Screenshots

    working installation of Ruby GTK2 is necessary.

    -
    +
    - Screenshot #1 + Screenshot #1
    Screenshot #1 (Click to enlarge)
    -
    +
    - Screenshot #2 + Screenshot #2
    Screenshot #2 (Click to enlarge)
    -
    +
    - Screenshot #3 + Screenshot #3
    Screenshot #3 (Click to enlarge)
    -
    +
    - Screenshot #4 + Screenshot #4
    Screenshot #4 (Click to enlarge)
    -
    +
    - Screenshot #5 + Screenshot #5
    Screenshot #5 (Click to enlarge)
    -
    +
    - Screenshot #6 + Screenshot #6
    Screenshot #6 (Click to enlarge)
    -
    +
    - Screenshot #7 + Screenshot #7
    Screenshot #7 (Click to enlarge)
    -
    +
    - Screenshot #8 + Screenshot #8
    Screenshot #8 (Click to enlarge) diff --git a/screenshots.tmpl b/screenshots.tmpl index d688c8bc..874360cc 100644 --- a/screenshots.tmpl +++ b/screenshots.tmpl @@ -9,9 +9,9 @@ working installation of Ruby GTK2 is necessary.

    [@screenshots.each_with_index do |s,i|] -
    +
    - Screenshot #[=i + 1] + Screenshot #[=i + 1]
    Screenshot #[=i + 1] (Click to enlarge) From 4bba14be1425415e538a50bd38469c1c9f62b4ae Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Tue, 25 Aug 2009 00:25:44 +0200 Subject: [PATCH 08/43] fixed screenshopts page --- screenshots.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/screenshots.tmpl b/screenshots.tmpl index 874360cc..8b3acf06 100644 --- a/screenshots.tmpl +++ b/screenshots.tmpl @@ -1,8 +1,8 @@ [^header.incl] [^linkbox.incl] -[^logo.incl]
    [^headline.incl] +[^clear.incl]

    Screenshots

    Here are some Screenshots from the graphical JSON Editor edit_json.rb, that is included in the library package. To run it, a From 27b18bd21e97d4048e3ef07cd9ec9d2fa2b9755a Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Tue, 25 Aug 2009 00:27:06 +0200 Subject: [PATCH 09/43] built screenshots page --- screenshots.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/screenshots.html b/screenshots.html index 2b59fc50..e411af8f 100644 --- a/screenshots.html +++ b/screenshots.html @@ -21,13 +21,14 @@ -

    JSON implementation for Ruby

    +
    +

    Screenshots

    Here are some Screenshots from the graphical JSON Editor edit_json.rb, that is included in the library package. To run it, a From 0c12ee19a76de229742ea37283f846bb4f63701e Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Tue, 25 Aug 2009 00:32:10 +0200 Subject: [PATCH 10/43] added homepage url --- index.html | 2 +- meta.json | 1 + screenshots.html | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 4ba35f9e..e9752dcf 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,7 @@

    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 Iiz$Bp2R*)rTmS$7 literal 0 HcmV?d00001 diff --git a/diagrams/JSON_integer.png b/diagrams/JSON_integer.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b08c5a04a0549f8486b72d757f75e58e591490 GIT binary patch literal 35954 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 literal 0 HcmV?d00001 diff --git a/diagrams/JSON_object.png b/diagrams/JSON_object.png new file mode 100644 index 0000000000000000000000000000000000000000..90fc17861925ec845a681b6e6b57936017ac460f GIT binary patch literal 270231 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