gson_parser 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: