Commits

Toby Inkster  committed 57d21fc

Get 0.500 ready for release

  • Participants
  • Parent commits c36dac0

Comments (0)

Files changed (13)

File Changes

-############################################################################
-## Changes #################################################################
-############################################################################
-
-JSON-JOM
-========
-
-Created:      2010-08-22
-Home page:    <http://search.cpan.org/dist/JSON-JOM/>
-Bug tracker:  <http://rt.cpan.org/Dist/Display.html?Queue=JSON-JOM>
-Maintainer:   Toby Inkster <mailto:tobyink@cpan.org>
-
-0.005 [2010-09-16]
- - Replace my own ref() solution with UNIVERSAL::ref.
-
-0.004 [2010-09-15]
- - JSON::JOM::Value better at distinguishing between numbers and strings.
-
-0.003 [2010-09-01]
- - Split common object/array parts of JOM into a JSON::JOM::Node abstract
-   class.
- - (Addition) JSON::JOM::Plugins::TreeUtils.
- - (Addition) Make strings, numbers, booleans and nulls first class members
-   of the JOM.
-
-0.002 [2010-08-26]
- - (Bugfix) rootNode stuff now actually works.
-
-0.001 [2010-08-25] # First release
-

File Changes.ttl

-#############################################################
-
-@prefix :        <http://usefulinc.com/ns/doap#> .
-@prefix dcs:     <http://ontologi.es/doap-changeset#> .
-@prefix dc:      <http://purl.org/dc/terms/> .
-@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
-@prefix my:      <http://purl.org/NET/cpan-uri/dist/JSON-JOM/> .
-@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix toby:    <http://tobyinkster.co.uk/#> .
-@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
-
-#############################################################
-
-<>
-
-	dc:title         "Changes" ;
-	dc:description   "Revision history for Perl extension JSON::JOM."@en ;
-	dc:subject       my:project ;
-	dc:creator       toby:i .
-
-#############################################################
-
-my:v_0-001
-
-	a               :Version ;
-	dc:issued       "2010-08-25"^^xsd:date ;
-	:revision       "0.001"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.001.tar.gz> ;
-	rdfs:label      "First release"@en .
-
-my:v_0-002
-
-	a               :Version ;
-	dc:issued       "2010-08-26"^^xsd:date ;
-	:revision       "0.002"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.002.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-001 ;
-		dcs:item [ rdfs:label "rootNode stuff now actually works."@en ; a dcs:Bugfix ]
-		] .
-
-my:v_0-003
-
-	a               :Version ;
-	dc:issued       "2010-09-01"^^xsd:date ;
-	:revision       "0.003"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.003.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-002 ;
-		dcs:item [ rdfs:label "Make strings, numbers, booleans and nulls first class members of the JOM."@en ; a dcs:Addition ] ;
-		dcs:item [ rdfs:label "JSON::JOM::Plugins::TreeUtils."@en ; a dcs:Addition ] ;
-		dcs:item [ rdfs:label "Split common object/array parts of JOM into a JSON::JOM::Node abstract class."@en  ]
-		] .
-
-my:v_0-004
-
-	a               :Version ;
-	dc:issued       "2010-09-15"^^xsd:date ;
-	:revision       "0.004"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.004.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-003 ;
-		dcs:item [ rdfs:label "JSON::JOM::Value better at distinguishing between numbers and strings."@en ] 
-		] .
-
-my:v_0-005
-
-	a               :Version ;
-	dc:issued       "2010-09-16"^^xsd:date ;
-	:revision       "0.005"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.005.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-004 ;
-		dcs:item [ rdfs:label "Replace my own ref() solution with UNIVERSAL::ref."@en ] 
-		] .
-
-#############################################################
-
-my:project
-
-	a               :Project ;
-	:name           "JSON-JOM" ;
-	:shortdesc      "the JSON Object Model"@en ;
-	:programming-language  "Perl" ;
-	:homepage       <https://metacpan.org/release/JSON-JOM> ;
-	:download-page  <https://metacpan.org/release/JSON-JOM> ;
-	:bug-database   <http://rt.cpan.org/Dist/Display.html?Queue=JSON-JOM> ;
-	:repository     [ a :SVNRepository ; :browse <http://goddamn.co.uk/svn-web/perlmods/browse/JSON-JOM/> ] ;
-	:maintainer     toby:i ;
-	:developer      toby:i ;
-	:documenter     toby:i ;
-	:tester         toby:i ;
-	:created        "2010-08-22"^^xsd:date ;
-	:license        <http://dev.perl.org/licenses/> ;
-	:release        my:v_0-001 , my:v_0-002 , my:v_0-003 , my:v_0-004 , my:v_0-005 .
-
-#############################################################
-
-toby:i
-
-	a               foaf:Person ;
-	foaf:name       "Toby Inkster" ;
-	foaf:homepage   <http://tobyinkster.co.uk/> ;
-	foaf:page       <https://metacpan.org/author/TOBYINK> ;
-	foaf:mbox       <mailto:tobyink@cpan.org> ;
-	<http://www.w3.org/2002/07/owl#sameAs> <http://purl.org/NET/cpan-uri/person/tobyink> .
-
-#############################################################

File Changes.xml

-<?xml version="1.0" encoding="utf-8"?>
-<rdf:RDF xmlns:dbug="http://ontologi.es/doap-bugs#" xmlns:dc="http://purl.org/dc/terms/" xmlns:dcs="http://ontologi.es/doap-changeset#" xmlns:doap="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r0">
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r1"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-001"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r1">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Bugfix"/>
-	<rdfs:label xml:lang="en">rootNode stuff now actually works.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r10">
-	<doap:browse rdf:resource="http://goddamn.co.uk/viewvc/perlmods/JSON-JOM/"/>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#SVNRepository"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r2">
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r3"/>
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r4"/>
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r5"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-002"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r3">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Make strings, numbers, booleans and nulls first class members of the JOM.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r4">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">JSON::JOM::Plugins::TreeUtils.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r5">
-	<rdfs:label xml:lang="en">Split common object/array parts of JOM into a JSON::JOM::Node abstract class.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r6">
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r7"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-003"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r7">
-	<rdfs:label xml:lang="en">JSON::JOM::Value better at distinguishing between numbers and strings.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r8">
-	<dcs:item rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r9"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-004"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r9">
-	<rdfs:label xml:lang="en">Replace my own ref() solution with UNIVERSAL::ref.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:about="file:///home/tai/src/perlmods/JSON-JOM/Changes.ttl">
-	<dc:creator rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<dc:description xml:lang="en">Revision history for Perl extension JSON::JOM.</dc:description>
-	<dc:subject rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/project"/>
-	<dc:title>Changes</dc:title>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/project">
-	<doap:bug-database rdf:resource="http://rt.cpan.org/Dist/Display.html?Queue=JSON-JOM"/>
-	<doap:created rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-08-22</doap:created>
-	<doap:developer rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:documenter rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:download-page rdf:resource="http://search.cpan.org/dist/JSON-JOM/"/>
-	<doap:homepage rdf:resource="http://search.cpan.org/dist/JSON-JOM/"/>
-	<doap:license rdf:resource="http://dev.perl.org/licenses/"/>
-	<doap:maintainer rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:name>JSON-JOM</doap:name>
-	<doap:programming-language>Perl</doap:programming-language>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-001"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-002"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-003"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-004"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-005"/>
-	<doap:repository rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r10"/>
-	<doap:shortdesc xml:lang="en">the JSON Object Model</doap:shortdesc>
-	<doap:tester rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Project"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-001">
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-08-25</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.001.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.001</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-	<rdfs:label xml:lang="en">First release</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-002">
-	<dcs:changeset rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r0"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-08-26</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.002.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.002</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-003">
-	<dcs:changeset rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r2"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-09-01</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.003.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.003</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-004">
-	<dcs:changeset rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r6"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-09-15</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.004.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.004</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/JSON-JOM/v_0-005">
-	<dcs:changeset rdf:nodeID="r3AE00846C16C11DF88A6D422F5705F75r8"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-09-16</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.005.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.005</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description xmlns:ns1="http://www.w3.org/2002/07/owl#" rdf:about="http://tobyinkster.co.uk/#i">
-	<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-	<ns1:sameAs rdf:resource="http://purl.org/NET/cpan-uri/person/tobyink"/>
-	<foaf:homepage rdf:resource="http://tobyinkster.co.uk/"/>
-	<foaf:mbox rdf:resource="mailto:tobyink@cpan.org"/>
-	<foaf:name>Toby Inkster</foaf:name>
-	<foaf:page rdf:resource="http://search.cpan.org/~tobyink/"/>
-</rdf:Description>
-</rdf:RDF>

File MANIFEST.SKIP

-^MANIFEST.bak$
-^Makefile.old$
-^Makefile$
-^blib/
-^pm_to_blib
-^blibdirs
-\.svn
-^example.*\.pl$
-^[^/]+\.(tar\.gz|tar\.bz2|tgz|tbz2|tbz|zip|tar)$
-^MYMETA\.yml
-

File META.yml

----
-abstract: 'the JSON Object Model'
-author:
-  - 'Toby Inkster <tobyink@cpan.org>'
-build_requires:
-  ExtUtils::MakeMaker: 6.42
-  Test::More: 0.61
-configure_requires:
-  ExtUtils::MakeMaker: 6.42
-distribution_type: module
-generated_by: 'Module::Install version 0.95'
-license: perl
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
-name: JSON-JOM
-no_index:
-  directory:
-    - inc
-    - t
-requires:
-  B: 0
-  Carp: 0
-  Exporter: 0
-  JSON: 2.00
-  Module::Pluggable: 0
-  Scalar::Util: 0
-  Tie::Array: 0
-  Tie::Hash: 0
-  UNIVERSAL::ref: 0.12
-  common::sense: 0
-  perl: 5.8.0
-resources:
-  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=JSON-JOM
-  homepage: http://search.cpan.org/dist/JSON-JOM/
-  license: http://dev.perl.org/licenses/
-  repository: http://goddamn.co.uk/viewvc/perlmods/JSON-JOM/
-version: 0.100
-
-use strict;
-use warnings;
-
-use inc::Module::Install;
-
-my $dist = 'JSON-JOM';
-my $fn   = "lib/$dist.pm"; $fn =~ s#-#/#g;
-
-name                $dist;
-perl_version_from   $fn;
-version_from        $fn;
-abstract_from       $fn;
-readme_from         $fn;
-author              'Toby Inkster <tobyink@cpan.org>';
-license             'perl';
-
-requires            'B'                  => 0;
-requires            'Carp'               => 0;
-requires            'common::sense'      => 0;
-requires            'Exporter'           => 0;
-requires            'JSON'               => '2.00';
-requires            'Module::Pluggable'  => 0;
-requires            'Scalar::Util'       => 0;
-test_requires       'Test::More'         => '0.61';
-requires            'Tie::Array'         => 0;
-requires            'Tie::Hash'          => 0;
-requires            'UNIVERSAL::ref'     => '0.12';
-
-resources(
-	'homepage'   => "https://metacpan.org/release/$dist",
-	'repository' => "http://goddamn.co.uk/svn-web/perlmods/browse/$dist/",
-	'bugtracker' => "http://rt.cpan.org/Dist/Display.html?Queue=$dist",
-	);
-	
-write_doap_changes;
-write_doap_changes_xml;
-auto_license;
-auto_manifest;
-
-auto_install;
-WriteAll(
-	'meta' => 1,
-	'sign' => 1,
-	);
+use inc::Module::Package 'RDF:standard 0.005';

File README

-NAME
-    JSON::JOM - the JSON Object Model
-
-SYNOPSIS
-     # from_json and to_json compatible with the JSON module
-     # but build JSON::JOM::Object and JSON::JOM::Array objects
-     use JSON::JOM qw[from_json to_json]; 
-     my $object = from_json('{ ...some json... }');
- 
-     # JOM objects are blessed hashrefs and arrayrefs
-     # So you can read from them like this...
-     my $thingy = $object->{'foo'}{'bar'}[0]{'quux'};
- 
-     # But look at this:
-     my $array = $thingy->parentNode->parentNode;
-     print $array->nodePath;  # $['foo']['bar']
-
-DESCRIPTION
-    Until version 0.100 the entire JOM API should be considered subject to
-    change without notice.
-
-    JSON::JOM provides a DOM-like API for working with JSON.
-
-    While JSON represents JSON arrays as Perl arrayrefs and JSON objects as
-    Perl hashrefs, JSON::JOM represents each as a blessed object.
-
-    Internally, JSON::JOM::Object and JSON::JOM::Array store their data as a
-    hashref or arrayref, so you can still use this pattern of working:
-
-      my $data = JSON::JOM::from_json(<<'JSON');
-      {
-        "foo": {
-          "bar": [
-            { "quux" : 0 },
-            { "quux" : 1 },
-            { "quux" : 2 },
-          ]
-        }
-      }
-      JSON
-  
-      foreach my $obj (@{ $data->{foo}{bar} })
-      {
-        printf("The quux of the matter is: %d\n", $obj->{quux})
-      }
-
-    But all arrays and objects provide various methods to make working with
-    them a bit easier. See JSON::JOM::Object and JSON::JOM::Array for
-    descriptions of these methods.
-
-    Values that the JSON module would represent as a Perl scalar, are
-    represented as a JSON::JOM::Value in JOM. This uses overload to act like
-    a scalar.
-
-    Note that if you use the arrayref/hashref way of working, things are not
-    always completely intuitive:
-
-      $root  = to_jom({});
-      $child = [ 1,2,3 ];
-  
-      # Add $child to our JOM structure:
-      $root->{list} = $child;
-  
-      print $root->{list}->count . "\n";  # prints '3'
-  
-      # Now modify $child
-      push @$child, 4;
-  
-      print $root->{list}->count . "\n";  # still '3'!
-
-    This is because the $child arrayref isn't just placed blindly into the
-    JOM structure, but "imported" into it. Compare the above with:
-
-      $root  = to_jom({});
-      $child = [ 1,2,3 ];
-  
-      # Add $child to our JOM structure, and this time,
-      # set $child to point to the imported list.
-      $child = $root->{list} = $child;
-  
-      print $root->{list}->count . "\n";  # prints '3'
-  
-      # Now modify $child
-      push @$child, 4;
-  
-      print $root->{list}->count . "\n";  # prints '4'
-
-FUNCTIONS
-    This modules provides the following functions. None of them are exported
-    by default.
-
-      use JSON::JOM;              # export nothing
-      use JSON::JOM ':standard';  # export first three
-      use JSON::JOM ':all;        # export everything
-      use JSON::JOM 'to_jom';     # export a particular function
-
-  "from_json($string, \%options)"
-    JSON parser compatible with JSON::from_json.
-
-  "to_json($jom, \%options)"
-    JSON serialiser compatible with JSON::from_json, except that
-    convert_blessed is always true.
-
-  "to_jom($data)"
-    Converts a Perl hashref/arrayref structure to its JOM equivalent.
-
-BUGS
-    Please report any bugs to <http://rt.cpan.org/>.
-
-SEE ALSO
-    The real guts of JOM are in JSON::JOM::Object, JSON::JOM::Array and
-    JSON::JOM::Value.
-
-    JSON::JOM::Plugins.
-
-    JSON.
-
-AUTHOR
-    Toby Inkster <tobyink@cpan.org>.
-
-COPYRIGHT
-    Copyright 2010 Toby Inkster
-
-    This library is free software; you can redistribute it and/or modify it
-    under the same terms as Perl itself.
-

File TODO

-TODO:
-* Add some more items to this list.
-* Add keywords to Makefile.PL

File example1.pl

-#!/usr/bin/perl
-
-use 5.010;
-use common::sense;
-use lib "lib";
-
-use Data::Dumper;
-use JSON::JOM qw[:standard];
-use Scalar::Util qw[blessed];
-
-my $T = from_json('{"quux":[1,2,3,"foo\nbar",[1,2,3,true,false,null,[],{},false],{"abc":2,"xyzzy":1,"baz":"quux","foo":"bar"},null]}');
-say $T->toJSON(pretty=>1,canonical=>1);
-exit;
-
-my $objxx = from_json('{"x":[1,[2,3],"4"]}');
-print join(',' ,$objxx->getDescendentsByType('NUMBER'))."\n";
-
-my $obj = from_json('{"a_bool":true,"foo":1,"bar":[{"quux":"2"},3,4]}');
-$obj->{baz} = [7,8,9];
-push @{ $obj->{baz} }, {'xyzzy'=>5};
-unshift @{ $obj->{baz} }, {'xyzzy'=>1};
-say ref $obj;
-say blessed($obj); 
-say to_json($obj,{'canonical'=>1});
-say $obj->{'bar'}->can('count');
-say $obj->{'baz'}[4]->nodePath;
-say join ',', sort $obj->{'bar'}->parentNode->keys;
-print $obj->to_yaml;
-
-my $jom = to_jom([1,2,3,4,5,6,7,8,9]);
-printf("Object has %d values.\n", $jom->count);
-# print "$_\n" foreach $jom->values;
-
-my $root  = to_jom({});
-my $child = [ 1,2,3 ];
-
-# Add $child to our JOM structure:
-$root->{list} = $child;
-
-print $root->{list}->count . "\n";  # prints '3'
-
-# Now modify $child
-push @$child, 4;
-
-print $root->{list}->count . "\n";  # still '3'!
-
-my $foo = $obj->{a_bool};
-
-print $foo->typeof . " : $foo\n";
-
-print $foo->parentNode->dump;

File examples/example1.pl

+#!/usr/bin/perl
+
+use 5.010;
+use common::sense;
+use lib "lib";
+
+use Data::Dumper;
+use JSON::JOM qw[:standard];
+use Scalar::Util qw[blessed];
+
+my $T = from_json('{"quux":[1,2,3,"foo\nbar",[1,2,3,true,false,null,[],{},false],{"abc":2,"xyzzy":1,"baz":"quux","foo":"bar"},null]}');
+say $T->toJSON(pretty=>1,canonical=>1);
+exit;
+
+my $objxx = from_json('{"x":[1,[2,3],"4"]}');
+print join(',' ,$objxx->getDescendentsByType('NUMBER'))."\n";
+
+my $obj = from_json('{"a_bool":true,"foo":1,"bar":[{"quux":"2"},3,4]}');
+$obj->{baz} = [7,8,9];
+push @{ $obj->{baz} }, {'xyzzy'=>5};
+unshift @{ $obj->{baz} }, {'xyzzy'=>1};
+say ref $obj;
+say blessed($obj); 
+say to_json($obj,{'canonical'=>1});
+say $obj->{'bar'}->can('count');
+say $obj->{'baz'}[4]->nodePath;
+say join ',', sort $obj->{'bar'}->parentNode->keys;
+print $obj->to_yaml;
+
+my $jom = to_jom([1,2,3,4,5,6,7,8,9]);
+printf("Object has %d values.\n", $jom->count);
+# print "$_\n" foreach $jom->values;
+
+my $root  = to_jom({});
+my $child = [ 1,2,3 ];
+
+# Add $child to our JOM structure:
+$root->{list} = $child;
+
+print $root->{list}->count . "\n";  # prints '3'
+
+# Now modify $child
+push @$child, 4;
+
+print $root->{list}->count . "\n";  # still '3'!
+
+my $foo = $obj->{a_bool};
+
+print $foo->typeof . " : $foo\n";
+
+print $foo->parentNode->dump;

File meta/changes.ttl

+@prefix :        <http://usefulinc.com/ns/doap#> .
+@prefix dcs:     <http://ontologi.es/doap-changeset#> .
+@prefix dc:      <http://purl.org/dc/terms/> .
+@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
+@prefix my:      <http://purl.org/NET/cpan-uri/dist/JSON-JOM/> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix toby:    <http://tobyinkster.co.uk/#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+
+my:project :release my:v_0-001 .
+my:v_0-001
+	a               :Version ;
+	dc:issued       "2010-08-25"^^xsd:date ;
+	:revision       "0.001"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.001.tar.gz> ;
+	rdfs:label      "First release"@en .
+
+my:project :release my:v_0-002 .
+my:v_0-002
+	a               :Version ;
+	dc:issued       "2010-08-26"^^xsd:date ;
+	:revision       "0.002"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.002.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-001 ;
+		dcs:item   [ rdfs:label "rootNode stuff now actually works."@en ; a dcs:Bugfix ]
+		] .
+
+my:project :release my:v_0-003 .
+my:v_0-003
+	a               :Version ;
+	dc:issued       "2010-09-01"^^xsd:date ;
+	:revision       "0.003"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.003.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-002 ;
+		dcs:item   [ rdfs:label "Make strings, numbers, booleans and nulls first class members of the JOM."@en ; a dcs:Addition ] ;
+		dcs:item   [ rdfs:label "JSON::JOM::Plugins::TreeUtils."@en ; a dcs:Addition ] ;
+		dcs:item   [ rdfs:label "Split common object/array parts of JOM into a JSON::JOM::Node abstract class."@en  ]
+		] .
+
+my:project :release my:v_0-004 .
+my:v_0-004
+	a               :Version ;
+	dc:issued       "2010-09-15"^^xsd:date ;
+	:revision       "0.004"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.004.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-003 ;
+		dcs:item   [ rdfs:label "JSON::JOM::Value better at distinguishing between numbers and strings."@en ] 
+		] .
+
+my:project :release my:v_0-005 .
+my:v_0-005
+	a               :Version ;
+	dc:issued       "2010-09-16"^^xsd:date ;
+	:revision       "0.005"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.005.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-004 ;
+		dcs:item   [ rdfs:label "Replace my own ref() solution with UNIVERSAL::ref."@en ] 
+		] .
+
+my:project :release my:v_0-500 .
+my:v_0-500
+	a               :Version ;
+	dc:issued       "2011-12-04"^^xsd:date ;
+	:revision       "0.500"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-JOM-0.500.tar.gz> ;
+	rdfs:label      "First stable release"@en ;
+	dcs:changeset [
+		dcs:versus my:v_0-005 ;
+		dcs:item   [ rdfs:label "use 5.010"@en ; a dcs:Update ] ;
+		dcs:item   [ rdfs:label "use Object::AUTHORITY"@en ; a dcs:Update ] ;
+		dcs:item   [ rdfs:label "Module::Package::RDF"@en ;  a dcs:Packaging ] 
+		] .
+

