jsonx 0.2.3 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8164d5e06dffd753cb2022ec4c03b66c612755e4
4
- data.tar.gz: d8828773b49e32d62e54aa21399fe821c9c3c324
3
+ metadata.gz: 14b705397a992fbb32300cf56082f307159bc798
4
+ data.tar.gz: a7fbec75a3f41d5ffc50b70e814b391fa9a9b28b
5
5
  SHA512:
6
- metadata.gz: 2f4a06a5ffbf83a415aa2a558c2fc8acbfc7c460668829846cb0a4f2f1f67cf6abbd3ec7fee728018a830b20323482dc65abfe7039501b7de43fd5ff668632a6
7
- data.tar.gz: d9e9fc53560648903e04a32a0f881768caf0919f5f1ccf7eb8771286202c6cd746400e857c1842e0654cf50b4e656c76a2284b0206531865ccae1a7957344242
6
+ metadata.gz: fffc92a6508940d67bc81880e8672cb66714e623c84e1f8db2ce01fc11cb6a7769fa9cb575edd2d79720a11315bce89f45cb3d111e518a24539b409abf476c9a
7
+ data.tar.gz: 1e067e33e87eedb108db51a80a0b4a0b3842c536ebb5dad86c59772e8bcf0479c5fcf512b2003126cb3666c16e866b181c23821312067b87a7373577ca399bd2
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -24,7 +24,6 @@ class JSONx
24
24
  json_to_jsonx obj # transform the hash
25
25
  end
26
26
 
27
-
28
27
  end
29
28
 
30
29
  alias to_jsonx to_s
@@ -35,31 +34,34 @@ class JSONx
35
34
  def json_to_jsonx(h)
36
35
 
37
36
  types = {
38
- Hash: ->(k, h){
37
+
38
+ Hash: ->(k, h) {
39
39
  type = 'json:object'
40
- [type, '', (k.empty? ? {} : {name: k}),
40
+ [type, (k.empty? ? {} : {name: k}), '',
41
41
  *h.map {|k2,v| types[v.class.to_s.to_sym].call(k2, v)}
42
42
  ]
43
43
  },
44
44
  FalseClass: ->(k, b){ ['json:boolean',
45
- b.to_s, k.empty? ? {} : {name: k}]},
45
+ k.empty? ? {} : {name: k}, b.to_s ]},
46
46
  TrueClass: ->(k, b){ ['json:boolean',
47
- b.to_s, k.empty? ? {} : {name: k}]},
48
- Fixnum: ->(k, n){ ['json:number', n, k.empty? ? {} : {name: k}]},
49
- Float: ->(k, n){ ['json:number', n, k.empty? ? {} : {name: k}]},
50
- NilClass: ->(k, n){ ['json:null', '', k.empty? ? {} : {name: k}]},
51
- String: ->(k, s){ ['json:string', s, k.empty? ? {} : {name: k}]},
47
+ k.empty? ? {} : {name: k}, b.to_s]},
48
+ Fixnum: ->(k, n){ ['json:number', k.empty? ? {} : {name: k}, n]},
49
+ Float: ->(k, n){ ['json:number', k.empty? ? {} : {name: k}, n]},
50
+ NilClass: ->(k, n){ ['json:null', k.empty? ? {} : {name: k}, '']},
51
+ String: ->(k, s){ ['json:string', k.empty? ? {} : {name: k}, s]},
52
52
  Array: ->(k, a){
53
- ['json:array', '', {name: k},
53
+ ['json:array', {name: k}, '',
54
54
  *a.map{|y| types[y.class.to_s.to_sym].call('', y)}
55
55
  ]
56
56
  }
57
+
57
58
  }
58
59
 
59
60
  a = types[:Hash].call '', h
60
61
  a[2] = {'xsi:schemaLocation' => "http://www.datapower.com/schemas/json jsonx.xsd",
61
62
  'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance",
62
63
  'xmlns:json' => "http://www.ibm.com/xmlns/prod/2009/jsonx"}
64
+
63
65
  @to_s = Rexle.new(a).xml pretty: true
64
66
  end
65
67
 
@@ -68,6 +70,7 @@ class JSONx
68
70
  doc = Rexle.new xml
69
71
 
70
72
  types = {
73
+
71
74
  boolean: ->(e){ e.text.downcase == 'true' },
72
75
  string: ->(e){ e.text },
73
76
  null: ->(e){ nil },
@@ -81,6 +84,7 @@ class JSONx
81
84
  end
82
85
  }
83
86
  }
87
+
84
88
  @to_json = types[:object].call(doc.root).to_json
85
89
 
86
90
  end
@@ -92,4 +96,4 @@ if __FILE__ == $0 then
92
96
 
93
97
  JSONx.new(ARGV[0]).to_s
94
98
 
95
- end
99
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  oqIfSIJniA/rq0qM/Bhn+dpcKTcPQZtx+xFxMoZ25KJWupSNDOi8rtKUyPTNPrqu
32
32
  6j3yoPh2uEBjKA==
33
33
  -----END CERTIFICATE-----
34
- date: 2014-09-27 00:00:00.000000000 Z
34
+ date: 2015-02-02 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rexle
@@ -39,20 +39,20 @@ dependencies:
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '1.0'
42
+ version: '1.2'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.0.24
45
+ version: 1.2.1
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '1.0'
52
+ version: '1.2'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.0.24
55
+ version: 1.2.1
56
56
  description:
57
57
  email: james@r0bertson.co.uk
58
58
  executables: []
metadata.gz.sig CHANGED
Binary file