gson_parser 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +35 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +7 -0
  11. data/gson_parser.gemspec +25 -0
  12. data/lib/gson_parser.rb +9 -0
  13. data/lib/gson_parser/ruby_node_js +0 -0
  14. data/lib/gson_parser/version.rb +3 -0
  15. data/lib/node_js.rb +31 -0
  16. data/lib/nodejs/node_modules/gson/.npmignore +25 -0
  17. data/lib/nodejs/node_modules/gson/LICENSE +201 -0
  18. data/lib/nodejs/node_modules/gson/README.md +24 -0
  19. data/lib/nodejs/node_modules/gson/index.js +101 -0
  20. data/lib/nodejs/node_modules/gson/node_modules/circularjs/.npmignore +25 -0
  21. data/lib/nodejs/node_modules/gson/node_modules/circularjs/LICENSE +201 -0
  22. data/lib/nodejs/node_modules/gson/node_modules/circularjs/README.md +26 -0
  23. data/lib/nodejs/node_modules/gson/node_modules/circularjs/index.js +58 -0
  24. data/lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/LICENSE +23 -0
  25. data/lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/README.md +22 -0
  26. data/lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/package.json +66 -0
  27. data/lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/underscore-min.js +6 -0
  28. data/lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/underscore.js +1343 -0
  29. data/lib/nodejs/node_modules/gson/node_modules/circularjs/package.json +52 -0
  30. data/lib/nodejs/node_modules/gson/node_modules/circularjs/test/circular.test.js +85 -0
  31. data/lib/nodejs/node_modules/gson/node_modules/circularjs/test/mocha.opts +2 -0
  32. data/lib/nodejs/node_modules/gson/package.json +53 -0
  33. data/lib/nodejs/node_modules/gson/test/mocha.opts +2 -0
  34. data/lib/nodejs/node_modules/gson/test/serialize.test.js +73 -0
  35. data/lib/nodejs/parser.js +22 -0
  36. metadata +121 -0
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "circularjs",
3
+ "version": "0.1.3",
4
+ "description": "Traverse circular javascript object graphs, in a non-recursive way",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "mocha"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git://github.com/aaaristo/circularjs.git"
12
+ },
13
+ "keywords": [
14
+ "json",
15
+ "graph",
16
+ "traversal",
17
+ "non-recursive"
18
+ ],
19
+ "author": {
20
+ "name": "aaaristo"
21
+ },
22
+ "license": "Apache2",
23
+ "bugs": {
24
+ "url": "https://github.com/aaaristo/circularjs/issues"
25
+ },
26
+ "dependencies": {
27
+ "underscore": "~1.6.0"
28
+ },
29
+ "devDependencies": {
30
+ "chai": "~1.9.1"
31
+ },
32
+ "_id": "circularjs@0.1.3",
33
+ "dist": {
34
+ "shasum": "78adeee059b0bafe0b73967afc21a6225fbe23e6",
35
+ "tarball": "http://registry.npmjs.org/circularjs/-/circularjs-0.1.3.tgz"
36
+ },
37
+ "_from": "circularjs@>=0.1.0 <0.2.0",
38
+ "_npmVersion": "1.3.11",
39
+ "_npmUser": {
40
+ "name": "aaaristo",
41
+ "email": "andrea.gariboldi@gmail.com"
42
+ },
43
+ "maintainers": [
44
+ {
45
+ "name": "aaaristo",
46
+ "email": "andrea.gariboldi@gmail.com"
47
+ }
48
+ ],
49
+ "directories": {},
50
+ "_shasum": "78adeee059b0bafe0b73967afc21a6225fbe23e6",
51
+ "_resolved": "https://registry.npmjs.org/circularjs/-/circularjs-0.1.3.tgz"
52
+ }
@@ -0,0 +1,85 @@
1
+ var should= require('chai').should(),
2
+ assert= require('chai').assert,
3
+ _= require('underscore'),
4
+ traverse= require('../index.js');
5
+
6
+ var cir= function ()
7
+ {
8
+ var a= { nome: 'Andrea' },
9
+ e= { nome: 'Elena' };
10
+
11
+ a.figlia= e;
12
+ a.figlia2= e;
13
+ e.papa= a;
14
+
15
+ return [a,3,[e,a]];
16
+ };
17
+
18
+ describe('traverse',function ()
19
+ {
20
+ describe('isNode',function ()
21
+ {
22
+ it('returns true for an object {}', function (done)
23
+ {
24
+ traverse.isNode({}).should.equal(true);
25
+ done();
26
+ });
27
+
28
+ it('returns true for an array []', function (done)
29
+ {
30
+ traverse.isNode([]).should.equal(true);
31
+ done();
32
+ });
33
+
34
+ it('returns false for a number', function (done)
35
+ {
36
+ traverse.isNode(1).should.equal(false);
37
+ done();
38
+ });
39
+
40
+ it('returns false for a string', function (done)
41
+ {
42
+ traverse.isNode('a').should.equal(false);
43
+ done();
44
+ });
45
+
46
+ it('returns false for a Date', function (done)
47
+ {
48
+ traverse.isNode(new Date()).should.equal(false);
49
+ done();
50
+ });
51
+
52
+ it('returns false for a RegExp', function (done)
53
+ {
54
+ traverse.isNode(/^/).should.equal(false);
55
+ done();
56
+ });
57
+ });
58
+
59
+ it('exits a circular structure', function (done)
60
+ {
61
+ process.nextTick(function ()
62
+ {
63
+ traverse(cir(),function ()
64
+ {
65
+ });
66
+
67
+ done();
68
+ });
69
+ });
70
+
71
+ it('calls the callback for every node (object or array) in the graph including the root node', function (done)
72
+ {
73
+ var cnt= 0;
74
+
75
+ traverse(cir(),function (node)
76
+ {
77
+ traverse.isNode(node).should.equal(true);
78
+ cnt++;
79
+ });
80
+
81
+ cnt.should.equal(4);
82
+
83
+ done();
84
+ });
85
+ });
@@ -0,0 +1,2 @@
1
+ --reporter spec
2
+ --timeout 30000
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "gson",
3
+ "version": "0.1.5",
4
+ "description": "Serialize circular javascript object graphs",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "mocha"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git://github.com/aaaristo/GSON.git"
12
+ },
13
+ "keywords": [
14
+ "javascript",
15
+ "object",
16
+ "circular",
17
+ "graph",
18
+ "serialize"
19
+ ],
20
+ "author": {
21
+ "name": "aaaristo"
22
+ },
23
+ "license": "Apache2",
24
+ "bugs": {
25
+ "url": "https://github.com/aaaristo/GSON/issues"
26
+ },
27
+ "dependencies": {
28
+ "circularjs": "~0.1.0"
29
+ },
30
+ "devDependencies": {
31
+ "chai": "~1.9.1"
32
+ },
33
+ "_id": "gson@0.1.5",
34
+ "dist": {
35
+ "shasum": "97728c7a4521aa23b379c691e6ad90a3d548aee0",
36
+ "tarball": "http://registry.npmjs.org/gson/-/gson-0.1.5.tgz"
37
+ },
38
+ "_from": "gson@*",
39
+ "_npmVersion": "1.3.11",
40
+ "_npmUser": {
41
+ "name": "aaaristo",
42
+ "email": "andrea.gariboldi@gmail.com"
43
+ },
44
+ "maintainers": [
45
+ {
46
+ "name": "aaaristo",
47
+ "email": "andrea.gariboldi@gmail.com"
48
+ }
49
+ ],
50
+ "directories": {},
51
+ "_shasum": "97728c7a4521aa23b379c691e6ad90a3d548aee0",
52
+ "_resolved": "https://registry.npmjs.org/gson/-/gson-0.1.5.tgz"
53
+ }
@@ -0,0 +1,2 @@
1
+ --reporter spec
2
+ --timeout 30000
@@ -0,0 +1,73 @@
1
+ var should= require('chai').should(),
2
+ assert= require('chai').assert,
3
+ GSON= require('../index.js');
4
+
5
+ var cir= function ()
6
+ {
7
+ var a= { nome: 'Andrea' },
8
+ e= { nome: 'Elena' };
9
+
10
+ a.figlia= e;
11
+ a.figlia2= e;
12
+ e.papa= a;
13
+
14
+ return [a,3,[e,a]];
15
+ },
16
+ clone= function (o,fn)
17
+ {
18
+ return GSON.parse(GSON.stringify(o),fn);
19
+ };
20
+
21
+ describe('GSON',function ()
22
+ {
23
+ it('exits a circular structure', function (done)
24
+ {
25
+ process.nextTick(function ()
26
+ {
27
+ clone(cir());
28
+ done();
29
+ });
30
+ });
31
+
32
+ it('should clone nodes', function (done)
33
+ {
34
+ var orig= cir(), _clone= clone(orig);
35
+
36
+ _clone.should.not.equal(orig);
37
+ _clone[0].should.not.equal(orig[0]);
38
+ _clone[0].figlia.should.not.equal(orig[0].figlia);
39
+ _clone[2].should.not.equal(orig[2]);
40
+ done();
41
+ });
42
+
43
+ it('should leave scalars equal', function (done)
44
+ {
45
+ var orig= cir(), _clone= clone(orig);
46
+
47
+ _clone[1].should.equal(orig[1]);
48
+ _clone[0].nome.should.equal(orig[0].nome);
49
+ _clone[0].figlia.nome.should.equal(orig[0].figlia.nome);
50
+ done();
51
+ });
52
+
53
+ it('should replicate the same structure', function (done)
54
+ {
55
+ var orig= cir(), _clone= clone(orig);
56
+
57
+ _clone.length.should.equal(orig.length);
58
+ _clone[2].length.should.equal(orig[2].length);
59
+ _clone[0].should.equal(_clone[2][1]);
60
+ _clone[2][0].should.equal(_clone[0].figlia);
61
+ _clone[2][0].should.equal(_clone[0].figlia2);
62
+ _clone[2][0].papa.should.equal(_clone[0]);
63
+ done();
64
+ });
65
+
66
+ it('should call eachNode callback for each node', function (done)
67
+ {
68
+ var n= 0, orig= cir(), _clone= clone(orig,function (node) { should.exist(node); n++; });
69
+
70
+ n.should.equal(4);
71
+ done();
72
+ });
73
+ });
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+
3
+ // Reads GSON from stdin and spits out decoded value to stdout
4
+
5
+ var gson = require('gson');
6
+ var stdin = process.stdin,
7
+ stdout = process.stdout,
8
+ input = '';
9
+
10
+ process.stdin.resume();
11
+ stdin.setEncoding('utf8');
12
+
13
+ process.stdin.on('data', function(buf) {
14
+ input += buf.toString();
15
+ });
16
+
17
+ process.stdin.on('end', function() {
18
+ input = input.replace(/^\)\]\}\'/, '');
19
+ parsed = gson.parse(input);
20
+ stdout.write(parsed[2]);
21
+ stdout.write('\n');
22
+ });
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gson_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Carl Mercier
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-11-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Simple GSON parser for Ruby
56
+ email:
57
+ - carl@carlmercier.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".travis.yml"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - bin/console
70
+ - bin/setup
71
+ - gson_parser.gemspec
72
+ - lib/gson_parser.rb
73
+ - lib/gson_parser/ruby_node_js
74
+ - lib/gson_parser/version.rb
75
+ - lib/node_js.rb
76
+ - lib/nodejs/node_modules/gson/.npmignore
77
+ - lib/nodejs/node_modules/gson/LICENSE
78
+ - lib/nodejs/node_modules/gson/README.md
79
+ - lib/nodejs/node_modules/gson/index.js
80
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/.npmignore
81
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/LICENSE
82
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/README.md
83
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/index.js
84
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/LICENSE
85
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/README.md
86
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/package.json
87
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/underscore-min.js
88
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/node_modules/underscore/underscore.js
89
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/package.json
90
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/test/circular.test.js
91
+ - lib/nodejs/node_modules/gson/node_modules/circularjs/test/mocha.opts
92
+ - lib/nodejs/node_modules/gson/package.json
93
+ - lib/nodejs/node_modules/gson/test/mocha.opts
94
+ - lib/nodejs/node_modules/gson/test/serialize.test.js
95
+ - lib/nodejs/parser.js
96
+ homepage: http://github.com/cmer/gson_parser
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 2.4.5
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: Simple GSON parser for Ruby
120
+ test_files: []
121
+ has_rdoc: