Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-tomlrb for openSUSE:Factory 
checked in at 2022-08-09 15:26:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-tomlrb (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-tomlrb.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-tomlrb"

Tue Aug  9 15:26:56 2022 rev:6 rq:993526 version:2.0.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-tomlrb/rubygem-tomlrb.changes    
2021-01-21 21:54:38.445776730 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-tomlrb.new.1521/rubygem-tomlrb.changes  
2022-08-09 15:27:13.969433255 +0200
@@ -1,0 +2,6 @@
+Thu Aug  4 13:32:38 UTC 2022 - Stephan Kulow <co...@suse.com>
+
+updated to version 2.0.3
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  tomlrb-2.0.1.gem

New:
----
  tomlrb-2.0.3.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-tomlrb.spec ++++++
--- /var/tmp/diff_new_pack.YbgV3H/_old  2022-08-09 15:27:14.473434695 +0200
+++ /var/tmp/diff_new_pack.YbgV3H/_new  2022-08-09 15:27:14.477434706 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-tomlrb
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-tomlrb
-Version:        2.0.1
+Version:        2.0.3
 Release:        0
 %define mod_name tomlrb
 %define mod_full_name %{mod_name}-%{version}

++++++ tomlrb-2.0.1.gem -> tomlrb-2.0.3.gem ++++++
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/tomlrb/generated_parser.rb 
new/lib/tomlrb/generated_parser.rb
--- old/lib/tomlrb/generated_parser.rb  2020-12-20 02:42:11.000000000 +0100
+++ new/lib/tomlrb/generated_parser.rb  2022-05-28 14:09:33.000000000 +0200
@@ -1,6 +1,6 @@
 #
 # DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.5.1
+# This file is automatically generated by Racc 1.6.0
 # from Racc grammar file "".
 #
 
@@ -10,94 +10,100 @@
 ##### State transition tables begin ###
 
 racc_action_table = [
-     2,    43,    16,    41,    17,    42,    18,    44,    45,    19,
-    20,    14,    21,    22,     8,     4,    10,    48,    49,    12,
-    23,    39,    69,    70,    71,    72,    67,    68,    64,    65,
-    62,    63,    66,    52,    36,    56,    46,    53,    12,    69,
-    70,    71,    72,    67,    68,    64,    65,    62,    63,    66,
-    84,    83,    56,    39,    75,    12,    69,    70,    71,    72,
-    67,    68,    64,    65,    62,    63,    66,    88,    80,    56,
-    86,    81,    12,    69,    70,    71,    72,    67,    68,    64,
-    65,    62,    63,    66,    88,    41,    56,    86,   nil,    12,
-    69,    70,    71,    72,    67,    68,    64,    65,    62,    63,
-    66,    88,   nil,    56,    86,   nil,    12,    69,    70,    71,
-    72,    67,    68,    64,    65,    62,    63,    66,    88,   nil,
-    56,    86,    29,    12,    30,   nil,    31,   nil,   nil,    32,
-    33,    27,    34,    35,    29,   nil,    30,    25,    31,   nil,
-   nil,    32,    33,    78,    34,    35,    16,   nil,    17,    25,
-    18,   nil,   nil,    19,    20,    74,    21,    22,    93,   nil,
-   nil,    91,   nil,   nil,   nil,    92 ]
+     2,    45,    16,    56,    17,    44,    18,    55,    23,    19,
+    20,    14,    21,    22,     8,     4,    10,    36,    16,    12,
+    17,    48,    18,    46,    47,    19,    20,    42,    21,    22,
+    50,    51,    87,    86,    39,    54,    39,    72,    73,    74,
+    75,    70,    71,    67,    68,    65,    66,    69,    78,   nil,
+    59,   nil,   nil,    12,    72,    73,    74,    75,    70,    71,
+    67,    68,    65,    66,    69,   nil,   nil,    59,   nil,   nil,
+    12,    72,    73,    74,    75,    70,    71,    67,    68,    65,
+    66,    69,    91,   nil,    59,    89,   nil,    12,    72,    73,
+    74,    75,    70,    71,    67,    68,    65,    66,    69,    91,
+   nil,    59,    89,   nil,    12,    72,    73,    74,    75,    70,
+    71,    67,    68,    65,    66,    69,    91,   nil,    59,    89,
+   nil,    12,    72,    73,    74,    75,    70,    71,    67,    68,
+    65,    66,    69,    91,   nil,    59,    89,    29,    12,    30,
+   nil,    31,   nil,   nil,    32,    33,    27,    34,    35,    29,
+   nil,    30,    25,    31,   nil,   nil,    32,    33,    81,    34,
+    35,    16,   nil,    17,    25,    18,   nil,   nil,    19,    20,
+    77,    21,    22,    16,   nil,    17,   nil,    18,   nil,   nil,
+    19,    20,    42,    21,    22,    16,   nil,    17,   nil,    18,
+   nil,   nil,    19,    20,    85,    21,    22,    95,   nil,   nil,
+    93,   nil,   nil,   nil,    94 ]
 
 racc_action_check = [
-     1,    13,     1,    11,     1,    13,     1,    24,    24,     1,
-     1,     1,     1,     1,     1,     1,     1,    26,    26,     1,
-     2,    11,    42,    42,    42,    42,    42,    42,    42,    42,
-    42,    42,    42,    40,    10,    42,    25,    40,    42,    53,
-    53,    53,    53,    53,    53,    53,    53,    53,    53,    53,
-    54,    54,    53,    38,    48,    53,    55,    55,    55,    55,
-    55,    55,    55,    55,    55,    55,    55,    55,    51,    55,
-    55,    52,    55,    88,    88,    88,    88,    88,    88,    88,
-    88,    88,    88,    88,    88,    80,    88,    88,   nil,    88,
-    92,    92,    92,    92,    92,    92,    92,    92,    92,    92,
-    92,    92,   nil,    92,    92,   nil,    92,    93,    93,    93,
-    93,    93,    93,    93,    93,    93,    93,    93,    93,   nil,
-    93,    93,     9,    93,     9,   nil,     9,   nil,   nil,     9,
-     9,     9,     9,     9,    49,   nil,    49,     9,    49,   nil,
-   nil,    49,    49,    49,    49,    49,    43,   nil,    43,    49,
-    43,   nil,   nil,    43,    43,    43,    43,    43,    87,   nil,
-   nil,    87,   nil,   nil,   nil,    87 ]
+     1,    13,     1,    41,     1,    13,     1,    41,     2,     1,
+     1,     1,     1,     1,     1,     1,     1,    10,    11,     1,
+    11,    25,    11,    24,    24,    11,    11,    11,    11,    11,
+    26,    26,    57,    57,    38,    40,    11,    44,    44,    44,
+    44,    44,    44,    44,    44,    44,    44,    44,    50,   nil,
+    44,   nil,   nil,    44,    55,    55,    55,    55,    55,    55,
+    55,    55,    55,    55,    55,   nil,   nil,    55,   nil,   nil,
+    55,    58,    58,    58,    58,    58,    58,    58,    58,    58,
+    58,    58,    58,   nil,    58,    58,   nil,    58,    91,    91,
+    91,    91,    91,    91,    91,    91,    91,    91,    91,    91,
+   nil,    91,    91,   nil,    91,    94,    94,    94,    94,    94,
+    94,    94,    94,    94,    94,    94,    94,   nil,    94,    94,
+   nil,    94,    95,    95,    95,    95,    95,    95,    95,    95,
+    95,    95,    95,    95,   nil,    95,    95,     9,    95,     9,
+   nil,     9,   nil,   nil,     9,     9,     9,     9,     9,    51,
+   nil,    51,     9,    51,   nil,   nil,    51,    51,    51,    51,
+    51,    45,   nil,    45,    51,    45,   nil,   nil,    45,    45,
+    45,    45,    45,    54,   nil,    54,   nil,    54,   nil,   nil,
+    54,    54,    54,    54,    54,    56,   nil,    56,   nil,    56,
+   nil,   nil,    56,    56,    56,    56,    56,    90,   nil,   nil,
+    90,   nil,   nil,   nil,    90 ]
 
 racc_action_pointer = [
-   nil,     0,    20,   nil,   nil,   nil,   nil,   nil,   nil,   120,
-    18,     1,   nil,   -17,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    -7,    19,     0,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    33,   nil,
-    15,   nil,    19,   144,   nil,   nil,   nil,   nil,    37,   132,
-   nil,    47,    69,    36,    36,    53,   nil,   nil,   nil,   nil,
+   nil,     0,     8,   nil,   nil,   nil,   nil,   nil,   nil,   135,
+     1,    16,   nil,   -17,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,     9,     4,    13,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    14,   nil,
+    14,   -15,   nil,   nil,    34,   159,   nil,   nil,   nil,   nil,
+    31,   147,   nil,   nil,   171,    51,   183,    18,    68,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    83,   nil,   nil,   nil,   nil,   nil,   nil,   144,    70,   nil,
-   nil,   nil,    87,   104,   nil,   nil,   nil ]
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   183,    85,   nil,   nil,   102,   119,   nil,   nil,   nil ]
 
 racc_action_default = [
-    -1,   -77,   -77,    -2,    -3,    -4,    -5,    -6,    -7,   -77,
-   -11,   -77,   -31,   -77,   -43,   -44,   -45,   -46,   -47,   -48,
-   -49,   -50,   -51,    97,   -77,   -13,   -77,   -20,   -21,   -22,
-   -23,   -24,   -25,   -26,   -27,   -28,   -10,   -29,   -77,   -32,
-   -77,   -37,   -65,   -77,    -8,    -9,   -12,   -14,   -16,   -77,
-   -30,   -33,   -77,   -65,   -77,   -65,   -59,   -60,   -61,   -62,
-   -63,   -64,   -66,   -67,   -68,   -69,   -70,   -71,   -72,   -73,
-   -74,   -75,   -76,   -41,   -42,   -15,   -17,   -18,   -19,   -34,
-   -77,   -36,   -38,   -39,   -40,   -52,   -53,   -77,   -65,   -35,
-   -54,   -56,   -65,   -65,   -55,   -57,   -58 ]
+    -1,   -79,   -79,    -2,    -3,    -4,    -5,    -6,    -7,   -79,
+   -11,   -79,   -31,   -79,   -45,   -46,   -47,   -48,   -49,   -50,
+   -51,   -52,   -53,    99,   -79,   -13,   -79,   -20,   -21,   -22,
+   -23,   -24,   -25,   -26,   -27,   -28,   -10,   -29,   -79,   -32,
+   -33,   -79,   -39,   -40,   -67,   -79,    -8,    -9,   -12,   -14,
+   -16,   -79,   -30,   -34,   -79,   -67,   -79,   -79,   -67,   -61,
+   -62,   -63,   -64,   -65,   -66,   -68,   -69,   -70,   -71,   -72,
+   -73,   -74,   -75,   -76,   -77,   -78,   -43,   -44,   -15,   -17,
+   -18,   -19,   -35,   -36,   -37,   -38,   -41,   -42,   -54,   -55,
+   -79,   -67,   -56,   -58,   -67,   -67,   -57,   -59,   -60 ]
 
 racc_goto_table = [
-    38,    15,    24,    85,    28,    37,    54,     1,     3,     5,
-     6,     7,     9,    47,    51,    79,    13,    82,    90,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    50,   nil,   nil,   nil,    94,   nil,   nil,   nil,
-    95,    96,    76,    73,    77,   nil,   nil,   nil,   nil,   nil,
+    15,    24,    38,    88,    28,    37,    57,     1,     3,     5,
+     6,     7,     9,    49,    53,    13,    92,    83,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    89 ]
+   nil,   nil,    52,   nil,   nil,   nil,    96,   nil,   nil,    97,
+    98,   nil,   nil,    79,    76,    82,    80,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    84 ]
 
 racc_goto_check = [
-    13,    19,     7,    22,    10,    12,    17,     1,     2,     3,
-     4,     5,     6,     9,    15,    16,    18,    17,    23,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    12,   nil,   nil,   nil,    22,   nil,   nil,   nil,
-    22,    22,     7,    19,    10,   nil,   nil,   nil,   nil,   nil,
+    18,     7,    13,    22,    10,    12,    17,     1,     2,     3,
+     4,     5,     6,     9,    15,    19,    23,    17,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    13 ]
+   nil,   nil,    12,   nil,   nil,   nil,    22,   nil,   nil,    22,
+    22,   nil,   nil,     7,    18,    13,    10,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    18 ]
 
 racc_goto_pointer = [
-   nil,     7,     7,     8,     9,    10,    11,    -7,   nil,   -13,
-    -5,   nil,    -6,   -11,   nil,   -26,   -36,   -36,    15,     0,
-   nil,   nil,   -52,   -69,   nil,   nil,   nil ]
+   nil,     7,     7,     8,     9,    10,    11,    -8,   nil,   -13,
+    -5,   nil,    -6,    -9,   nil,   -26,   nil,   -38,    -1,    14,
+   nil,   nil,   -55,   -74,   nil,   nil,   nil ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   nil,   nil,    59,   nil,   nil,    26,   nil,
-   nil,    11,   nil,   nil,    40,   nil,   nil,    87,   nil,   nil,
-    58,    55,   nil,   nil,    57,    60,    61 ]
+   nil,   nil,   nil,   nil,   nil,    62,   nil,   nil,    26,   nil,
+   nil,    11,   nil,   nil,    40,   nil,    41,    90,    43,   nil,
+    61,    58,   nil,   nil,    60,    63,    64 ]
 
 racc_reduce_table = [
   0, 0, :racc_error,
@@ -123,7 +129,7 @@
   1, 31, :_reduce_20,
   1, 31, :_reduce_21,
   1, 33, :_reduce_none,
-  1, 33, :_reduce_none,
+  1, 33, :_reduce_23,
   1, 33, :_reduce_none,
   1, 33, :_reduce_none,
   1, 33, :_reduce_none,
@@ -133,54 +139,56 @@
   3, 28, :_reduce_none,
   1, 34, :_reduce_31,
   1, 35, :_reduce_32,
+  1, 36, :_reduce_none,
   2, 36, :_reduce_none,
-  3, 36, :_reduce_none,
-  2, 39, :_reduce_none,
-  3, 37, :_reduce_36,
-  1, 37, :_reduce_37,
   2, 38, :_reduce_none,
-  4, 27, :_reduce_39,
-  4, 27, :_reduce_40,
-  3, 41, :_reduce_41,
-  3, 41, :_reduce_42,
-  1, 41, :_reduce_43,
-  1, 41, :_reduce_44,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
-  1, 42, :_reduce_none,
+  3, 37, :_reduce_36,
+  3, 39, :_reduce_37,
+  3, 39, :_reduce_38,
+  1, 39, :_reduce_39,
+  1, 39, :_reduce_40,
+  4, 27, :_reduce_41,
+  4, 27, :_reduce_42,
+  3, 42, :_reduce_43,
+  3, 42, :_reduce_44,
+  1, 42, :_reduce_45,
+  1, 42, :_reduce_46,
+  1, 41, :_reduce_none,
+  1, 41, :_reduce_48,
+  1, 41, :_reduce_none,
+  1, 41, :_reduce_none,
+  1, 41, :_reduce_none,
+  1, 41, :_reduce_none,
+  1, 41, :_reduce_none,
   2, 43, :_reduce_none,
-  1, 45, :_reduce_53,
+  1, 45, :_reduce_55,
   2, 45, :_reduce_none,
   2, 45, :_reduce_none,
-  1, 46, :_reduce_56,
+  1, 46, :_reduce_58,
   2, 46, :_reduce_none,
   2, 46, :_reduce_none,
-  1, 44, :_reduce_59,
-  1, 40, :_reduce_60,
+  1, 44, :_reduce_61,
+  1, 40, :_reduce_62,
   1, 40, :_reduce_none,
   1, 40, :_reduce_none,
   1, 47, :_reduce_none,
   1, 47, :_reduce_none,
   0, 49, :_reduce_none,
-  1, 49, :_reduce_66,
-  1, 49, :_reduce_67,
   1, 49, :_reduce_68,
   1, 49, :_reduce_69,
   1, 49, :_reduce_70,
   1, 49, :_reduce_71,
   1, 49, :_reduce_72,
-  1, 48, :_reduce_73,
-  1, 48, :_reduce_74,
+  1, 49, :_reduce_73,
+  1, 49, :_reduce_74,
   1, 48, :_reduce_75,
-  1, 48, :_reduce_76 ]
+  1, 48, :_reduce_76,
+  1, 48, :_reduce_77,
+  1, 48, :_reduce_78 ]
 
