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.
@@ -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({:hallo => {1=>Set[2,3,4]}})
17
- tokens.should be_like [
18
- [:open_hash, "{"],
19
- [:symbol_prefix, ":"],
20
- [:symbol, "hallo"],
21
- [:refers, "=>"],
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
- [:number, "1"],
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
@@ -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
- if RubyEngine.rbx?
11
- tokens.sort.should be_like [
12
- [:open_object, "#<"],
13
- [:object_class, "StringIO"],
14
- [:object_description_prefix, ":"],
15
- [:object_address, OBJECT_ID],
16
- [:object_description, " "],
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
- [:open_object, "#<"],
47
- [:object_class, "Set"],
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
@@ -1,5 +1,3 @@
1
- require 'complex'
2
-
3
1
  describe tokenizer(__FILE__) do
4
2
  after :each do check_value end
5
3
 
@@ -14,57 +14,30 @@ describe tokenizer(__FILE__) do
14
14
  end
15
15
 
16
16
  please do check proc{}
17
- if RUBY_VERSION >= "2.7"
18
- tokens.should be_like [
19
- [:open_object, "#<"],
20
- [:object_class, "Proc"],
21
- [:object_description_prefix, ":"],
22
- [:object_address, OBJECT_ID],
23
- [:object_line_prefix, " "], # changed in 2.7
24
- [:object_line, /.*tokenizer_object_spec.rb:/],
25
- [:object_line_number, /\d+/],
26
- [:close_object, ">"],
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
- if RUBY_VERSION >= "2.7"
44
- tokens.should be_like [
45
- [:open_object, "#<"],
46
- [:object_class, "Proc"],
47
- [:object_description_prefix, ":"],
48
- [:object_address, OBJECT_ID],
49
- [:object_line_prefix, " "], # changed in 2.7
50
- [:object_line, /.*tokenizer_object_spec.rb:/],
51
- [:object_line_number, /\d+/],
52
- [:object_description, " (lambda)"],
53
- [:close_object, ">"],
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
- unless RubyEngine.rbx? # rubinius provides more information
84
- please do check binding
85
- tokens.should be_like [
86
- [:open_object, "#<"],
87
- [:object_class, "Binding"],
88
- [:object_description_prefix, ":"],
89
- [:object_address, OBJECT_ID],
90
- [:close_object, ">"],
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.rbx?
66
+ if RubyEngine.truffle?
96
67
  please do check STDOUT
97
68
  tokens.should == [
98
69
  [:open_object, "#<"],
@@ -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
- tokens.should be_like [
8
- [:open_object, "#<"],
9
- [:object_class, "Set"],
10
- [:object_description_prefix, ":"],
11
- [:whitespace, " "],
12
- [:open_set, "{"],
13
- [:number, /\d/],
14
- [:comma, ","],
15
- [:whitespace, " "],
16
- [:number, /\d/],
17
- [:comma, ","],
18
- [:whitespace, " "],
19
- [:number, /\d/],
20
- [:close_set, "}"],
21
- [:close_object, ">"],
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
- please do check Set[[2,3], {1=>{2=>3}}]
26
- tokens.should be_sorted [
27
- [:close_array, "]"],
28
- [:close_hash, "}"],
29
- [:close_hash, "}"],
30
- [:close_object, ">"],
31
- [:close_set, "}"],
32
- [:comma, ","],
33
- [:comma, ","],
34
- [:number, "1"],
35
- [:number, "2"],
36
- [:number, "2"],
37
- [:number, "3"],
38
- [:number, "3"],
39
- [:object_class, "Set"],
40
- [:object_description_prefix, ":"],
41
- [:open_array, "["],
42
- [:open_hash, "{"],
43
- [:open_hash, "{"],
44
- [:open_object, "#<"],
45
- [:open_set, "{"],
46
- [:refers, "=>"],
47
- [:refers, "=>"],
48
- [:whitespace, " "],
49
- [:whitespace, " "],
50
- [:whitespace, " "],
51
- ]
52
- end
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