rb_json5 0.2.0 → 0.3.1

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
  SHA256:
3
- metadata.gz: 81546e53f09d625b4f122a5264f654797e25994cbb2f43a6ec295e2c254ec61d
4
- data.tar.gz: acf65352e98ab217357718ede345a7574be7a8f84cf07063d5113d92346a69ed
3
+ metadata.gz: 61f2159035045230e775785ccc444e342b97bb30822aa857ea062d752eec2415
4
+ data.tar.gz: 3bd6c67e3bd5db0e7866ca682dcf4f649cfad6900bad4b8cd0b7afa1a9851805
5
5
  SHA512:
6
- metadata.gz: 77a07e83d48962228590d106d33d294dbdc5c02cf8c9b5c08b01e8fc4dd01341a4a6cfc1c682f6ebcc78bf990b3aa404eecc6642fdde2818d1f9f82fe6ec5cf3
7
- data.tar.gz: b8d9b1425211e63127d195fb191226577203fc543545b8add0afd8a896bdbb98f928884471ba4bc52bef647ccf2fca53ffdf9e7a627f2e204f1ab7d33b98c9e5
6
+ metadata.gz: f662fafb72c516c4a8b4cac63ee87cd68119f0f732c04f1e1eb779362db0b730fc664dbe7f5be7b540718ea65fb1a51ad534f57cae9f4e47a6024bc315694969
7
+ data.tar.gz: 9b432ceaac205086fc9f711b400f2b5f05e83626e2e1cbcfb921e8b044d0d8bc9ccc100779f941a74fb5f11bf92c0ab7bd0843ef2895863b909dbf4ef91f9613
data/.yardopts ADDED
@@ -0,0 +1,9 @@
1
+ --main=README.md
2
+ --markup=markdown
3
+ --markup-provider=redcarpet
4
+
5
+ lib/**/*.rb
6
+ -
7
+ LICENSE
8
+ CODE_OF_CONDUCT.md
9
+ README.md
data/README.md CHANGED
@@ -98,7 +98,7 @@ Test-suite and JSON5 code snippets for RSpec examples are originaly from:
98
98
  ## Copyright & License
99
99
 
100
100
  Copyright © 2020 Taichi Ishitani.