-racc_reduce_n = 77
+racc_reduce_n = 79
 
-racc_shift_n = 97
+racc_shift_n = 99
 
 racc_token_table = {
   false => 0,
@@ -265,12 +273,12 @@
   "inline_table_start",
   "inline_table_end",
   "inline_continued",
-  "inline_assignment_key",
-  "inline_assignment_value",
+  "inline_assignment",
   "inline_next",
+  "inline_assignment_key",
   "value",
-  "assignment_key",
   "assignment_key_component",
+  "assignment_key",
   "array",
   "start_array",
   "array_continued",
@@ -382,7 +390,12 @@
 
 # reduce 22 omitted
 
-# reduce 23 omitted
+module_eval(<<'.,.,', 'parser.y', 43)
+  def _reduce_23(val, _values, result)
+     result = StringUtils.replace_escaped_chars(val[0])
+    result
+  end
+.,.,
 
 # reduce 24 omitted
 
@@ -408,8 +421,7 @@
 module_eval(<<'.,.,', 'parser.y', 59)
   def _reduce_32(val, _values, result)
           array = @handler.end_(:inline)
-      array.map!.with_index{ |n,i| i.even? ? n.to_sym : n } if 
@handler.symbolize_keys
-      @handler.push(Hash[*array])
+      @handler.push_inline(array)
 
     result
   end
@@ -421,12 +433,10 @@
 
 # reduce 35 omitted
 
-module_eval(<<'.,.,', 'parser.y', 73)
+module_eval(<<'.,.,', 'parser.y', 72)
   def _reduce_36(val, _values, result)
-          array = @handler.end_(:inline)
-      array.each { |key| @handler.push(key) }
-      @handler.start_(:inline)
-      @handler.push(val[2])
+          keys = @handler.end_(:inline_keys)
+      @handler.push(keys)
 
     result
   end
@@ -434,49 +444,78 @@
 
 module_eval(<<'.,.,', 'parser.y', 78)
   def _reduce_37(val, _values, result)
-     @handler.push(val[0])
+          @handler.push(val[2]) 
+
     result
   end
 .,.,
 
-# reduce 38 omitted
+module_eval(<<'.,.,', 'parser.y', 80)
+  def _reduce_38(val, _values, result)
+     val[2].split('.').each { |k| @handler.push(k) }
+    result
+  end
+.,.,
 
-module_eval(<<'.,.,', 'parser.y', 85)
+module_eval(<<'.,.,', 'parser.y', 82)
   def _reduce_39(val, _values, result)
+          keys = val[0].split('.')
+      @handler.start_(:inline_keys)
+      keys.each { |key| @handler.push(key) }
+
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 87)
+  def _reduce_40(val, _values, result)
+          @handler.start_(:inline_keys) 
+      @handler.push(val[0]) 
+
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'parser.y', 93)
+  def _reduce_41(val, _values, result)
           keys = @handler.end_(:keys)
