DSON 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DSON
2
2
 
3
- Such serialization! Totally pure-ruby also completely DSON. Wow!
3
+ Such serialization now also parsing! Totally pure-ruby also completely DSON. Wow!
4
4
 
5
5
  Currently known deficiencies:
6
6
  * Number handling (needs to be octal, currently treated as string)
@@ -21,6 +21,8 @@ Or install it yourself as:
21
21
 
22
22
  ## Usage
23
23
 
24
+ *Serialization*
25
+
24
26
  Currently supports a ruby object, hash and array data structure and outputs it's representation in DSON ([Doge Serialized Object notation](http://dogeon.org/)). By way of an example, try:
25
27
 
26
28
  require 'DSON'
@@ -41,6 +43,16 @@ Correct to the DSON spec.
41
43
 
42
44
  Try it out with custom ruby objects too!
43
45
 
46
+ *Parsing*
47
+
48
+ Surrently should parse a DSON object given as a string. Not the world's best put together parse but should function reasonably with general DSON strings. Try
49
+
50
+ require 'DSON'
51
+
52
+ puts DSON.so_parse(
53
+ 'such "ruby" is "pure", "supports" is so "hash" also "array" many wow'
54
+ )
55
+
44
56
  ## Contributing
45
57
 
46
58
  1. Fork it ( https://github.com/[my-github-username]/DSON/fork )
@@ -6,4 +6,8 @@ module DSON
6
6
  def self.such_serialize_wow(subject)
7
7
  DSON::Value.new(subject).such_serialize_wow
8
8
  end
9
+
10
+ def self.so_parse(string)
11
+ DSON::Value.so_parse(string)
12
+ end
9
13
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ # -*- encoding : utf-8 -*-
2
3
  require 'DSON/value/hash_value'
3
4
  require 'DSON/value/array_value'
4
5
  require 'DSON/value/string_value'
@@ -23,6 +24,68 @@ module DSON
23
24
  ObjectValue.new(value)
24
25
  end
25
26
 
27
+ def self.so_parse(dson_string)
28
+ string_hash, replaced_string = remove_all_strings(dson_string)
29
+ handle_next(
30
+ word_array: replaced_string.gsub(/,|\?|!|\./, ' ,').split(' '),
31
+ string_hash: string_hash
32
+ )
33
+ end
34
+
35
+ def self.handle_next(options)
36
+ word_array = options[:word_array]
37
+
38
+ fail 'An error has occurred, this could be either user error or a bug. Please check your DSON is valid, and if it is, please raise a GitHub issue' if word_array.empty?
39
+
40
+ first_word = word_array.shift
41
+
42
+ if first_word == 'such'
43
+ return HashValue.so_parse(
44
+ word_array: word_array,
45
+ parent_hash: {},
46
+ string_hash: options[:string_hash]
47
+ )
48
+ end
49
+ if first_word == 'so'
50
+ return ArrayValue.so_parse(
51
+ word_array: word_array,
52
+ parent_array: [],
53
+ string_hash: options[:string_hash]
54
+ )
55
+ end
56
+ return TrueValue.so_parse if first_word == 'yes'
57
+ return FalseValue.so_parse if first_word == 'no'
58
+ return NilValue.so_parse if first_word == 'empty'
59
+
60
+ options[:first_word] = first_word
61
+ StringValue.so_parse(options)
62
+ end
63
+
64
+ # Class methods can't be accessed from subclasses if protected...
65
+ # Find better way if possible
66
+ def self.remove_first_and_last_words(string)
67
+ non_whitespace_elements = string.split(' ')
68
+ non_whitespace_elements.pop
69
+ non_whitespace_elements.shift
70
+ non_whitespace_elements.join(' ')
71
+ end
72
+
73
+ def self.remove_first_and_last_elements(array)
74
+ array.pop
75
+ array.shift
76
+ end
77
+
78
+ protected
79
+
80
+ def self.remove_all_strings(dson_string)
81
+ string_hash = {}
82
+ replaced_string = dson_string.gsub(/"(.*?)"/).with_index do |match, index|
83
+ string_hash[index] = match[1..-2]
84
+ index
85
+ end
86
+ [string_hash, replaced_string]
87
+ end
88
+
26
89
  def reduce(list, potential_joiners)
27
90
  list.each_with_index.reduce('') do |acc, (element, index)|
28
91
  is_last = (index == list.size - 1)
@@ -1,9 +1,27 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'DSON/value'
3
+
2
4
  module DSON
3
5
  module Value
4
6
  class ArrayValue
5
7
  include Value
6
8
 
9
+ def self.so_parse(options)
10
+ word_array = options[:word_array]
11
+ parent_array = options[:parent_array]
12
+
13
+ if word_array[0] == 'many'
14
+ word_array.shift
15
+ return parent_array
16
+ end
17
+ word_array.shift unless (word_array[0] =~ /and|also/).nil?
18
+
19
+ # the next value will be the value
20
+ parent_array.push(DSON::Value.handle_next(options))
21
+
22
+ so_parse(options)
23
+ end
24
+
7
25
  POTENTIAL_JOINERS = [' and' , ' also']
8
26
 
9
27
  attr_reader :value
@@ -18,6 +36,12 @@ module DSON
18
36
  end
19
37
  'so ' + reduce(content, POTENTIAL_JOINERS) + 'many'
20
38
  end
39
+
40
+ AND_ALSO_REGEX = / and | also /
41
+
42
+ def self.parse_value(value, acc_array)
43
+ acc_array.push DSON.so_parse(value)
44
+ end
21
45
  end
22
46
  end
23
47
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'DSON/value'
2
3
 
3
4
  require 'singleton'
@@ -8,6 +9,10 @@ module DSON
8
9
  include Value
9
10
  include Singleton
10
11
 
12
+ def self.so_parse
13
+ false
14
+ end
15
+
11
16
  def such_serialize_wow
12
17
  'no'
13
18
  end
@@ -6,6 +6,31 @@ module DSON
6
6
  class HashValue
7
7
  include Value
8
8
 
9
+ def self.so_parse(options)
10
+ word_array = options[:word_array]
11
+ parent_hash = options[:parent_hash]
12
+
13
+ if word_array[0] == 'wow'
14
+ word_array.shift
15
+ return parent_hash
16
+ end
17
+ word_array.shift unless (word_array[0] =~ (/\?|\.|,|!/)).nil?
18
+
19
+ string_hash = options[:string_hash]
20
+
21
+ # The next value will be a key
22
+ numeric_key = word_array.shift
23
+ key = string_hash[numeric_key.to_i]
24
+
25
+ # remove is
26
+ word_array.shift
27
+
28
+ value = DSON::Value.handle_next(options)
29
+ parent_hash[key] = value
30
+
31
+ so_parse(options)
32
+ end
33
+
9
34
  POTENTIAL_PUNCTUATION = %w(, . ! ?)
10
35
 
11
36
  attr_reader :value
@@ -23,6 +48,12 @@ module DSON
23
48
  end
24
49
  'such ' + reduce(strings, POTENTIAL_PUNCTUATION) + 'wow'
25
50
  end
51
+
52
+ def self.parse_pair(string, acc_hash)
53
+ results = string.scan(/"(.*)" is (.*)/)
54
+ acc_hash[results[0][0]] = DSON::Value.so_parse(results[0][1])
55
+ acc_hash
56
+ end
26
57
  end
27
58
  end
28
59
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'DSON/value'
2
3
 
3
4
  require 'singleton'
@@ -8,6 +9,10 @@ module DSON
8
9
  include Value
9
10
  include Singleton
10
11
 
12
+ def self.so_parse
13
+ nil
14
+ end
15
+
11
16
  def such_serialize_wow
12
17
  'empty'
13
18
  end
@@ -16,7 +16,10 @@ module DSON
16
16
  # Construct a hash of the instance variables
17
17
  object_hash = Hash[
18
18
  value.instance_variables.map do |variable|
19
- [remove_at_from_attribute_name(variable), value.instance_variable_get(variable)]
19
+ [
20
+ remove_at_from_attribute_name(variable),
21
+ value.instance_variable_get(variable)
22
+ ]
20
23
  end
21
24
  ]
22
25
 
@@ -25,6 +28,7 @@ module DSON
25
28
  end
26
29
 
27
30
  private
31
+
28
32
  def remove_at_from_attribute_name(attribute_name)
29
33
  attribute_name[1..-1]
30
34
  end
@@ -8,6 +8,11 @@ module DSON
8
8
 
9
9
  attr_reader :value
10
10
 
11
+ def self.so_parse(options)
12
+ numeric_identifier = options[:first_word]
13
+ options[:string_hash][numeric_identifier.to_i]
14
+ end
15
+
11
16
  def initialize(value)
12
17
  @value = value
13
18
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'DSON/value'
2
3
 
3
4
  require 'singleton'
@@ -8,6 +9,10 @@ module DSON
8
9
  include Value
9
10
  include Singleton
10
11
 
12
+ def self.so_parse
13
+ true
14
+ end
15
+
11
16
  def such_serialize_wow
12
17
  'yes'
13
18
  end
@@ -1,7 +1,7 @@
1
- # -*- encoding : utf-8 -*
1
+ # -*- encoding : utf-8 -*-
2
2
 
3
3
  # Part of the DSON module use to keep track of
4
4
  # the version
5
5
  module DSON
6
- VERSION = '0.0.3'
6
+ VERSION = '0.1.0'
7
7
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module DSONSpec
2
3
  class TrivialClass
3
4
  end
@@ -0,0 +1,292 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'DSON'
3
+
4
+ describe 'simple hashes' do
5
+
6
+ it 'parses an empty DSON hash' do
7
+ dson_string = 'such wow'
8
+ parsed_dson = DSON.so_parse(dson_string)
9
+
10
+ expect(parsed_dson.keys.size).to eq(0)
11
+ end
12
+
13
+ it 'parses a DSON hash with one element' do
14
+ dson_string = 'such "dson" is "parsed" wow'
15
+ parsed_dson = DSON.so_parse(dson_string)
16
+
17
+ expect(parsed_dson['dson']).to eq('parsed')
18
+ end
19
+
20
+ it 'parses a DSON hash with two elements with , separator' do
21
+ dson_string = 'such "dson" is "parsed", "language" is "ruby" wow'
22
+ parsed_dson = DSON.so_parse(dson_string)
23
+
24
+ expect(parsed_dson['dson']).to eq('parsed')
25
+ expect(parsed_dson['language']).to eq('ruby')
26
+ end
27
+
28
+ it 'parses a DSON hash with two elements with . separator' do
29
+ dson_string = 'such "dson" is "parsed". "language" is "ruby" wow'
30
+ parsed_dson = DSON.so_parse(dson_string)
31
+
32
+ expect(parsed_dson['dson']).to eq('parsed')
33
+ expect(parsed_dson['language']).to eq('ruby')
34
+ end
35
+
36
+ it 'parses a DSON hash with two elements with ! separator' do
37
+ dson_string = 'such "dson" is "parsed"! "language" is "ruby" wow'
38
+ parsed_dson = DSON.so_parse(dson_string)
39
+
40
+ expect(parsed_dson['dson']).to eq('parsed')
41
+ expect(parsed_dson['language']).to eq('ruby')
42
+ end
43
+
44
+ it 'parses a DSON hash with two elements with ? separator' do
45
+ dson_string = 'such "dson" is "parsed"? "language" is "ruby" wow'
46
+ parsed_dson = DSON.so_parse(dson_string)
47
+
48
+ expect(parsed_dson['dson']).to eq('parsed')
49
+ expect(parsed_dson['language']).to eq('ruby')
50
+ end
51
+
52
+ it 'parses a DSON hash with three elements' do
53
+ dson_string = 'such "dson" is "parsed"! "language" is "ruby". "separators" is "varied" wow'
54
+ parsed_dson = DSON.so_parse(dson_string)
55
+
56
+ expect(parsed_dson['dson']).to eq('parsed')
57
+ expect(parsed_dson['language']).to eq('ruby')
58
+ expect(parsed_dson['separators']).to eq('varied')
59
+ end
60
+
61
+ end
62
+
63
+ describe 'parsing simple arrays' do
64
+
65
+ it 'parses an empty DSON array' do
66
+ dson_string = 'so many'
67
+ parsed_dson = DSON.so_parse(dson_string)
68
+
69
+ expect(parsed_dson.size).to eq(0)
70
+ end
71
+
72
+ it 'parses a DSON array with one element' do
73
+ dson_string = 'so "test" many'
74
+ parsed_dson = DSON.so_parse(dson_string)
75
+
76
+ expect(parsed_dson[0]).to eq('test')
77
+ end
78
+
79
+ it 'parses a DSON array with two elements and "and" separator' do
80
+ dson_string = 'so "test" and "quality" many'
81
+ parsed_dson = DSON.so_parse(dson_string)
82
+
83
+ expect(parsed_dson[0]).to eq('test')
84
+ expect(parsed_dson[1]).to eq('quality')
85
+ end
86
+
87
+ it 'parses a DSON array with twp elements and "also" separator' do
88
+ dson_string = 'so "test" also "quality" many'
89
+ parsed_dson = DSON.so_parse(dson_string)
90
+
91
+ expect(parsed_dson[0]).to eq('test')
92
+ expect(parsed_dson[1]).to eq('quality')
93
+ end
94
+
95
+ it 'parses a DSON array with a mix of separators' do
96
+ dson_string = 'so "test" also "quality" and "awesome" many'
97
+ parsed_dson = DSON.so_parse(dson_string)
98
+
99
+ expect(parsed_dson[0]).to eq('test')
100
+ expect(parsed_dson[1]).to eq('quality')
101
+ expect(parsed_dson[2]).to eq('awesome')
102
+ end
103
+
104
+ it 'parses an array with " and " and " also " in a value' do
105
+ dson_string = 'so " and " also " also " and " and " many'
106
+ parsed_dson = DSON.so_parse(dson_string)
107
+
108
+ expect(parsed_dson[0]).to eq(' and ')
109
+ expect(parsed_dson[1]).to eq(' also ')
110
+ expect(parsed_dson[2]).to eq(' and ')
111
+ end
112
+
113
+ end
114
+
115
+ describe 'parsing nested arrays' do
116
+
117
+ it 'parses empty nested arrays' do
118
+ dson_string = 'so so many many'
119
+ parsed_dson = DSON.so_parse(dson_string)
120
+
121
+ expect(parsed_dson.size).to eq(1)
122
+ expect(parsed_dson[0].size).to eq(0)
123
+ end
124
+
125
+ it 'should correctly handle nested arrays with elements' do
126
+ dson_string = 'so "cheese" also so many many'
127
+ parsed_dson = DSON.so_parse(dson_string)
128
+
129
+ expect(parsed_dson[0]).to eq('cheese')
130
+ expect(parsed_dson[1].size).to eq(0)
131
+ end
132
+
133
+ it 'should correctly handle a nested array with an element' do
134
+ dson_string = 'so so "cheese" many many'
135
+ parsed_dson = DSON.so_parse(dson_string)
136
+
137
+ expect(parsed_dson[0][0]).to eq('cheese')
138
+ end
139
+
140
+ it 'should correctly handle a more complex nested array' do
141
+ dson_string = 'so "cheese" and so "cheese" also so "cheese" many many many'
142
+ parsed_dson = DSON.so_parse(dson_string)
143
+
144
+ expect(parsed_dson[0]).to eq('cheese')
145
+ expect(parsed_dson[1][0]).to eq('cheese')
146
+ expect(parsed_dson[1][1][0]).to eq('cheese')
147
+ end
148
+
149
+ it 'parses a hash with " is "" in one of the keys' do
150
+ dson_string = 'such " is " is "cheese" wow'
151
+ parsed_dson = DSON.so_parse(dson_string)
152
+
153
+ expect(parsed_dson[' is ']).to eq('cheese')
154
+ end
155
+
156
+ it 'parses a hash with " is " in one of the values' do
157
+ dson_string = 'such "cheese" is " is " wow'
158
+ parsed_dson = DSON.so_parse(dson_string)
159
+
160
+ expect(parsed_dson['cheese']).to eq(' is ')
161
+ end
162
+
163
+ it 'parses a hash with a comma in one of the keys' do
164
+ dson_string = 'such "," is "cheese" wow'
165
+ parsed_dson = DSON.so_parse(dson_string)
166
+
167
+ expect(parsed_dson[',']).to eq('cheese')
168
+ end
169
+
170
+ it 'parses a hash with an exclaimation mark in one of the values' do
171
+ dson_string = 'such "cheese" is "," wow'
172
+ parsed_dson = DSON.so_parse(dson_string)
173
+
174
+ expect(parsed_dson['cheese']).to eq(',')
175
+ end
176
+
177
+ end
178
+
179
+ describe 'DSON nested hashes' do
180
+ it 'should handle a simple nested hash' do
181
+ dson_string = 'such "nested" is such wow wow'
182
+ parsed_dson = DSON.so_parse(dson_string)
183
+
184
+ expect(parsed_dson['nested'].keys.size).to eq(0)
185
+ end
186
+
187
+ it 'should handle a further nested hash' do
188
+ dson_string = 'such "nested" is such "further_nested" is such wow wow wow'
189
+ parsed_dson = DSON.so_parse(dson_string)
190
+
191
+ expect(parsed_dson['nested']['further_nested'].keys.size).to eq(0)
192
+ end
193
+
194
+ it 'should handle other elements in this hash' do
195
+ dson_string = 'such "other" is "true"! "nested" is such wow wow'
196
+ parsed_dson = DSON.so_parse(dson_string)
197
+
198
+ expect(parsed_dson['other']).to eq('true')
199
+ expect(parsed_dson['nested'].keys.size).to eq(0)
200
+ end
201
+
202
+ it 'should handle elements in a nested hash' do
203
+ dson_string = 'such "other" is "true". "nested" is such "element" is "great" wow wow'
204
+ parsed_dson = DSON.so_parse(dson_string)
205
+
206
+ expect(parsed_dson['other']).to eq('true')
207
+ expect(parsed_dson['nested']['element']).to eq('great')
208
+ end
209
+
210
+ it 'should handle multiple elements in the nested hash' do
211
+ dson_string = 'such "wine" is such "white" is "great"? "red" is "greater" wow wow'
212
+ parsed_dson = DSON.so_parse(dson_string)
213
+
214
+ expect(parsed_dson['wine']['white']).to eq('great')
215
+ expect(parsed_dson['wine']['red']).to eq('greater')
216
+ end
217
+ end
218
+
219
+ describe 'DSON hash and array mixes' do
220
+
221
+ it 'should handle an array of empty objects' do
222
+ dson_string = 'so such wow also such wow many'
223
+ parsed_dson = DSON.so_parse(dson_string)
224
+
225
+ expect(parsed_dson.size).to eq(2)
226
+ expect(parsed_dson[0].keys.size).to eq(0)
227
+ expect(parsed_dson[1].keys.size).to eq(0)
228
+ end
229
+
230
+ it 'should handle an object with an empty array element' do
231
+ dson_string = 'such "array" is so many wow'
232
+ parsed_dson = DSON.so_parse(dson_string)
233
+
234
+ expect(parsed_dson['array'].size).to eq(0)
235
+ end
236
+
237
+ it 'should handle an object with an array element' do
238
+ dson_string = 'such "array" is so "olive" also "grape" many wow'
239
+ parsed_dson = DSON.so_parse(dson_string)
240
+
241
+ expect(parsed_dson['array'][0]).to eq('olive')
242
+ expect(parsed_dson['array'][1]).to eq('grape')
243
+ end
244
+
245
+ it 'should handle an array with an object element' do
246
+ dson_string = 'so such "first_name" is "Cyril", "surname" is "Figgis" wow many'
247
+ parsed_dson = DSON.so_parse(dson_string)
248
+
249
+ expect(parsed_dson[0]['first_name']).to eq('Cyril')
250
+ expect(parsed_dson[0]['surname']).to eq('Figgis')
251
+ end
252
+
253
+ end
254
+
255
+ describe 'parsing DSON booleans' do
256
+ it 'should translate yes in a hash to true' do
257
+ dson_string = 'such "dson" is yes wow'
258
+ parsed_dson = DSON.so_parse(dson_string)
259
+
260
+ expect(parsed_dson['dson']).to be_a(TrueClass)
261
+ end
262
+
263
+ it 'should translate yes in an array to true' do
264
+ dson_string = 'so yes many'
265
+ parsed_dson = DSON.so_parse(dson_string)
266
+
267
+ expect(parsed_dson[0]).to be_a(TrueClass)
268
+ end
269
+
270
+ it 'should translate no in a hash to false' do
271
+ dson_string = 'such "json" is no wow'
272
+ parsed_dson = DSON.so_parse(dson_string)
273
+
274
+ expect(parsed_dson['json']).to be_a(FalseClass)
275
+ end
276
+
277
+ it 'should translate no in an array to false' do
278
+ dson_string = 'so no many'
279
+ parsed_dson = DSON.so_parse(dson_string)
280
+
281
+ expect(parsed_dson[0]).to be_a(FalseClass)
282
+ end
283
+ end
284
+
285
+ describe 'parsing DSON empty' do
286
+ it 'should translate empty to nil' do
287
+ dson_string = 'so empty many'
288
+ parsed_dson = DSON.so_parse(dson_string)
289
+
290
+ expect(parsed_dson[0]).to be_nil
291
+ end
292
+ end
@@ -6,7 +6,7 @@ require_relative 'lib/example_class'
6
6
  PUNCTUATION_MATCH = '(,|\.|!|\\?)'
7
7
  AND_MATCH = '(and|also)'
8
8
 
9
- describe 'DSON simple hash handling' do
9
+ describe 'simple hashes' do
10
10
 
11
11
  it 'should be correct with an empty hash' do
12
12
  dson_hash = Hash.new
@@ -342,16 +342,16 @@ describe 'ruby objects' do
342
342
  ruby_object = DSONSpec::ExampleClass.new('awesome', 'superb')
343
343
  dson_string = DSON.such_serialize_wow(ruby_object)
344
344
 
345
- real_or_imaginary = '("name" is "awesome"|"value" is "superb")'
345
+ name_or_value = '("name" is "awesome"|"value" is "superb")'
346
346
 
347
347
  expect(dson_string).to match(
348
- /such #{real_or_imaginary}#{PUNCTUATION_MATCH} #{real_or_imaginary} wow/
348
+ /such #{name_or_value}#{PUNCTUATION_MATCH} #{name_or_value} wow/
349
349
  )
350
350
  end
351
351
 
352
352
  end
353
353
 
354
- # TODO fix when we can do octals generically
354
+ # TODO: fix when we can do octals generically
355
355
  # describe "DSON numbers" do
356
356
 
357
357
  # it "doesn't quote numeric values" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DSON
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-22 00:00:00.000000000 Z
12
+ date: 2014-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &12407260 !ruby/object:Gem::Requirement
16
+ requirement: &19948880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.6'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *12407260
24
+ version_requirements: *19948880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &12406820 !ruby/object:Gem::Requirement
27
+ requirement: &19948380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *12406820
35
+ version_requirements: *19948380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &12406160 !ruby/object:Gem::Requirement
38
+ requirement: &19947660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *12406160
46
+ version_requirements: *19947660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rubocop
49
- requirement: &12405540 !ruby/object:Gem::Requirement
49
+ requirement: &19947060 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *12405540
57
+ version_requirements: *19947060
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: magic_encoding
60
- requirement: &12404980 !ruby/object:Gem::Requirement
60
+ requirement: &19946380 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *12404980
68
+ version_requirements: *19946380
69
69
  description:
70
70
  email:
71
71
  - imran.pshakir@gmail.com
@@ -90,8 +90,9 @@ files:
90
90
  - lib/DSON/value/string_value.rb
91
91
  - lib/DSON/value/true_value.rb
92
92
  - lib/DSON/version.rb
93
- - spec/dson_spec.rb
94
93
  - spec/lib/example_class.rb
94
+ - spec/parsing_spec.rb
95
+ - spec/serialization_spec.rb
95
96
  homepage: ''
96
97
  licenses:
97
98
  - MIT
@@ -118,5 +119,6 @@ signing_key:
118
119
  specification_version: 3
119
120
  summary: A pure-ruby DSON Serializer
120
121
  test_files:
121
- - spec/dson_spec.rb
122
122
  - spec/lib/example_class.rb
123
+ - spec/parsing_spec.rb
124
+ - spec/serialization_spec.rb