101
- RbJSON5 is licensed under [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher dttails.
101
+ RbJSON5 is licensed under [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for further details.
102
102
 
103
103
  ## Code of Conduct
104
104
 
@@ -7,7 +7,7 @@ module RbJSON5
7
7
  end
8
8
 
9
9
  parse_rule(:array_elements) do
10
- value >> (comma >> value).repeat >> comma.maybe
10
+ value.as(:element) >> (comma >> value.as(:element)).repeat >> comma.maybe
11
11
  end
12
12
 
13
13
  parse_rule(:non_empty_array) do
@@ -21,7 +21,8 @@ module RbJSON5
21
21
  transform_rule(empty_array: simple(:_)) { [] }
22
22
 
23
23
  transform_rule(array_elements: subtree(:elements)) do
24
- elements.is_a?(Array) && elements || [elements]
24
+ normalized_elements = elements.is_a?(Array) && elements || [elements]
25
+ normalized_elements.map { |entry| entry[:element] }
25
26
  end
26
27
  end
27
28
  end
@@ -55,7 +55,7 @@ module RbJSON5
55
55
  # @see RbJSON5.parse
56
56
  # @see RbJSON5.load_file
57
57
  def parse(string_or_io, symbolize_names = false)
58
- tree = parser.parse(read_json5(string_or_io))
58
+ tree = parser.parse(read_json5(string_or_io), reporter: error_reporter)
59
59
  transform.apply(tree, symbolize_names: symbolize_names)
60
60
  rescue Parslet::ParseFailed => e
61
61
  raise ParseError.new(e.message, e.parse_failure_cause)
@@ -63,14 +63,18 @@ module RbJSON5
63
63
 
64
64
  private
65
65
 
66
+ def parser
67
+ parser = self.class.parser.new
68
+ @root && parser.__send__(@root) || parser
69
+ end
70
+
66
71
  def read_json5(string_or_io)
67
72
  string_or_io.respond_to?(:read) &&
68
73
  string_or_io.read || string_or_io
69
74
  end
70
75
 
71
- def parser
72
- parser = self.class.parser.new
73
- @root && parser.__send__(@root) || parser
76
+ def error_reporter
77
+ Parslet::ErrorReporter::Contextual.new
74
78
  end
75
79
 
76
80
  def transform
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RbJSON5
4
4
  # Current version of RbJSON5
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.1'
6
6
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb_json5
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2020-08-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: parslet
@@ -56,84 +55,84 @@ dependencies:
56
55
  name: redcarpet
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "~>"
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: 3.5.0
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
- - - "~>"
65
+ - - ">="
67
66
  - !ruby/object:Gem::Version
68
67
  version: 3.5.0
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: rspec
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
- - - "~>"
72
+ - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  version: 3.9.0
76
75
  type: :development
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
- - - "~>"
79
+ - - ">="
81
80
  - !ruby/object:Gem::Version
82
81
  version: 3.9.0
83
82
  - !ruby/object:Gem::Dependency
84
83
  name: rubocop
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
- - - "~>"
86
+ - - ">="
88
87
  - !ruby/object:Gem::Version
89
88
  version: 0.88.0
90
89
  type: :development
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
- - - "~>"
93
+ - - ">="
95
94
  - !ruby/object:Gem::Version
96
95
  version: 0.88.0
97
96
  - !ruby/object:Gem::Dependency
98
97
  name: simplecov
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
- - - "~>"
100
+ - - ">="
102
101
  - !ruby/object:Gem::Version
103
102
  version: 0.18.0
104
103
  type: :development
105
104
  prerelease: false
106
105
  version_requirements: !ruby/object:Gem::Requirement
107
106
  requirements:
108
- - - "~>"
107
+ - - ">="
109
108
  - !ruby/object:Gem::Version
110
109
  version: 0.18.0
111
110
  - !ruby/object:Gem::Dependency
112
111
  name: simplecov-cobertura
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
- - - "~>"
114
+ - - ">="
116
115
  - !ruby/object:Gem::Version
117
116
  version: 1.3.0
118
117
  type: :development
119
118
  prerelease: false
120
119
  version_requirements: !ruby/object:Gem::Requirement
121
120
  requirements:
122
- - - "~>"
121
+ - - ">="
123
122
  - !ruby/object:Gem::Version
124
123
  version: 1.3.0
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: yard
127
126
  requirement: !ruby/object:Gem::Requirement
128
127
  requirements:
129
- - - "~>"
128
+ - - ">="
130
129
  - !ruby/object:Gem::Version
131
130
  version: 0.9.0
132
131
  type: :development
133
132
  prerelease: false
134
133
  version_requirements: !ruby/object:Gem::Requirement
135
134
  requirements:
136
- - - "~>"
135
+ - - ">="
137
136
  - !ruby/object:Gem::Version
138
137
  version: 0.9.0
139
138
  description: JSON5 parser for Ruby
@@ -143,6 +142,7 @@ executables: []
143
142
  extensions: []
144
143
  extra_rdoc_files: []
145
144
  files:
145
+ - ".yardopts"
146
146
  - CODE_OF_CONDUCT.md
147
147
  - LICENSE
148
148
  - README.md
@@ -167,7 +167,6 @@ metadata:
167
167
  documentation_uri: https://www.rubydoc.info/gems/rb_json5
168
168
  homepage_uri: https://github.com/taichi-ishitani/rb_json5
169
169
  source_code_uri: https://github.com/taichi-ishitani/rb_json5
170
- post_install_message:
171
170
  rdoc_options: []
172
171
  require_paths:
173
172
  - lib
@@ -182,8 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
181
  - !ruby/object:Gem::Version
183
182
  version: '0'
184
183
  requirements: []
185
- rubygems_version: 3.1.2
186
- signing_key:
184
+ rubygems_version: 3.7.2
187
185
  specification_version: 4
188
186
  summary: JSON5 parser for Ruby
189
187
  test_files: []