-      @handler.push(keys.pop)
+      value = keys.pop
+      @handler.validate_value(value)
+      @handler.push(value)
       @handler.assign(keys)
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 90)
-  def _reduce_40(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 100)
+  def _reduce_42(val, _values, result)
           keys = @handler.end_(:keys)
-      @handler.push(keys.pop)
+      value = keys.pop
+      @handler.validate_value(value)
+      @handler.push(value)
       @handler.assign(keys)
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 96)
-  def _reduce_41(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 108)
+  def _reduce_43(val, _values, result)
      @handler.push(val[2])
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 97)
-  def _reduce_42(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 109)
+  def _reduce_44(val, _values, result)
      val[2].split('.').each { |k| @handler.push(k) }
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 99)
-  def _reduce_43(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 111)
+  def _reduce_45(val, _values, result)
           keys = val[0].split('.')
       @handler.start_(:keys)
       keys.each { |key| @handler.push(key) }
@@ -485,20 +524,21 @@
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 103)
-  def _reduce_44(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 115)
+  def _reduce_46(val, _values, result)
      @handler.start_(:keys); @handler.push(val[0])
     result
   end
 .,.,
 
-# reduce 45 omitted
-
-# reduce 46 omitted
-
 # reduce 47 omitted
 
-# reduce 48 omitted
+module_eval(<<'.,.,', 'parser.y', 119)
+  def _reduce_48(val, _values, result)
+     result = StringUtils.replace_escaped_chars(val[0])
+    result
+  end
+.,.,
 
 # reduce 49 omitted
 
