tomlrb 1.1.1 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bbe61f5d5c406e27ecd95cebc5fbbdab1e728c90
4
- data.tar.gz: cb1c9e033a52e3d0370e4ccd9f1aa7f5b0334d23
3
+ metadata.gz: 21a84cd729f768805a6d87dfcb4fe3f9f8101883
4
+ data.tar.gz: f10d3fe2e68cc831ad06befd5849c52bab2e6053
5
5
  SHA512:
6
- metadata.gz: 78bf8a3d1a2ab33bff6abb1ef90785a6782026ec4120a156ecf65cb0629a297ace9f0d69940bd819e3da8f379babee456360a8d6b7669d4e5625d5010b5a0b27
7
- data.tar.gz: 224438eaecbfd6ecf88b9df1bbb9fe9c487618506234c34ac30bcdcbdb229223a245dd32333b4514b6d57ab2f01601e8ba128c583ff4e581466c43537ef0bad2
6
+ metadata.gz: 513910102b04380af2d7bdc56918b241ebcfbf60f39da0046112ee6296932616a4f95539db886dc4f9737570e5c80cf07f0a2cbae8c3580656f3990109053e0f
7
+ data.tar.gz: d75ce7bfb8f665dbac1aeddba1096f88312cb269cdd44c33e0e9c387d3d5383b03e796b839d1954b9c191239393332e098992e65926da9350d32af0a33554bdc
data/README.md CHANGED
@@ -7,7 +7,6 @@ A Racc based [TOML](https://github.com/toml-lang/toml) Ruby parser supporting th
7
7
 
8
8
  ## TODO
9
9
 
10
- * YARD documentation
11
10
  * Better tests
12
11
  * Dumper
13
12
 
@@ -39,6 +38,26 @@ or
39
38
  Tomlrb.load_file('my_file', symbolize_keys: true)
40
39
  ```
41
40
 
41
+ ## Benchmark
42
+
43
+ You can run the benchmark against the only other v0.4.0 compliant parser to my knowledge with `ruby benchmarks/bench.rb`.
44
+
45
+ Here are the results on my machine:
46
+
47
+ ```
48
+ Calculating -------------------------------------
49
+ emancu/toml-rb 1.000 i/100ms
50
+ fbernier/tomlrb 46.000 i/100ms
51
+ -------------------------------------------------
52
+ emancu/toml-rb 13.657 (± 7.3%) i/s - 69.000
53
+ fbernier/tomlrb 486.095 (± 3.5%) i/s - 2.438k
54
+
55
+ Comparison:
56
+ fbernier/tomlrb: 486.1 i/s
57
+ emancu/toml-rb: 13.7 i/s - 35.59x slower
58
+
59
+ ```
60
+
42
61
  ## Development
43
62
 
44
63
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -57,6 +76,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
57
76
  4. Push to the branch (`git push origin my-new-feature`)
58
77
  5. Create a new Pull Request
59
78
 
60
- ### Thanks
79
+ ## Thanks
61
80
 
62
81
  Thanks to [@jpbougie](https://github.com/jpbougie) for the crash course on the Chomsky hierarchy and general tips.
@@ -0,0 +1,22 @@
1
+ require 'benchmark/ips'
2
+ require_relative '../lib/tomlrb'
3
+ begin
4
+ require 'toml'
5
+ rescue LoadError
6
+ puts "Install toml-rb using 'gem install toml-rb' first."
7
+ end
8
+
9
+ data = File.read(File.join(__dir__, '../test/example-v0.4.0.toml'))
10
+
11
+ Benchmark.ips do |x|
12
+
13
+ x.report("emancu/toml-rb") do
14
+ TOML.parse(data)
15
+ end
16
+
17
+ x.report("fbernier/tomlrb") do
18
+ Tomlrb.parse(data)
19
+ end
20
+
21
+ x.compare!
22
+ end
data/lib/tomlrb.rb CHANGED
@@ -9,6 +9,12 @@ require "tomlrb/handler"
9
9
  module Tomlrb
10
10
  class ParseError < StandardError; end
11
11
 
12
+ # Parses a valid TOML string into its Ruby data structure
13
+ #
14
+ # @param string_or_io [String, StringIO] the content
15
+ # @param options [Hash] the options hash
16
+ # @option options [Boolean] :symbolize_keys (false) whether to return the keys as symbols or strings
17
+ # @return [Hash] the Ruby data structure represented by the input
12
18
  def self.parse(string_or_io, **options)
13
19
  io = string_or_io.is_a?(String) ? StringIO.new(string_or_io) : string_or_io
14
20
  scanner = Scanner.new(io)
@@ -22,6 +28,12 @@ module Tomlrb
22
28
  handler.output
23
29
  end
24
30
 
31
+ # Reads a file content and parses it into its Ruby data structure
32
+ #
33
+ # @param path [String] the path to the file
34
+ # @param options [Hash] the options hash
35
+ # @option options [Boolean] :symbolize_keys (false) whether to return the keys as symbols or strings
36
+ # @return [Hash] the Ruby data structure represented by the input
25
37
  def self.load_file(path, **options)
26
38
  Tomlrb.parse(File.read(path), options)
27
39
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.12
3
+ # This file is automatically generated by Racc 1.4.13
4
4
  # from Racc grammer file "".
5
5
  #
6
6
 
@@ -10,70 +10,72 @@ module Tomlrb
10
10
  ##### State transition tables begin ###
11
11
 
12
12
  racc_action_table = [
13
- 2, 13, 11, 23, 12, 23, 61, 17, 19, 18,
14
- 62, 24, 8, 28, 29, 10, 25, 21, 15, 21,
15
- 45, 46, 47, 48, 44, 41, 40, 42, 43, 34,
16
- 53, 54, 10, 45, 46, 47, 48, 44, 41, 40,
17
- 42, 43, 34, 26, 31, 10, 45, 46, 47, 48,
18
- 44, 41, 40, 42, 43, 34, 50, nil, 10, 45,
19
- 46, 47, 48, 44, 41, 40, 42, 43, 34, 57,
20
- nil, 10, 45, 46, 47, 48, 44, 41, 40, 42,
21
- 43, 34, 57, 17, 10, 18, nil, nil, nil, nil,
22
- nil, nil, nil, nil, 15 ]
13
+ 2, 54, 11, 25, 12, 25, 65, 18, 13, 19,
14
+ 66, 34, 8, 20, 28, 10, 27, 23, 16, 23,
15
+ 48, 49, 50, 51, 47, 44, 43, 45, 46, 37,
16
+ 31, 32, 10, 48, 49, 50, 51, 47, 44, 43,
17
+ 45, 46, 37, 61, 26, 10, 48, 49, 50, 51,
18
+ 47, 44, 43, 45, 46, 37, 61, 14, 10, 48,
19
+ 49, 50, 51, 47, 44, 43, 45, 46, 37, 57,
20
+ 58, 10, 48, 49, 50, 51, 47, 44, 43, 45,
21
+ 46, 37, 29, 21, 10, 48, 49, 50, 51, 47,
22
+ 44, 43, 45, 46, 37, nil, 18, 10, 19, nil,
23
+ nil, nil, 20, nil, nil, nil, nil, 16 ]
23
24
 
24
25
  racc_action_check = [
25
- 1, 2, 1, 9, 1, 54, 58, 7, 8, 7,
26
- 58, 11, 1, 16, 16, 1, 12, 9, 7, 54,
27
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
28
- 30, 30, 24, 25, 25, 25, 25, 25, 25, 25,
29
- 25, 25, 25, 15, 22, 25, 31, 31, 31, 31,
30
- 31, 31, 31, 31, 31, 31, 28, nil, 31, 33,
31
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
32
- nil, 33, 62, 62, 62, 62, 62, 62, 62, 62,
33
- 62, 62, 62, 29, 62, 29, nil, nil, nil, nil,
34
- nil, nil, nil, nil, 29 ]
26
+ 1, 31, 1, 58, 1, 9, 62, 7, 1, 7,
27
+ 62, 24, 1, 7, 13, 1, 12, 58, 7, 9,
28
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
29
+ 17, 17, 26, 66, 66, 66, 66, 66, 66, 66,
30
+ 66, 66, 66, 66, 11, 66, 36, 36, 36, 36,
31
+ 36, 36, 36, 36, 36, 36, 36, 2, 36, 34,
32
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 33,
33
+ 33, 34, 27, 27, 27, 27, 27, 27, 27, 27,
34
+ 27, 27, 16, 8, 27, 28, 28, 28, 28, 28,
35
+ 28, 28, 28, 28, 28, nil, 32, 28, 32, nil,
36
+ nil, nil, 32, nil, nil, nil, nil, 32 ]
35
37
 
36
38
  racc_action_pointer = [
37
- nil, 0, 1, nil, nil, nil, nil, 5, -4, 1,
38
- nil, -7, -2, nil, nil, 30, 0, nil, nil, nil,
39
- nil, nil, 26, nil, 17, 30, nil, nil, 43, 81,
40
- 14, 43, nil, 56, nil, nil, nil, nil, nil, nil,
39
+ nil, 0, 57, nil, nil, nil, nil, 5, 71, 3,
40
+ nil, 26, -2, -4, nil, nil, 69, 17, nil, nil,
41
+ nil, nil, nil, nil, -7, nil, 17, 69, 82, nil,
42
+ nil, -12, 94, 53, 56, nil, 43, nil, nil, nil,
41
43
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
42
- nil, nil, nil, nil, 3, nil, nil, nil, -7, nil,
43
- nil, nil, 69, nil ]
44
+ nil, nil, nil, nil, nil, nil, nil, nil, 1, nil,
45
+ nil, nil, -7, nil, nil, nil, 30, nil ]
44
46
 
45
47
  racc_action_default = [
46
- -1, -48, -48, -2, -3, -4, -5, -48, -8, -48,
47
- -18, -48, -48, 64, -6, -10, -48, -15, -16, -7,
48
- -17, -19, -48, -23, -38, -38, -9, -11, -13, -48,
49
- -48, -38, -25, -38, -32, -33, -34, -35, -36, -37,
50
- -39, -40, -41, -42, -43, -44, -45, -46, -47, -26,
51
- -12, -14, -20, -21, -48, -24, -27, -28, -48, -22,
52
- -29, -30, -38, -31 ]
48
+ -1, -50, -50, -2, -3, -4, -5, -50, -8, -50,
49
+ -19, -50, -50, -50, 68, -6, -10, -50, -15, -16,
50
+ -17, -7, -18, -20, -50, -24, -40, -40, -40, -9,
51
+ -11, -13, -50, -50, -40, -26, -40, -34, -35, -36,
52
+ -37, -38, -39, -41, -42, -43, -44, -45, -46, -47,
53
+ -48, -49, -27, -28, -12, -14, -21, -22, -50, -25,
54
+ -29, -30, -50, -23, -31, -32, -40, -33 ]
53
55
 
54
56
  racc_goto_table = [
55
- 20, 56, 14, 32, 49, 1, 3, 4, 5, 6,
56
- 55, 7, 27, 30, 52, 60, nil, nil, nil, nil,
57
- nil, nil, nil, nil, 51, nil, nil, nil, nil, nil,
58
- 63, nil, nil, nil, nil, nil, nil, nil, nil, nil,
59
- nil, nil, nil, nil, nil, 59 ]
57
+ 22, 60, 15, 35, 52, 53, 30, 7, 1, 6,
58
+ 5, 59, 33, 56, 4, 3, 64, nil, nil, nil,
59
+ nil, nil, nil, nil, nil, nil, nil, 55, nil, nil,
60
+ nil, 67, nil, nil, nil, nil, nil, nil, nil, nil,
61
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 63 ]
60
62
 
61
63
  racc_goto_check = [
62
- 11, 18, 7, 15, 15, 1, 2, 3, 4, 5,
63
- 15, 6, 9, 13, 14, 19, nil, nil, nil, nil,
64
- nil, nil, nil, nil, 7, nil, nil, nil, nil, nil,
65
- 18, nil, nil, nil, nil, nil, nil, nil, nil, nil,
66
- nil, nil, nil, nil, nil, 11 ]
64
+ 11, 18, 7, 15, 15, 15, 9, 6, 1, 5,
65
+ 4, 15, 13, 14, 3, 2, 19, nil, nil, nil,
66
+ nil, nil, nil, nil, nil, nil, nil, 7, nil, nil,
67
+ nil, 18, nil, nil, nil, nil, nil, nil, nil, nil,
68
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 11 ]
67
69
 
68
70
  racc_goto_pointer = [
69
- nil, 5, 5, 6, 7, 8, 10, -5, nil, -4,
70
- nil, -9, nil, -9, -16, -21, nil, nil, -32, -43,
71
+ nil, 8, 14, 13, 9, 8, 6, -5, nil, -11,
72
+ nil, -9, nil, -12, -20, -23, nil, nil, -35, -46,
71
73
  nil, nil, nil ]
72
74
 
73
75
  racc_goto_default = [
74
- nil, nil, nil, nil, nil, 37, nil, nil, 16, nil,
75
- 9, nil, 22, nil, nil, 58, 36, 33, nil, nil,
76
- 35, 38, 39 ]
76
+ nil, nil, nil, nil, nil, 40, nil, nil, 17, nil,
77
+ 9, nil, 24, nil, nil, 62, 39, 36, nil, nil,
78
+ 38, 41, 42 ]
77
79
 
78
80
  racc_reduce_table = [
79
81
  0, 0, :racc_error,
@@ -93,41 +95,43 @@ racc_reduce_table = [
93
95
  2, 28, :_reduce_none,
94
96
  1, 27, :_reduce_15,
95
97
  1, 27, :_reduce_16,
98
+ 1, 27, :_reduce_17,
96
99
  2, 24, :_reduce_none,
97
- 1, 29, :_reduce_18,
98
- 1, 30, :_reduce_19,
100
+ 1, 29, :_reduce_19,
101
+ 1, 30, :_reduce_20,
99
102
  3, 30, :_reduce_none,
100
- 1, 33, :_reduce_21,
103
+ 1, 33, :_reduce_22,
101
104
  2, 33, :_reduce_none,
102
- 1, 31, :_reduce_23,
105
+ 1, 31, :_reduce_24,
103
106
  2, 32, :_reduce_none,
104
- 3, 23, :_reduce_25,
105
107
  3, 23, :_reduce_26,
108
+ 3, 23, :_reduce_27,
109
+ 3, 23, :_reduce_28,
106
110
  2, 35, :_reduce_none,
107
- 1, 37, :_reduce_28,
111
+ 1, 37, :_reduce_30,
108
112
  2, 37, :_reduce_none,
109
- 1, 38, :_reduce_30,
113
+ 1, 38, :_reduce_32,
110
114
  2, 38, :_reduce_none,
111
- 1, 36, :_reduce_32,
112
- 1, 34, :_reduce_33,
115
+ 1, 36, :_reduce_34,
116
+ 1, 34, :_reduce_35,
113
117
  1, 34, :_reduce_none,
114
118
  1, 34, :_reduce_none,
115
119
  1, 39, :_reduce_none,
116
120
  1, 39, :_reduce_none,
117
121
  0, 41, :_reduce_none,
118
- 1, 41, :_reduce_39,
119
- 1, 41, :_reduce_40,
120
122
  1, 41, :_reduce_41,
121
123
  1, 41, :_reduce_42,
122
124
  1, 41, :_reduce_43,
123
- 1, 40, :_reduce_44,
124
- 1, 40, :_reduce_45,
125
+ 1, 41, :_reduce_44,
126
+ 1, 41, :_reduce_45,
125
127
  1, 40, :_reduce_46,
126
- 1, 40, :_reduce_47 ]
128
+ 1, 40, :_reduce_47,
129
+ 1, 40, :_reduce_48,
130
+ 1, 40, :_reduce_49 ]
127
131
 
128
- racc_reduce_n = 48
132
+ racc_reduce_n = 50
129
133
 
130
- racc_shift_n = 64
134
+ racc_shift_n = 68
131
135
 
132
136
  racc_token_table = {
133
137
  false => 0,
@@ -292,68 +296,73 @@ module_eval(<<'.,.,', 'parser.y', 30)
292
296
  end
293
297
  .,.,
294
298
 
295
- # reduce 17 omitted
299
+ module_eval(<<'.,.,', 'parser.y', 31)
300
+ def _reduce_17(val, _values, result)
301
+ @handler.push(val[0])
302
+ result
303
+ end
304
+ .,.,
305
+
306
+ # reduce 18 omitted
296
307
 
297
- module_eval(<<'.,.,', 'parser.y', 36)
298
- def _reduce_18(val, _values, result)
308
+ module_eval(<<'.,.,', 'parser.y', 37)
309
+ def _reduce_19(val, _values, result)
299
310
  @handler.start_(:inline)
300
311
  result
301
312
  end
302
313
  .,.,
303
314
 
304
- module_eval(<<'.,.,', 'parser.y', 39)
305
- def _reduce_19(val, _values, result)
315
+ module_eval(<<'.,.,', 'parser.y', 40)
316
+ def _reduce_20(val, _values, result)
306
317
  array = @handler.end_(:inline); @handler.push(Hash[*array])
307
318
  result
308
319
  end
309
320
  .,.,
310
321
 
311
- # reduce 20 omitted
322
+ # reduce 21 omitted
312
323
 
313
- module_eval(<<'.,.,', 'parser.y', 43)
314
- def _reduce_21(val, _values, result)
324
+ module_eval(<<'.,.,', 'parser.y', 44)
325
+ def _reduce_22(val, _values, result)
315
326
  array = @handler.end_(:inline); @handler.push(Hash[*array])
316
327
  result
317
328
  end
318
329
  .,.,
319
330
 
320
- # reduce 22 omitted
331
+ # reduce 23 omitted
321
332
 
322
- module_eval(<<'.,.,', 'parser.y', 47)
323
- def _reduce_23(val, _values, result)
333
+ module_eval(<<'.,.,', 'parser.y', 48)
334
+ def _reduce_24(val, _values, result)
324
335
  @handler.push(val[0])
325
336
  result
326
337
  end
327
338
  .,.,
328
339
 
329
- # reduce 24 omitted
340
+ # reduce 25 omitted
330
341
 
331
- module_eval(<<'.,.,', 'parser.y', 53)
332
- def _reduce_25(val, _values, result)
342
+ module_eval(<<'.,.,', 'parser.y', 54)
343
+ def _reduce_26(val, _values, result)
333
344
  @handler.assign(val[0])
334
345
  result
335
346
  end
336
347
  .,.,
337
348
 
338
- module_eval(<<'.,.,', 'parser.y', 54)
339
- def _reduce_26(val, _values, result)
349
+ module_eval(<<'.,.,', 'parser.y', 55)
350
+ def _reduce_27(val, _values, result)
340
351
  @handler.assign(val[0])
341
352
  result
342
353
  end
343
354
  .,.,
344
355
 
345
- # reduce 27 omitted
346
-
347
- module_eval(<<'.,.,', 'parser.y', 60)
356
+ module_eval(<<'.,.,', 'parser.y', 56)
348
357
  def _reduce_28(val, _values, result)
349
- array = @handler.end_(:array); @handler.push(array)
358
+ @handler.assign(val[0])
350
359
  result
351
360
  end
352
361
  .,.,
353
362
 
354
363
  # reduce 29 omitted
355
364
 
356
- module_eval(<<'.,.,', 'parser.y', 64)
365
+ module_eval(<<'.,.,', 'parser.y', 62)
357
366
  def _reduce_30(val, _values, result)
358
367
  array = @handler.end_(:array); @handler.push(array)
359
368
  result
@@ -362,88 +371,97 @@ module_eval(<<'.,.,', 'parser.y', 64)
362
371
 
363
372
  # reduce 31 omitted
364
373
 
365
- module_eval(<<'.,.,', 'parser.y', 68)
374
+ module_eval(<<'.,.,', 'parser.y', 66)
366
375
  def _reduce_32(val, _values, result)
376
+ array = @handler.end_(:array); @handler.push(array)
377
+ result
378
+ end
379
+ .,.,
380
+
381
+ # reduce 33 omitted
382
+
383
+ module_eval(<<'.,.,', 'parser.y', 70)
384
+ def _reduce_34(val, _values, result)
367
385
  @handler.start_(:array)
368
386
  result
369
387
  end
370
388
  .,.,
371
389
 
372
- module_eval(<<'.,.,', 'parser.y', 71)
373
- def _reduce_33(val, _values, result)
390
+ module_eval(<<'.,.,', 'parser.y', 73)
391
+ def _reduce_35(val, _values, result)
374
392
  @handler.push(val[0])
375
393
  result
376
394
  end
377
395
  .,.,
378
396
 
379
- # reduce 34 omitted
380
-
381
- # reduce 35 omitted
382
-
383
397
  # reduce 36 omitted
384
398
 
385
399
  # reduce 37 omitted
386
400
 
387
401
  # reduce 38 omitted
388
402
 
389
- module_eval(<<'.,.,', 'parser.y', 80)
390
- def _reduce_39(val, _values, result)
403
+ # reduce 39 omitted
404
+
405
+ # reduce 40 omitted
406
+
407
+ module_eval(<<'.,.,', 'parser.y', 82)
408
+ def _reduce_41(val, _values, result)
391
409
  result = val[0].to_f
392
410
  result
393
411
  end
394
412
  .,.,
395
413
 
396
- module_eval(<<'.,.,', 'parser.y', 81)
397
- def _reduce_40(val, _values, result)
414
+ module_eval(<<'.,.,', 'parser.y', 83)
415
+ def _reduce_42(val, _values, result)
398
416
  result = val[0].to_i
399
417
  result
400
418
  end
401
419
  .,.,
402
420
 
403
- module_eval(<<'.,.,', 'parser.y', 82)
404
- def _reduce_41(val, _values, result)
421
+ module_eval(<<'.,.,', 'parser.y', 84)
422
+ def _reduce_43(val, _values, result)
405
423
  result = true
406
424
  result
407
425
  end
408
426
  .,.,
409
427
 
410
- module_eval(<<'.,.,', 'parser.y', 83)
411
- def _reduce_42(val, _values, result)
428
+ module_eval(<<'.,.,', 'parser.y', 85)
429
+ def _reduce_44(val, _values, result)
412
430
  result = false
413
431
  result
414
432
  end
415
433
  .,.,
416
434
 
417
- module_eval(<<'.,.,', 'parser.y', 84)
418
- def _reduce_43(val, _values, result)
435
+ module_eval(<<'.,.,', 'parser.y', 86)
436
+ def _reduce_45(val, _values, result)
419
437
  result = Time.new(*val[0])
420
438
  result
421
439
  end
422
440
  .,.,
423
441
 
424
- module_eval(<<'.,.,', 'parser.y', 87)
425
- def _reduce_44(val, _values, result)
442
+ module_eval(<<'.,.,', 'parser.y', 89)
443
+ def _reduce_46(val, _values, result)
426
444
  result = StringUtils.replace_escaped_chars(StringUtils.multiline_replacements(val[0]))
427
445
  result
428
446
  end
429
447
  .,.,
430
448
 
431
- module_eval(<<'.,.,', 'parser.y', 88)
432
- def _reduce_45(val, _values, result)
449
+ module_eval(<<'.,.,', 'parser.y', 90)
450
+ def _reduce_47(val, _values, result)
433
451
  result = StringUtils.replace_escaped_chars(val[0])
434
452
  result
435
453
  end
436
454
  .,.,
437
455
 
438
- module_eval(<<'.,.,', 'parser.y', 89)
439
- def _reduce_46(val, _values, result)
456
+ module_eval(<<'.,.,', 'parser.y', 91)
457
+ def _reduce_48(val, _values, result)
440
458
  result = StringUtils.replace_escaped_chars(StringUtils.strip_spaces(val[0]))
441
459
  result
442
460
  end
443
461
  .,.,
444
462
 
445
- module_eval(<<'.,.,', 'parser.y', 90)
446
- def _reduce_47(val, _values, result)
463
+ module_eval(<<'.,.,', 'parser.y', 92)
464
+ def _reduce_49(val, _values, result)
447
465
  result = StringUtils.strip_spaces(val[0])
448
466
  result
449
467
  end
data/lib/tomlrb/parser.y CHANGED
@@ -29,6 +29,7 @@ rule
29
29
  table_identifier
30
30
  : IDENTIFIER { @handler.push(val[0]) }
31
31
  | STRING_BASIC { @handler.push(val[0]) }
32
+ | INTEGER { @handler.push(val[0]) }
32
33
  ;
33
34
  inline_table
34
35
  : inline_table_start inline_continued
@@ -53,6 +54,7 @@ rule
53
54
  assignment
54
55
  : IDENTIFIER '=' value { @handler.assign(val[0]) }
55
56
  | STRING_BASIC '=' value { @handler.assign(val[0]) }
57
+ | INTEGER '=' value { @handler.assign(val[0]) }
56
58
  ;
57
59
  array
58
60
  : start_array array_continued
@@ -1,3 +1,3 @@
1
1
  module Tomlrb
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.3"
3
3
  end
data/tomlrb.gemspec CHANGED
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "racc"
27
27
  spec.add_development_dependency "minitest"
28
28
  spec.add_development_dependency "minitest-reporters"
29
+ spec.add_development_dependency "benchmark-ips"
29
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomlrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francois Bernier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-04-23 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: benchmark-ips
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: A racc based toml parser
112
126
  email:
113
127
  - frankbernier@gmail.com
@@ -121,6 +135,7 @@ files:
121
135
  - LICENSE.txt
122
136
  - README.md
123
137
  - Rakefile
138
+ - benchmarks/bench.rb
124
139
  - bin/console
125
140
  - bin/setup
126
141
  - lib/tomlrb.rb
@@ -152,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
167
  version: '0'
153
168
  requirements: []
154
169
  rubyforge_project:
155
- rubygems_version: 2.4.5
170
+ rubygems_version: 2.4.5.1
156
171
  signing_key:
157
172
  specification_version: 4
158
173
  summary: A racc based toml parser