wirb 2.2.2 → 3.0.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 +4 -4
- data/CHANGELOG.md +9 -1
- data/COPYING.txt +1 -1
- data/README.md +9 -15
- data/Rakefile +8 -0
- data/lib/wirb/schema_builder.rb +2 -2
- data/lib/wirb/tokenizer.rb +48 -24
- data/lib/wirb/version.rb +1 -1
- data/spec/spec_helper.rb +18 -0
- data/spec/tokenizer_enumerator_spec.rb +151 -613
- data/spec/tokenizer_hash_spec.rb +136 -12
- data/spec/tokenizer_misc_spec.rb +7 -69
- data/spec/tokenizer_nested_spec.rb +22 -8
- data/spec/tokenizer_number_spec.rb +0 -2
- data/spec/tokenizer_object_spec.rb +30 -59
- data/spec/tokenizer_set_spec.rb +65 -44
- data/spec/tokenizer_symbol_spec.rb +123 -57
- data/wirb.gemspec +15 -8
- metadata +103 -20
data/spec/tokenizer_hash_spec.rb
CHANGED
|
@@ -7,21 +7,116 @@ describe tokenizer(__FILE__) do
|
|
|
7
7
|
tokens.should == [
|
|
8
8
|
[:open_hash, "{"],
|
|
9
9
|
[:number, "1"],
|
|
10
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
10
11
|
[:refers, "=>"],
|
|
12
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
11
13
|
[:number, "2"],
|
|
12
14
|
[:close_hash, "}"],
|
|
13
|
-
]
|
|
15
|
+
].compact
|
|
14
16
|
end
|
|
15
17
|
|
|
16
|
-
please do check({:
|
|
17
|
-
|
|
18
|
-
[
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
please do check({:"simplekey" => :value})
|
|
19
|
+
if symbol_hash_keys?
|
|
20
|
+
tokens.should == [
|
|
21
|
+
[:open_hash, "{"],
|
|
22
|
+
[:symbol, "simplekey"],
|
|
23
|
+
[:symbol_prefix, ":"],
|
|
24
|
+
[:whitespace, " "],
|
|
25
|
+
[:symbol_prefix, ":"],
|
|
26
|
+
[:symbol, "value"],
|
|
27
|
+
[:close_hash, "}"],
|
|
28
|
+
]
|
|
29
|
+
else
|
|
30
|
+
tokens.should == [
|
|
31
|
+
[:open_hash, "{"],
|
|
32
|
+
[:symbol_prefix, ":"],
|
|
33
|
+
[:symbol, "simplekey"],
|
|
34
|
+
[:refers, "=>"],
|
|
35
|
+
[:symbol_prefix, ":"],
|
|
36
|
+
[:symbol, "value"],
|
|
37
|
+
[:close_hash, "}"],
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
please do check({:"string key" => :value})
|
|
43
|
+
if symbol_hash_keys?
|
|
44
|
+
tokens.should == [
|
|
45
|
+
[:open_hash, "{"],
|
|
46
|
+
[:open_symbol_string, "\""],
|
|
47
|
+
[:symbol_string, "string key"],
|
|
48
|
+
[:close_symbol_string, "\""],
|
|
49
|
+
[:symbol_prefix, ":"],
|
|
50
|
+
[:whitespace, " "],
|
|
51
|
+
[:symbol_prefix, ":"],
|
|
52
|
+
[:symbol, "value"],
|
|
53
|
+
[:close_hash, "}"],
|
|
54
|
+
]
|
|
55
|
+
else
|
|
56
|
+
tokens.should == [
|
|
57
|
+
[:open_hash, "{"],
|
|
58
|
+
[:symbol_prefix, ":"],
|
|
59
|
+
[:open_symbol_string, "\""],
|
|
60
|
+
[:symbol_string, "string key"],
|
|
61
|
+
[:close_symbol_string, "\""],
|
|
62
|
+
[:refers, "=>"],
|
|
63
|
+
[:symbol_prefix, ":"],
|
|
64
|
+
[:symbol, "value"],
|
|
65
|
+
[:close_hash, "}"],
|
|
66
|
+
]
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
please do check({:Symbol => :value})
|
|
71
|
+
if symbol_hash_keys?
|
|
72
|
+
tokens.should == [
|
|
73
|
+
[:open_hash, "{"],
|
|
74
|
+
[:symbol, "Symbol"],
|
|
75
|
+
[:symbol_prefix, ":"],
|
|
76
|
+
[:whitespace, " "],
|
|
77
|
+
[:symbol_prefix, ":"],
|
|
78
|
+
[:symbol, "value"],
|
|
79
|
+
[:close_hash, "}"],
|
|
80
|
+
]
|
|
81
|
+
else
|
|
82
|
+
tokens.should == [
|
|
83
|
+
[:open_hash, "{"],
|
|
84
|
+
[:symbol_prefix, ":"],
|
|
85
|
+
[:symbol, "Symbol"],
|
|
86
|
+
[:refers, "=>"],
|
|
87
|
+
[:symbol_prefix, ":"],
|
|
88
|
+
[:symbol, "value"],
|
|
89
|
+
[:close_hash, "}"],
|
|
90
|
+
]
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
please do check({Module => :value})
|
|
95
|
+
tokens.should == [
|
|
22
96
|
[:open_hash, "{"],
|
|
23
|
-
[:
|
|
97
|
+
[:class, "Module"],
|
|
98
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
24
99
|
[:refers, "=>"],
|
|
100
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
101
|
+
[:symbol_prefix, ":"],
|
|
102
|
+
[:symbol, "value"],
|
|
103
|
+
[:close_hash, "}"],
|
|
104
|
+
].compact
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
please do check({:hallo => {1=>Set[2,3,4]}})
|
|
108
|
+
set = concise_set? ? [
|
|
109
|
+
[:class, "Set"],
|
|
110
|
+
[:open_array, "["],
|
|
111
|
+
[:number, "2"],
|
|
112
|
+
[:comma, ","],
|
|
113
|
+
[:whitespace, " "],
|
|
114
|
+
[:number, "3"],
|
|
115
|
+
[:comma, ","],
|
|
116
|
+
[:whitespace, " "],
|
|
117
|
+
[:number, "4"],
|
|
118
|
+
[:close_array, "]"],
|
|
119
|
+
] : [
|
|
25
120
|
[:open_object, "#<"],
|
|
26
121
|
[:object_class, "Set"],
|
|
27
122
|
[:object_description_prefix, ":"],
|
|
@@ -36,9 +131,39 @@ describe tokenizer(__FILE__) do
|
|
|
36
131
|
[:number, /\d+/],
|
|
37
132
|
[:close_set, "}"],
|
|
38
133
|
[:close_object, ">"],
|
|
39
|
-
[:close_hash, "}"],
|
|
40
|
-
[:close_hash, "}"],
|
|
41
134
|
]
|
|
135
|
+
|
|
136
|
+
if symbol_hash_keys?
|
|
137
|
+
tokens.should be_like [
|
|
138
|
+
[:open_hash, "{"],
|
|
139
|
+
[:symbol, "hallo"],
|
|
140
|
+
[:symbol_prefix, ":"],
|
|
141
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
142
|
+
[:open_hash, "{"],
|
|
143
|
+
[:number, "1"],
|
|
144
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
145
|
+
[:refers, "=>"],
|
|
146
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
147
|
+
*set,
|
|
148
|
+
[:close_hash, "}"],
|
|
149
|
+
[:close_hash, "}"],
|
|
150
|
+
]
|
|
151
|
+
else
|
|
152
|
+
tokens.should be_like [
|
|
153
|
+
[:open_hash, "{"],
|
|
154
|
+
[:symbol_prefix, ":"],
|
|
155
|
+
[:symbol, "hallo"],
|
|
156
|
+
[:refers, "=>"],
|
|
157
|
+
[:open_hash, "{"],
|
|
158
|
+
[:number, "1"],
|
|
159
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
160
|
+
[:refers, "=>"],
|
|
161
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
162
|
+
*set,
|
|
163
|
+
[:close_hash, "}"],
|
|
164
|
+
[:close_hash, "}"],
|
|
165
|
+
].compact
|
|
166
|
+
end
|
|
42
167
|
end
|
|
43
168
|
|
|
44
169
|
please do check( {1=>2, 3=>8, {} => {}} )
|
|
@@ -58,8 +183,7 @@ describe tokenizer(__FILE__) do
|
|
|
58
183
|
[:refers, "=>"],
|
|
59
184
|
[:refers, "=>"],
|
|
60
185
|
[:refers, "=>"],
|
|
61
|
-
[:whitespace, " "]
|
|
62
|
-
[:whitespace, " "],
|
|
186
|
+
*([[:whitespace, " "]] * (spaced_hashes? ? 8 : 2))
|
|
63
187
|
]
|
|
64
188
|
end
|
|
65
189
|
end
|
data/spec/tokenizer_misc_spec.rb
CHANGED
|
@@ -7,75 +7,13 @@ describe tokenizer(__FILE__) do
|
|
|
7
7
|
after :each do check_value end
|
|
8
8
|
|
|
9
9
|
please do check StringIO.new 'wirb'
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
[:object_variable_prefix, "@"],
|
|
18
|
-
[:object_variable, "append"],
|
|
19
|
-
[:object_description, "="],
|
|
20
|
-
[:false, "false"],
|
|
21
|
-
[:object_description, " "],
|
|
22
|
-
[:object_variable_prefix, "@"],
|
|
23
|
-
[:object_variable, "readable"],
|
|
24
|
-
[:object_description, "="],
|
|
25
|
-
[:true, "true"],
|
|
26
|
-
[:object_description, " "],
|
|
27
|
-
[:object_variable_prefix, "@"],
|
|
28
|
-
[:object_variable, "writable"],
|
|
29
|
-
[:object_description, "="],
|
|
30
|
-
[:true, "true"],
|
|
31
|
-
[:object_description, " "],
|
|
32
|
-
[:object_variable_prefix, "@"],
|
|
33
|
-
[:object_variable, "__data__"],
|
|
34
|
-
[:object_description, "="],
|
|
35
|
-
[:open_object, "#<"],
|
|
36
|
-
[:object_class, "StringIO"],
|
|
37
|
-
[:class_separator, "::"],
|
|
38
|
-
[:object_class, "Data"],
|
|
39
|
-
[:object_description_prefix, ":"],
|
|
40
|
-
[:object_address, OBJECT_ID],
|
|
41
|
-
[:object_description, " "],
|
|
42
|
-
[:object_variable_prefix, "@"],
|
|
43
|
-
[:object_variable, "encoding"],
|
|
44
|
-
[:object_description, "="],
|
|
45
|
-
[:open_object, "#<"],
|
|
46
|
-
[:object_class, "Encoding"],
|
|
47
|
-
[:object_description_prefix, ":"],
|
|
48
|
-
[:object_description, "US-ASCII"],
|
|
49
|
-
[:close_object, ">"],
|
|
50
|
-
[:object_description, " "],
|
|
51
|
-
[:object_variable_prefix, "@"],
|
|
52
|
-
[:object_variable, "lineno"],
|
|
53
|
-
[:object_description, "="],
|
|
54
|
-
[:number, "0"],
|
|
55
|
-
[:object_description, " "],
|
|
56
|
-
[:object_variable_prefix, "@"],
|
|
57
|
-
[:object_variable, "string"],
|
|
58
|
-
[:object_description, "="],
|
|
59
|
-
[:open_string, "\""],
|
|
60
|
-
[:string, "wirb"],
|
|
61
|
-
[:close_string, "\""],
|
|
62
|
-
[:object_description, " "],
|
|
63
|
-
[:object_variable_prefix, "@"],
|
|
64
|
-
[:object_variable, "pos"],
|
|
65
|
-
[:object_description, "="],
|
|
66
|
-
[:number, "0"],
|
|
67
|
-
[:close_object, ">"],
|
|
68
|
-
[:close_object, ">"],
|
|
69
|
-
].sort
|
|
70
|
-
else
|
|
71
|
-
tokens.should be_like [
|
|
72
|
-
[:open_object, "#<"],
|
|
73
|
-
[:object_class, "StringIO"],
|
|
74
|
-
[:object_description_prefix, ":"],
|
|
75
|
-
[:object_address, OBJECT_ID],
|
|
76
|
-
[:close_object, ">"],
|
|
77
|
-
]
|
|
78
|
-
end
|
|
10
|
+
tokens.should be_like [
|
|
11
|
+
[:open_object, "#<"],
|
|
12
|
+
[:object_class, "StringIO"],
|
|
13
|
+
[:object_description_prefix, ":"],
|
|
14
|
+
[:object_address, OBJECT_ID],
|
|
15
|
+
[:close_object, ">"],
|
|
16
|
+
]
|
|
79
17
|
end
|
|
80
18
|
|
|
81
19
|
please do check Date.today
|
|
@@ -4,6 +4,20 @@ describe tokenizer(__FILE__) do
|
|
|
4
4
|
after :each do check_value end
|
|
5
5
|
|
|
6
6
|
please do check [2,'sdf',:hallosfe, /34jf3/, [[[[]]]], {{5=> "4"} => {Set.new => Object.new}}]
|
|
7
|
+
set = concise_set? ? [
|
|
8
|
+
[:class, "Set"],
|
|
9
|
+
[:open_array, "["],
|
|
10
|
+
[:close_array, "]"],
|
|
11
|
+
] : [
|
|
12
|
+
[:open_object, "#<"],
|
|
13
|
+
[:object_class, "Set"],
|
|
14
|
+
[:object_description_prefix, ":"],
|
|
15
|
+
[:whitespace, " "],
|
|
16
|
+
[:open_set, "{"],
|
|
17
|
+
[:close_set, "}"],
|
|
18
|
+
[:close_object, ">"],
|
|
19
|
+
]
|
|
20
|
+
|
|
7
21
|
tokens.should be_like [
|
|
8
22
|
[:open_array, "["],
|
|
9
23
|
[:number, "2"],
|
|
@@ -36,21 +50,21 @@ describe tokenizer(__FILE__) do
|
|
|
36
50
|
[:open_hash, "{"],
|
|
37
51
|
[:open_hash, "{"],
|
|
38
52
|
[:number, "5"],
|
|
53
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
39
54
|
[:refers, "=>"],
|
|
55
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
40
56
|
[:open_string, "\""],
|
|
41
57
|
[:string, "4"],
|
|
42
58
|
[:close_string, "\""],
|
|
43
59
|
[:close_hash, "}"],
|
|
60
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
44
61
|
[:refers, "=>"],
|
|
62
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
45
63
|
[:open_hash, "{"],
|
|
46
|
-
|
|
47
|
-
[:
|
|
48
|
-
[:object_description_prefix, ":"],
|
|
49
|
-
[:whitespace, " "],
|
|
50
|
-
[:open_set, "{"],
|
|
51
|
-
[:close_set, "}"],
|
|
52
|
-
[:close_object, ">"],
|
|
64
|
+
*set,
|
|
65
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
53
66
|
[:refers, "=>"],
|
|
67
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
54
68
|
[:open_object, "#<"],
|
|
55
69
|
[:object_class, "Object"],
|
|
56
70
|
[:object_description_prefix, ":"],
|
|
@@ -59,6 +73,6 @@ describe tokenizer(__FILE__) do
|
|
|
59
73
|
[:close_hash, "}"],
|
|
60
74
|
[:close_hash, "}"],
|
|
61
75
|
[:close_array, "]"],
|
|
62
|
-
]
|
|
76
|
+
].compact
|
|
63
77
|
end
|
|
64
78
|
end
|
|
@@ -14,57 +14,30 @@ describe tokenizer(__FILE__) do
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
please do check proc{}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
]
|
|
28
|
-
else
|
|
29
|
-
tokens.should be_like [
|
|
30
|
-
[:open_object, "#<"],
|
|
31
|
-
[:object_class, "Proc"],
|
|
32
|
-
[:object_description_prefix, ":"],
|
|
33
|
-
[:object_address, OBJECT_ID],
|
|
34
|
-
[:object_line_prefix, "@"],
|
|
35
|
-
[:object_line, /.*tokenizer_object_spec.rb:/],
|
|
36
|
-
[:object_line_number, /\d+/],
|
|
37
|
-
[:close_object, ">"],
|
|
38
|
-
]
|
|
39
|
-
end
|
|
17
|
+
tokens.should be_like [
|
|
18
|
+
[:open_object, "#<"],
|
|
19
|
+
[:object_class, "Proc"],
|
|
20
|
+
[:object_description_prefix, ":"],
|
|
21
|
+
[:object_address, OBJECT_ID],
|
|
22
|
+
[:object_line_prefix, " "], # changed in 2.7
|
|
23
|
+
[:object_line, /.*tokenizer_object_spec.rb:/],
|
|
24
|
+
[:object_line_number, /\d+/],
|
|
25
|
+
[:close_object, ">"],
|
|
26
|
+
]
|
|
40
27
|
end
|
|
41
28
|
|
|
42
29
|
please do check lambda{}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
]
|
|
55
|
-
else
|
|
56
|
-
tokens.should be_like [
|
|
57
|
-
[:open_object, "#<"],
|
|
58
|
-
[:object_class, "Proc"],
|
|
59
|
-
[:object_description_prefix, ":"],
|
|
60
|
-
[:object_address, OBJECT_ID],
|
|
61
|
-
[:object_line_prefix, "@"],
|
|
62
|
-
[:object_line, /.*tokenizer_object_spec.rb:/],
|
|
63
|
-
[:object_line_number, /\d+/],
|
|
64
|
-
[:object_description, " (lambda)"],
|
|
65
|
-
[:close_object, ">"],
|
|
66
|
-
]
|
|
67
|
-
end
|
|
30
|
+
tokens.should be_like [
|
|
31
|
+
[:open_object, "#<"],
|
|
32
|
+
[:object_class, "Proc"],
|
|
33
|
+
[:object_description_prefix, ":"],
|
|
34
|
+
[:object_address, OBJECT_ID],
|
|
35
|
+
[:object_line_prefix, " "], # changed in 2.7
|
|
36
|
+
[:object_line, /.*tokenizer_object_spec.rb:/],
|
|
37
|
+
[:object_line_number, /\d+/],
|
|
38
|
+
[:object_description, " (lambda)"],
|
|
39
|
+
[:close_object, ">"],
|
|
40
|
+
]
|
|
68
41
|
end
|
|
69
42
|
|
|
70
43
|
please do check StringScanner.new('wirb')
|
|
@@ -80,19 +53,17 @@ describe tokenizer(__FILE__) do
|
|
|
80
53
|
]
|
|
81
54
|
end
|
|
82
55
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
]
|
|
92
|
-
end
|
|
56
|
+
please do check binding
|
|
57
|
+
tokens.should be_like [
|
|
58
|
+
[:open_object, "#<"],
|
|
59
|
+
[:object_class, "Binding"],
|
|
60
|
+
[:object_description_prefix, ":"],
|
|
61
|
+
[:object_address, OBJECT_ID],
|
|
62
|
+
[:close_object, ">"],
|
|
63
|
+
]
|
|
93
64
|
end
|
|
94
65
|
|
|
95
|
-
if RubyEngine.
|
|
66
|
+
if RubyEngine.truffle?
|
|
96
67
|
please do check STDOUT
|
|
97
68
|
tokens.should == [
|
|
98
69
|
[:open_object, "#<"],
|
data/spec/tokenizer_set_spec.rb
CHANGED
|
@@ -4,50 +4,71 @@ describe tokenizer(__FILE__) do
|
|
|
4
4
|
after :each do check_value end
|
|
5
5
|
|
|
6
6
|
please do check Set[2,3,4]
|
|
7
|
-
|
|
8
|
-
[
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
[
|
|
22
|
-
|
|
7
|
+
if concise_set?
|
|
8
|
+
tokens.should be_like [
|
|
9
|
+
[:class, "Set"],
|
|
10
|
+
[:open_array, "["],
|
|
11
|
+
[:number, "2"],
|
|
12
|
+
[:comma, ","],
|
|
13
|
+
[:whitespace, " "],
|
|
14
|
+
[:number, "3"],
|
|
15
|
+
[:comma, ","],
|
|
16
|
+
[:whitespace, " "],
|
|
17
|
+
[:number, "4"],
|
|
18
|
+
[:close_array, "]"],
|
|
19
|
+
]
|
|
20
|
+
else
|
|
21
|
+
tokens.should be_like [
|
|
22
|
+
[:open_object, "#<"],
|
|
23
|
+
[:object_class, "Set"],
|
|
24
|
+
[:object_description_prefix, ":"],
|
|
25
|
+
[:whitespace, " "],
|
|
26
|
+
[:open_set, "{"],
|
|
27
|
+
[:number, /\d/],
|
|
28
|
+
[:comma, ","],
|
|
29
|
+
[:whitespace, " "],
|
|
30
|
+
[:number, /\d/],
|
|
31
|
+
[:comma, ","],
|
|
32
|
+
[:whitespace, " "],
|
|
33
|
+
[:number, /\d/],
|
|
34
|
+
[:close_set, "}"],
|
|
35
|
+
[:close_object, ">"],
|
|
36
|
+
]
|
|
37
|
+
end
|
|
23
38
|
end
|
|
24
39
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
40
|
+
unless concise_set?
|
|
41
|
+
please do check Set[[2,3], {1=>{2=>3}}]
|
|
42
|
+
tokens.should be_sorted [
|
|
43
|
+
[:close_array, "]"],
|
|
44
|
+
[:close_hash, "}"],
|
|
45
|
+
[:close_hash, "}"],
|
|
46
|
+
[:close_object, ">"],
|
|
47
|
+
[:close_set, "}"],
|
|
48
|
+
[:comma, ","],
|
|
49
|
+
[:comma, ","],
|
|
50
|
+
[:number, "1"],
|
|
51
|
+
[:number, "2"],
|
|
52
|
+
[:number, "2"],
|
|
53
|
+
[:number, "3"],
|
|
54
|
+
[:number, "3"],
|
|
55
|
+
[:object_class, "Set"],
|
|
56
|
+
[:object_description_prefix, ":"],
|
|
57
|
+
[:open_array, "["],
|
|
58
|
+
[:open_hash, "{"],
|
|
59
|
+
[:open_hash, "{"],
|
|
60
|
+
[:open_object, "#<"],
|
|
61
|
+
[:open_set, "{"],
|
|
62
|
+
[:refers, "=>"],
|
|
63
|
+
[:refers, "=>"],
|
|
64
|
+
[:whitespace, " "],
|
|
65
|
+
[:whitespace, " "],
|
|
66
|
+
[:whitespace, " "],
|
|
67
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
68
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
69
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
70
|
+
([:whitespace, " "] if spaced_hashes?),
|
|
71
|
+
].compact
|
|
72
|
+
end
|
|
73
|
+
end
|
|
53
74
|
end
|