@@ -508,61 +548,65 @@
 
 # reduce 52 omitted
 
-module_eval(<<'.,.,', 'parser.y', 118)
-  def _reduce_53(val, _values, result)
-     array = @handler.end_(:array); @handler.push(array)
+# reduce 53 omitted
+
+# reduce 54 omitted
+
+module_eval(<<'.,.,', 'parser.y', 130)
+  def _reduce_55(val, _values, result)
+     array = @handler.end_(:array); @handler.push(array.compact)
     result
   end
 .,.,
 
-# reduce 54 omitted
+# reduce 56 omitted
 
-# reduce 55 omitted
+# reduce 57 omitted
 
-module_eval(<<'.,.,', 'parser.y', 123)
-  def _reduce_56(val, _values, result)
-     array = @handler.end_(:array); @handler.push(array)
+module_eval(<<'.,.,', 'parser.y', 135)
+  def _reduce_58(val, _values, result)
+     array = @handler.end_(:array); @handler.push(array.compact)
     result
   end
 .,.,
 
-# reduce 57 omitted
+# reduce 59 omitted
 
-# reduce 58 omitted
+# reduce 60 omitted
 
-module_eval(<<'.,.,', 'parser.y', 128)
-  def _reduce_59(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 140)
+  def _reduce_61(val, _values, result)
      @handler.start_(:array)
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 131)
-  def _reduce_60(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 143)
+  def _reduce_62(val, _values, result)
      @handler.push(val[0])
     result
   end
 .,.,
 