File meta/doap.ttl

+@prefix :        <http://usefulinc.com/ns/doap#> .
+@prefix dcs:     <http://ontologi.es/doap-changeset#> .
+@prefix dc:      <http://purl.org/dc/terms/> .
+@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
+@prefix my:      <http://purl.org/NET/cpan-uri/dist/JSON-JOM/> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix toby:    <http://tobyinkster.co.uk/#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+
+my:project
+	a               :Project ;
+	:name           "JSON-JOM" ;
+	:shortdesc      "the JSON Object Model"@en ;
+	:programming-language  "Perl" ;
+	:homepage       <https://metacpan.org/release/JSON-JOM> ;
+	:download-page  <https://metacpan.org/release/JSON-JOM> ;
+	:bug-database   <http://rt.cpan.org/Dist/Display.html?Queue=JSON-JOM> ;
+	:repository     [ a :HgRepository ; :browse <https://bitbucket.org/tobyink/p5-json-jom> ] ;
+	:maintainer     toby:i ;
+	:developer      toby:i ;
+	:documenter     toby:i ;
+	:tester         toby:i ;
+	:created        "2010-08-22"^^xsd:date ;
+	:license        <http://dev.perl.org/licenses/> ;
+	:category       [ rdfs:label "JSON" ] .
+
+toby:i
+	a               foaf:Person ;
+	foaf:name       "Toby Inkster" ;
+	foaf:homepage   <http://tobyinkster.co.uk/> ;
+	foaf:page       <https://metacpan.org/author/TOBYINK> ;
+	foaf:mbox       <mailto:tobyink@cpan.org> ;
+	<http://www.w3.org/2002/07/owl#sameAs> <http://purl.org/NET/cpan-uri/person/tobyink> .

File meta/makefile.ttl

+# This file provides instructions for packaging.
+
+@prefix : <http://purl.org/NET/cpan-uri/terms#> .
+
+<http://purl.org/NET/cpan-uri/dist/JSON-JOM/project>
+	:perl_version_from _:main ;
+	:version_from _:main ;
+	:readme_from _:main ;
+	:test_requires "Test::More 0.61" ;
+	:requires "Scalar::Util" , "common::sense" , "parent" ,
+		"B", "Carp", "Exporter", "JSON 2.00" , "Module::Pluggable", "Tie::Array", "Tie::Hash",
+		"UNIVERSAL::ref 0.12", "Object::AUTHORITY" .
+
+_:main <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName> "lib/JSON/JOM.pm" .
+