-# reduce 61 omitted
-
-# reduce 62 omitted
-
 # reduce 63 omitted
 
 # reduce 64 omitted
 
 # reduce 65 omitted
 
-module_eval(<<'.,.,', 'parser.y', 140)
-  def _reduce_66(val, _values, result)
+# reduce 66 omitted
+
+# reduce 67 omitted
+
+module_eval(<<'.,.,', 'parser.y', 152)
+  def _reduce_68(val, _values, result)
      result = val[0].to_f
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 142)
-  def _reduce_67(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 154)
+  def _reduce_69(val, _values, result)
           v = val[0]
       result = if v.end_with?('nan')
                  Float::NAN
@@ -574,15 +618,15 @@
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 149)
-  def _reduce_68(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 161)
+  def _reduce_70(val, _values, result)
      result = val[0].to_i
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 151)
-  def _reduce_69(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 163)
+  def _reduce_71(val, _values, result)
           base = case val[0][1]
              when "x" then 16
              when "o" then 8
@@ -594,15 +638,15 @@
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 158)
-  def _reduce_70(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 170)
+  def _reduce_72(val, _values, result)
      result = val[0] == 'true' ? true : false
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 160)
-  def _reduce_71(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 172)
+  def _reduce_73(val, _values, result)
           v = val[0]
       result = if v[6].nil?
                  if v[4].nil?
@@ -611,6 +655,11 @@
                    LocalDateTime.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, 
v[5].to_f)
                  end
                else
+                 # Patch for 24:00:00 which Ruby parses
+                 if v[3].to_i == 24 && v[4].to_i == 0 && v[5].to_i == 0
+                   v[3] = (v[3].to_i + 1).to_s
+                 end
+
                  Time.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f, 
v[6])
                end
 
@@ -618,36 +667,36 @@
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 171)
-  def _reduce_72(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 188)
+  def _reduce_74(val, _values, result)
      result = LocalTime.new(*val[0])
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 174)
-  def _reduce_73(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 191)
+  def _reduce_75(val, _values, result)
      result = 
StringUtils.replace_escaped_chars(StringUtils.multiline_replacements(val[0]))
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 175)
-  def _reduce_74(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 192)
+  def _reduce_76(val, _values, result)
      result = StringUtils.replace_escaped_chars(val[0])
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 176)
-  def _reduce_75(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 193)
+  def _reduce_77(val, _values, result)
      result = StringUtils.strip_spaces(val[0])
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'parser.y', 177)
-  def _reduce_76(val, _values, result)
+module_eval(<<'.,.,', 'parser.y', 194)
+  def _reduce_78(val, _values, result)
      result = val[0]
     result
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/tomlrb/handler.rb new/lib/tomlrb/handler.rb
--- old/lib/tomlrb/handler.rb   2020-12-20 02:42:11.000000000 +0100
+++ new/lib/tomlrb/handler.rb   2022-05-28 14:09:33.000000000 +0200
@@ -13,6 +13,10 @@
     end
 
     def set_context(identifiers, is_array_of_tables: false)
+      if identifiers.empty?
+        raise ParseError, 'Array needs a name'
+      end
+
       @current_table = identifiers.dup
       @keys.add_table_key identifiers, is_array_of_tables
       @current = @output
@@ -21,7 +25,6 @@
         identifierz.each do |k|
           k = k.to_sym if @symbolize_keys
           if @current[k].is_a?(Array)
-            @current[k] << {} if @current[k].empty?
             @current = @current[k].last
           else
             @current[k] ||= {}
@@ -32,7 +35,6 @@
     end
 
     def deal_with_array_of_tables(identifiers, is_array_of_tables)
-      identifiers.map!{|n| n.gsub("\"", '')}
       stringified_identifier = identifiers.join('.')
 
       if is_array_of_tables
@@ -66,6 +68,32 @@
       @stack << o
     end
 
+    def push_inline(inline_arrays)
+      merged_inline = {}
+
+      inline_arrays.each do |inline_array|
+        current = merged_inline
+        value = inline_array.pop
+        inline_array.each_with_index do |inline_key, inline_index|
+          inline_key = inline_key.to_sym if @symbolize_keys
+          last_key = inline_index == inline_array.size - 1
+
+          if last_key
+            if current[inline_key].nil?
+              current[inline_key] = value
+            else
+              raise Key::KeyConflict, "Inline key #{inline_key} is already 
used"
+            end
+          else
+            current[inline_key] ||= {}
+            current = current[inline_key]
+          end
+        end
+      end
+
+      push(merged_inline)
+    end
+
     def start_(type)
       push([type])
     end
@@ -73,16 +101,23 @@
     def end_(type)
       array = []
       while (value = @stack.pop) != [type]
-        raise ParseError, 'Unclosed table' if value.nil?
+        raise ParseError, 'Unclosed table' if @stack.empty?
         array.unshift(value)
       end
       array
     end
 
+    def validate_value(value)
+      if value.nil?
+        raise ParseError, 'Value must be present'
+      end
+    end
+
     private
 
     def assign_key_path(current, key, key_emptied)
       if key_emptied
+
         raise ParseError, "Cannot overwrite value with key #{key}" unless 
current.kind_of?(Hash)
         current[key] = @stack.pop
         return current
@@ -156,7 +191,7 @@
 
     def find_or_create_first_pair_key(current, key, declared, table_keys_empty)
       existed = current[key]
-      if existed && existed.declared? && (existed.type == :pair) && declared 
&& table_keys_empty
+      if existed && (existed.type == :pair) && declared && table_keys_empty
         raise Key::KeyConflict, "Key #{key} is already used"
       end
       k = Key.new(key, :pair, declared)
@@ -199,7 +234,7 @@
     private
 
     def validate_already_declared_as_different_key(type, declared, existed)
-      if declared && existed && existed.declared? && existed.type != type
+      if existed && existed.declared? && existed.type != type
         raise KeyConflict, "Key #{existed.key} is already used as 
#{existed.type} key"
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/tomlrb/parser.y new/lib/tomlrb/parser.y
--- old/lib/tomlrb/parser.y     2020-12-20 02:42:11.000000000 +0100
+++ new/lib/tomlrb/parser.y     2022-05-28 14:09:33.000000000 +0200
@@ -41,7 +41,7 @@
     ;
   table_identifier_component
     : IDENTIFIER
-    | STRING_BASIC
+    | STRING_BASIC { result = StringUtils.replace_escaped_chars(val[0]) }
     | STRING_LITERAL
     | INTEGER
     | NON_DEC_INTEGER
@@ -58,38 +58,50 @@
   inline_table_end
     : '}' {
       array = @handler.end_(:inline)
-      array.map!.with_index{ |n,i| i.even? ? n.to_sym : n } if 
@handler.symbolize_keys
-      @handler.push(Hash[*array])
+      @handler.push_inline(array)
     }
     ;
   inline_continued
-    : inline_assignment_key inline_assignment_value
-    | inline_assignment_key inline_assignment_value inline_next
+    : inline_assignment
+    | inline_assignment inline_next
     ;
   inline_next
     : ',' inline_continued
     ;
-  inline_assignment_key
-    : inline_assignment_key '.' IDENTIFIER {
-      array = @handler.end_(:inline)
-      array.each { |key| @handler.push(key) }
-      @handler.start_(:inline)
-      @handler.push(val[2])
+  inline_assignment
+    : inline_assignment_key '=' value {
+      keys = @handler.end_(:inline_keys)
+      @handler.push(keys)
     }
-    | IDENTIFIER { @handler.push(val[0]) }
     ;
-  inline_assignment_value
-    : '=' value
+  inline_assignment_key
+    : inline_assignment_key '.' assignment_key_component { 
+      @handler.push(val[2]) 
+    }
+    | inline_assignment_key '.' FLOAT { val[2].split('.').each { |k| 
@handler.push(k) } }
+    | FLOAT {
+      keys = val[0].split('.')
+      @handler.start_(:inline_keys)
+      keys.each { |key| @handler.push(key) }
+    }
+    | assignment_key_component { 
+      @handler.start_(:inline_keys) 
+      @handler.push(val[0]) 
+    }
     ;
   assignment
     : assignment_key '=' value EOS {
       keys = @handler.end_(:keys)
-      @handler.push(keys.pop)
+      value = keys.pop
+      @handler.validate_value(value)
+      @handler.push(value)
       @handler.assign(keys)
     }
     | assignment_key '=' value NEWLINE {
       keys = @handler.end_(:keys)
-      @handler.push(keys.pop)
+      value = keys.pop
+      @handler.validate_value(value)
+      @handler.push(value)
       @handler.assign(keys)
     }
     ;
@@ -105,7 +117,7 @@
     ;
   assignment_key_component
     : IDENTIFIER
-    | STRING_BASIC
+    | STRING_BASIC { result = StringUtils.replace_escaped_chars(val[0]) }
     | STRING_LITERAL
     | INTEGER
     | NON_DEC_INTEGER
@@ -116,12 +128,12 @@
     : start_array array_continued
     ;
   array_continued
-    : ']' { array = @handler.end_(:array); @handler.push(array) }
+    : ']' { array = @handler.end_(:array); @handler.push(array.compact) }
     | value array_next
     | NEWLINE array_continued
     ;
   array_next
-    : ']' { array = @handler.end_(:array); @handler.push(array) }
+    : ']' { array = @handler.end_(:array); @handler.push(array.compact) }
     | ',' array_continued
     | NEWLINE array_continued
     ;
@@ -166,6 +178,11 @@
                    LocalDateTime.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, 
v[5].to_f)
                  end
                else
+                 # Patch for 24:00:00 which Ruby parses
+                 if v[3].to_i == 24 && v[4].to_i == 0 && v[5].to_i == 0
+                   v[3] = (v[3].to_i + 1).to_s
+                 end
+
                  Time.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f, 
v[6])
                end
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/tomlrb/scanner.rb new/lib/tomlrb/scanner.rb
--- old/lib/tomlrb/scanner.rb   2020-12-20 02:42:11.000000000 +0100
+++ new/lib/tomlrb/scanner.rb   2022-05-28 14:09:33.000000000 +0200
@@ -12,11 +12,14 @@
     STRING_LITERAL_MULTI = 
/'{3}([^\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]*?'{3,5})/m
     DATETIME = 
/(-?\d{4})-(\d{2})-(\d{2})(?:(?:t|\s)(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?))?(z|[-+]\d{2}:\d{2})?/i
     LOCAL_TIME = /(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?)/
-    FLOAT = 
/[+-]?(?:(?:\d|[1-9](?:_?\d)*)\.\d(?:_?\d)*|\d+(?=[eE]))(?:[eE][+-]?[0-9_]+)?(?!\w)/
+    FLOAT = 
/[+-]?(?:(?:\d|[1-9](?:_?\d)*)\.\d(?:_?\d)*|\d+(?=[eE]))(?:[eE][+-]?[0-9]+(_[0-9])*[0-9]*)?(?!\w)/
     FLOAT_KEYWORD = /[+-]?(?:inf|nan)\b/
     INTEGER = /[+-]?([1-9](_?\d)*|0)(?![A-Za-z0-9_-]+)/
-    NON_DEC_INTEGER = 
/0(?:x[0-9A-Fa-f][0-9A-Fa-f_]*|o[0-7][0-7_]*|b[01][01_]*)/
+    NON_DEC_INTEGER = 
/0(?:x[0-9A-Fa-f]+(?:_[0-9A-Fa-f])*[0-9A-Fa-f]*|o[0-7]+(?:_[0-7])*[0-7]*|b[01]+(?:_[01])*[01]*)/
     BOOLEAN = /true|false/
+    SPACED_ARRAY_OF_TABLES_START = /^\[[ 
\t]+\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\]\]$/
+    SPACED_ARRAY_OF_TABLES_END = 
/^\[\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\][
 \t]+\]$/
+    SPACED_ARRAY_OF_TABLES_BOTH = /^\[[ 
\t]+\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\][
 \t]+\]$/
 
     def initialize(io)
       @ss = StringScanner.new(io.read)
@@ -26,6 +29,9 @@
     def next_token
       case
       when @ss.scan(NEWLINE) then [:NEWLINE, nil]
+      when @ss.scan(SPACED_ARRAY_OF_TABLES_START) then raise 
ParseError.new("Array of tables has spaces in starting brackets")
+      when @ss.scan(SPACED_ARRAY_OF_TABLES_END) then raise 
ParseError.new("Array of tables has spaces in ending brackets")
+      when @ss.scan(SPACED_ARRAY_OF_TABLES_BOTH) then raise 
ParseError.new("Array of tables has spaces in starting and ending brackets")
       when @ss.scan(SPACE) then next_token
       when @ss.scan(COMMENT) then next_token
       when @ss.scan(DATETIME) then process_datetime
@@ -47,7 +53,7 @@
 
     def process_datetime
       if @ss[7]
-        offset = @ss[7].gsub('Z', '+00:00')
+        offset = @ss[7].gsub(/[zZ]/, '+00:00')
       end
       args = [@ss[1], @ss[2], @ss[3], @ss[4], @ss[5], @ss[6], offset]
       [:DATETIME, args]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/tomlrb/version.rb new/lib/tomlrb/version.rb
--- old/lib/tomlrb/version.rb   2020-12-20 02:42:11.000000000 +0100
+++ new/lib/tomlrb/version.rb   2022-05-28 14:09:33.000000000 +0200
@@ -1,3 +1,3 @@
 module Tomlrb
-  VERSION = '2.0.1'.freeze
+  VERSION = '2.0.3'.freeze
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2020-12-20 02:42:11.000000000 +0100
+++ new/metadata        2022-05-28 14:09:33.000000000 +0200
@@ -1,15 +1,29 @@
 --- !ruby/object:Gem::Specification
 name: tomlrb
 version: !ruby/object:Gem::Version
-  version: 2.0.1
+  version: 2.0.3
 platform: ruby
 authors:
 - Francois Bernier
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2020-12-20 00:00:00.000000000 Z
-dependencies: []
+date: 2022-05-28 00:00:00.000000000 Z
+dependencies:
+- !ruby/object:Gem::Dependency
+  name: psych
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - "~>"
+      - !ruby/object:Gem::Version
+        version: '4'
+  type: :development
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - "~>"
+      - !ruby/object:Gem::Version
+        version: '4'
 description: A racc based toml parser
 email:
 - frankbern...@gmail.com
@@ -48,7 +62,7 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.1.4
+rubygems_version: 3.3.7
 signing_key: 
 specification_version: 4
 summary: A racc based toml parser

Reply via email to