psych 2.1.0-java → 2.1.1-java

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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/Gemfile +3 -0
  4. data/Mavenfile +7 -0
  5. data/bin/console +7 -0
  6. data/bin/setup +6 -0
  7. data/ext/java/PsychEmitter.java +345 -0
  8. data/ext/java/PsychLibrary.java +93 -0
  9. data/ext/java/PsychParser.java +399 -0
  10. data/ext/java/PsychToRuby.java +79 -0
  11. data/ext/java/PsychYamlTree.java +55 -0
  12. data/ext/psych/.gitignore +11 -0
  13. data/lib/psych.rb +2 -2
  14. data/lib/psych/visitors/to_ruby.rb +2 -2
  15. data/psych.gemspec +39 -0
  16. metadata +19 -53
  17. data/test/psych/handlers/test_recorder.rb +0 -26
  18. data/test/psych/helper.rb +0 -122
  19. data/test/psych/json/test_stream.rb +0 -110
  20. data/test/psych/nodes/test_enumerable.rb +0 -44
  21. data/test/psych/test_alias_and_anchor.rb +0 -97
  22. data/test/psych/test_array.rb +0 -58
  23. data/test/psych/test_boolean.rb +0 -37
  24. data/test/psych/test_class.rb +0 -37
  25. data/test/psych/test_coder.rb +0 -207
  26. data/test/psych/test_date_time.rb +0 -39
  27. data/test/psych/test_deprecated.rb +0 -215
  28. data/test/psych/test_document.rb +0 -47
  29. data/test/psych/test_emitter.rb +0 -112
  30. data/test/psych/test_encoding.rb +0 -269
  31. data/test/psych/test_exception.rb +0 -158
  32. data/test/psych/test_hash.rb +0 -95
  33. data/test/psych/test_json_tree.rb +0 -66
  34. data/test/psych/test_merge_keys.rb +0 -181
  35. data/test/psych/test_nil.rb +0 -19
  36. data/test/psych/test_null.rb +0 -20
  37. data/test/psych/test_numeric.rb +0 -46
  38. data/test/psych/test_object.rb +0 -45
  39. data/test/psych/test_object_references.rb +0 -72
  40. data/test/psych/test_omap.rb +0 -76
  41. data/test/psych/test_parser.rb +0 -340
  42. data/test/psych/test_psych.rb +0 -184
  43. data/test/psych/test_safe_load.rb +0 -98
  44. data/test/psych/test_scalar.rb +0 -12
  45. data/test/psych/test_scalar_scanner.rb +0 -111
  46. data/test/psych/test_serialize_subclasses.rb +0 -39
  47. data/test/psych/test_set.rb +0 -50
  48. data/test/psych/test_stream.rb +0 -94
  49. data/test/psych/test_string.rb +0 -231
  50. data/test/psych/test_struct.rb +0 -50
  51. data/test/psych/test_symbol.rb +0 -26
  52. data/test/psych/test_tainted.rb +0 -131
  53. data/test/psych/test_to_yaml_properties.rb +0 -64
  54. data/test/psych/test_tree_builder.rb +0 -80
  55. data/test/psych/test_yaml.rb +0 -1293
  56. data/test/psych/test_yamldbm.rb +0 -193
  57. data/test/psych/test_yamlstore.rb +0 -86
  58. data/test/psych/visitors/test_depth_first.rb +0 -50
  59. data/test/psych/visitors/test_emitter.rb +0 -145
  60. data/test/psych/visitors/test_to_ruby.rb +0 -332
  61. data/test/psych/visitors/test_yaml_tree.rb +0 -180
@@ -1,332 +0,0 @@
1
- # coding: US-ASCII
2
- # frozen_string_literal: false
3
- require 'psych/helper'
4
-
5
- module Psych
6
- module Visitors
7
- class TestToRuby < TestCase
8
- def setup
9
- super
10
- @visitor = ToRuby.create
11
- end
12
-
13
- def test_object
14
- mapping = Nodes::Mapping.new nil, "!ruby/object"
15
- mapping.children << Nodes::Scalar.new('foo')
16
- mapping.children << Nodes::Scalar.new('bar')
17
-
18
- o = mapping.to_ruby
19
- assert_equal 'bar', o.instance_variable_get(:@foo)
20
- end
21
-
22
- def test_tz_00_00_loads_without_error
23
- assert Psych.load('1900-01-01T00:00:00+00:00')
24
- end
25
-
26
- def test_legacy_struct
27
- foo = Struct.new('AWESOME', :bar)
28
- assert_equal foo.new('baz'), Psych.load(<<-eoyml)
29
- !ruby/struct:AWESOME
30
- bar: baz
31
- eoyml
32
- end
33
-
34
- def test_binary
35
- gif = "GIF89a\f\x00\f\x00\x84\x00\x00\xFF\xFF\xF7\xF5\xF5\xEE\xE9\xE9\xE5fff\x00\x00\x00\xE7\xE7\xE7^^^\xF3\xF3\xED\x8E\x8E\x8E\xE0\xE0\xE0\x9F\x9F\x9F\x93\x93\x93\xA7\xA7\xA7\x9E\x9E\x9Eiiiccc\xA3\xA3\xA3\x84\x84\x84\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9!\xFE\x0EMade with GIMP\x00,\x00\x00\x00\x00\f\x00\f\x00\x00\x05, \x8E\x810\x9E\xE3@\x14\xE8i\x10\xC4\xD1\x8A\b\x1C\xCF\x80M$z\xEF\xFF0\x85p\xB8\xB01f\r\e\xCE\x01\xC3\x01\x1E\x10' \x82\n\x01\x00;"
36
-
37
- hash = Psych.load(<<-'eoyaml')
38
- canonical: !!binary "\
39
- R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\
40
- OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\
41
- +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\
42
- AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="
43
- generic: !binary |
44
- R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
45
- OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
46
- +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
47
- AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=
48
- description:
49
- The binary value above is a tiny arrow encoded as a gif image.
50
- eoyaml
51
- assert_equal gif, hash['canonical']
52
- assert_equal gif, hash['generic']
53
- end
54
-
55
- A = Struct.new(:foo)
56
-
57
- def test_struct
58
- s = A.new('bar')
59
-
60
- mapping = Nodes::Mapping.new nil, "!ruby/struct:#{s.class}"
61
- mapping.children << Nodes::Scalar.new('foo')
62
- mapping.children << Nodes::Scalar.new('bar')
63
-
64
- ruby = mapping.to_ruby
65
-
66
- assert_equal s.class, ruby.class
67
- assert_equal s.foo, ruby.foo
68
- assert_equal s, ruby
69
- end
70
-
71
- def test_anon_struct_legacy
72
- s = Struct.new(:foo).new('bar')
73
-
74
- mapping = Nodes::Mapping.new nil, '!ruby/struct:'
75
- mapping.children << Nodes::Scalar.new('foo')
76
- mapping.children << Nodes::Scalar.new('bar')
77
-
78
- assert_equal s.foo, mapping.to_ruby.foo
79
- end
80
-
81
- def test_anon_struct
82
- s = Struct.new(:foo).new('bar')
83
-
84
- mapping = Nodes::Mapping.new nil, '!ruby/struct'
85
- mapping.children << Nodes::Scalar.new('foo')
86
- mapping.children << Nodes::Scalar.new('bar')
87
-
88
- assert_equal s.foo, mapping.to_ruby.foo
89
- end
90
-
91
- def test_exception
92
- exc = ::Exception.new 'hello'
93
-
94
- mapping = Nodes::Mapping.new nil, '!ruby/exception'
95
- mapping.children << Nodes::Scalar.new('message')
96
- mapping.children << Nodes::Scalar.new('hello')
97
-
98
- ruby = mapping.to_ruby
99
-
100
- assert_equal exc.class, ruby.class
101
- assert_equal exc.message, ruby.message
102
- end
103
-
104
- def test_regexp
105
- node = Nodes::Scalar.new('/foo/', nil, '!ruby/regexp')
106
- assert_equal(/foo/, node.to_ruby)
107
-
108
- node = Nodes::Scalar.new('/foo/m', nil, '!ruby/regexp')
109
- assert_equal(/foo/m, node.to_ruby)
110
-
111
- node = Nodes::Scalar.new('/foo/ix', nil, '!ruby/regexp')
112
- assert_equal(/foo/ix, node.to_ruby)
113
- end
114
-
115
- def test_time
116
- now = Time.now
117
- zone = now.strftime('%z')
118
- zone = " #{zone[0,3]}:#{zone[3,5]}"
119
-
120
- formatted = now.strftime("%Y-%m-%d %H:%M:%S.%9N") + zone
121
-
122
- assert_equal now, Nodes::Scalar.new(formatted).to_ruby
123
- end
124
-
125
- def test_time_utc
126
- now = Time.now.utc
127
- formatted = now.strftime("%Y-%m-%d %H:%M:%S") +
128
- ".%09dZ" % [now.nsec]
129
-
130
- assert_equal now, Nodes::Scalar.new(formatted).to_ruby
131
- end
132
-
133
- def test_time_utc_no_z
134
- now = Time.now.utc
135
- formatted = now.strftime("%Y-%m-%d %H:%M:%S") +
136
- ".%09d" % [now.nsec]
137
-
138
- assert_equal now, Nodes::Scalar.new(formatted).to_ruby
139
- end
140
-
141
- def test_date
142
- d = '1980-12-16'
143
- actual = Date.strptime(d, '%Y-%m-%d')
144
-
145
- date = Nodes::Scalar.new(d, nil, 'tag:yaml.org,2002:timestamp', false)
146
-
147
- assert_equal actual, date.to_ruby
148
- end
149
-
150
- def test_rational
151
- mapping = Nodes::Mapping.new nil, '!ruby/object:Rational'
152
- mapping.children << Nodes::Scalar.new('denominator')
153
- mapping.children << Nodes::Scalar.new('2')
154
- mapping.children << Nodes::Scalar.new('numerator')
155
- mapping.children << Nodes::Scalar.new('1')
156
-
157
- assert_equal Rational(1,2), mapping.to_ruby
158
- end
159
-
160
- def test_complex
161
- mapping = Nodes::Mapping.new nil, '!ruby/object:Complex'
162
- mapping.children << Nodes::Scalar.new('image')
163
- mapping.children << Nodes::Scalar.new('2')
164
- mapping.children << Nodes::Scalar.new('real')
165
- mapping.children << Nodes::Scalar.new('1')
166
-
167
- assert_equal Complex(1,2), mapping.to_ruby
168
- end
169
-
170
- def test_complex_string
171
- node = Nodes::Scalar.new '3+4i', nil, "!ruby/object:Complex"
172
- assert_equal Complex(3, 4), node.to_ruby
173
- end
174
-
175
- def test_rational_string
176
- node = Nodes::Scalar.new '1/2', nil, "!ruby/object:Rational"
177
- assert_equal Rational(1, 2), node.to_ruby
178
- end
179
-
180
- def test_range_string
181
- node = Nodes::Scalar.new '1..2', nil, "!ruby/range"
182
- assert_equal 1..2, node.to_ruby
183
- end
184
-
185
- def test_range_string_triple
186
- node = Nodes::Scalar.new '1...3', nil, "!ruby/range"
187
- assert_equal 1...3, node.to_ruby
188
- end
189
-
190
- def test_integer
191
- i = Nodes::Scalar.new('1', nil, 'tag:yaml.org,2002:int')
192
- assert_equal 1, i.to_ruby
193
-
194
- assert_equal 1, Nodes::Scalar.new('1').to_ruby
195
-
196
- i = Nodes::Scalar.new('-1', nil, 'tag:yaml.org,2002:int')
197
- assert_equal(-1, i.to_ruby)
198
-
199
- assert_equal(-1, Nodes::Scalar.new('-1').to_ruby)
200
- assert_equal 1, Nodes::Scalar.new('+1').to_ruby
201
- end
202
-
203
- def test_int_ignore
204
- ['1,000', '1_000'].each do |num|
205
- i = Nodes::Scalar.new(num, nil, 'tag:yaml.org,2002:int')
206
- assert_equal 1000, i.to_ruby
207
-
208
- assert_equal 1000, Nodes::Scalar.new(num).to_ruby
209
- end
210
- end
211
-
212
- def test_float_ignore
213
- ['1,000.3', '1_000.3'].each do |num|
214
- i = Nodes::Scalar.new(num, nil, 'tag:yaml.org,2002:float')
215
- assert_equal 1000.3, i.to_ruby
216
-
217
- i = Nodes::Scalar.new(num, nil, '!float')
218
- assert_equal 1000.3, i.to_ruby
219
-
220
- assert_equal 1000.3, Nodes::Scalar.new(num).to_ruby
221
- end
222
- end
223
-
224
- # http://yaml.org/type/bool.html
225
- def test_boolean_true
226
- %w{ yes Yes YES true True TRUE on On ON }.each do |t|
227
- i = Nodes::Scalar.new(t, nil, 'tag:yaml.org,2002:bool')
228
- assert_equal true, i.to_ruby
229
- assert_equal true, Nodes::Scalar.new(t).to_ruby
230
- end
231
- end
232
-
233
- # http://yaml.org/type/bool.html
234
- def test_boolean_false
235
- %w{ no No NO false False FALSE off Off OFF }.each do |t|
236
- i = Nodes::Scalar.new(t, nil, 'tag:yaml.org,2002:bool')
237
- assert_equal false, i.to_ruby
238
- assert_equal false, Nodes::Scalar.new(t).to_ruby
239
- end
240
- end
241
-
242
- def test_float
243
- i = Nodes::Scalar.new('12', nil, 'tag:yaml.org,2002:float')
244
- assert_equal 12.0, i.to_ruby
245
-
246
- i = Nodes::Scalar.new('1.2', nil, 'tag:yaml.org,2002:float')
247
- assert_equal 1.2, i.to_ruby
248
-
249
- i = Nodes::Scalar.new('1.2')
250
- assert_equal 1.2, i.to_ruby
251
-
252
- assert_equal 1, Nodes::Scalar.new('.Inf').to_ruby.infinite?
253
- assert_equal 1, Nodes::Scalar.new('.inf').to_ruby.infinite?
254
- assert_equal 1, Nodes::Scalar.new('.Inf', nil, 'tag:yaml.org,2002:float').to_ruby.infinite?
255
-
256
- assert_equal(-1, Nodes::Scalar.new('-.inf').to_ruby.infinite?)
257
- assert_equal(-1, Nodes::Scalar.new('-.Inf').to_ruby.infinite?)
258
- assert_equal(-1, Nodes::Scalar.new('-.Inf', nil, 'tag:yaml.org,2002:float').to_ruby.infinite?)
259
-
260
- assert Nodes::Scalar.new('.NaN').to_ruby.nan?
261
- assert Nodes::Scalar.new('.NaN', nil, 'tag:yaml.org,2002:float').to_ruby.nan?
262
- end
263
-
264
- def test_exp_float
265
- exp = 1.2e+30
266
-
267
- i = Nodes::Scalar.new(exp.to_s, nil, 'tag:yaml.org,2002:float')
268
- assert_equal exp, i.to_ruby
269
-
270
- assert_equal exp, Nodes::Scalar.new(exp.to_s).to_ruby
271
- end
272
-
273
- def test_scalar
274
- scalar = Nodes::Scalar.new('foo')
275
- assert_equal 'foo', @visitor.accept(scalar)
276
- assert_equal 'foo', scalar.to_ruby
277
- end
278
-
279
- def test_sequence
280
- seq = Nodes::Sequence.new
281
- seq.children << Nodes::Scalar.new('foo')
282
- seq.children << Nodes::Scalar.new('bar')
283
-
284
- assert_equal %w{ foo bar }, seq.to_ruby
285
- end
286
-
287
- def test_mapping
288
- mapping = Nodes::Mapping.new
289
- mapping.children << Nodes::Scalar.new('foo')
290
- mapping.children << Nodes::Scalar.new('bar')
291
- assert_equal({'foo' => 'bar'}, mapping.to_ruby)
292
- end
293
-
294
- def test_document
295
- doc = Nodes::Document.new
296
- doc.children << Nodes::Scalar.new('foo')
297
- assert_equal 'foo', doc.to_ruby
298
- end
299
-
300
- def test_stream
301
- a = Nodes::Document.new
302
- a.children << Nodes::Scalar.new('foo')
303
-
304
- b = Nodes::Document.new
305
- b.children << Nodes::Scalar.new('bar')
306
-
307
- stream = Nodes::Stream.new
308
- stream.children << a
309
- stream.children << b
310
-
311
- assert_equal %w{ foo bar }, stream.to_ruby
312
- end
313
-
314
- def test_alias
315
- seq = Nodes::Sequence.new
316
- seq.children << Nodes::Scalar.new('foo', 'A')
317
- seq.children << Nodes::Alias.new('A')
318
-
319
- list = seq.to_ruby
320
- assert_equal %w{ foo foo }, list
321
- assert_equal list[0].object_id, list[1].object_id
322
- end
323
-
324
- def test_mapping_with_str_tag
325
- mapping = Nodes::Mapping.new(nil, '!strawberry')
326
- mapping.children << Nodes::Scalar.new('foo')
327
- mapping.children << Nodes::Scalar.new('bar')
328
- assert_equal({'foo' => 'bar'}, mapping.to_ruby)
329
- end
330
- end
331
- end
332
- end
@@ -1,180 +0,0 @@
1
- # frozen_string_literal: false
2
- require 'psych/helper'
3
-
4
- module Psych
5
- module Visitors
6
- class TestYAMLTree < TestCase
7
- def setup
8
- super
9
- @v = Visitors::YAMLTree.create
10
- end
11
-
12
- def test_tree_can_be_called_twice
13
- @v.start
14
- @v << Object.new
15
- t = @v.tree
16
- assert_equal t, @v.tree
17
- end
18
-
19
- def test_yaml_tree_can_take_an_emitter
20
- io = StringIO.new
21
- e = Psych::Emitter.new io
22
- v = Visitors::YAMLTree.create({}, e)
23
- v.start
24
- v << "hello world"
25
- v.finish
26
-
27
- assert_match "hello world", io.string
28
- end
29
-
30
- def test_binary_formatting
31
- gif = "GIF89a\f\x00\f\x00\x84\x00\x00\xFF\xFF\xF7\xF5\xF5\xEE\xE9\xE9\xE5fff\x00\x00\x00\xE7\xE7\xE7^^^\xF3\xF3\xED\x8E\x8E\x8E\xE0\xE0\xE0\x9F\x9F\x9F\x93\x93\x93\xA7\xA7\xA7\x9E\x9E\x9Eiiiccc\xA3\xA3\xA3\x84\x84\x84\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9\xFF\xFE\xF9!\xFE\x0EMade with GIMP\x00,\x00\x00\x00\x00\f\x00\f\x00\x00\x05, \x8E\x810\x9E\xE3@\x14\xE8i\x10\xC4\xD1\x8A\b\x1C\xCF\x80M$z\xEF\xFF0\x85p\xB8\xB01f\r\e\xCE\x01\xC3\x01\x1E\x10' \x82\n\x01\x00;"
32
- @v << gif
33
- scalar = @v.tree.children.first.children.first
34
- assert_equal Psych::Nodes::Scalar::LITERAL, scalar.style
35
- end
36
-
37
- def test_object_has_no_class
38
- yaml = Psych.dump(Object.new)
39
- assert(Psych.dump(Object.new) !~ /Object/, yaml)
40
- end
41
-
42
- def test_struct_const
43
- foo = Struct.new("Foo", :bar)
44
- assert_cycle foo.new('bar')
45
- Struct.instance_eval { remove_const(:Foo) }
46
- end
47
-
48
- A = Struct.new(:foo)
49
-
50
- def test_struct
51
- assert_cycle A.new('bar')
52
- end
53
-
54
- def test_struct_anon
55
- s = Struct.new(:foo).new('bar')
56
- obj = Psych.load(Psych.dump(s))
57
- assert_equal s.foo, obj.foo
58
- end
59
-
60
- def test_override_method
61
- s = Struct.new(:method).new('override')
62
- obj = Psych.load(Psych.dump(s))
63
- assert_equal s.method, obj.method
64
- end
65
-
66
- def test_exception
67
- ex = Exception.new 'foo'
68
- loaded = Psych.load(Psych.dump(ex))
69
-
70
- assert_equal ex.message, loaded.message
71
- assert_equal ex.class, loaded.class
72
- end
73
-
74
- def test_regexp
75
- assert_cycle(/foo/)
76
- assert_cycle(/foo/i)
77
- assert_cycle(/foo/mx)
78
- end
79
-
80
- def test_time
81
- t = Time.now
82
- assert_equal t, Psych.load(Psych.dump(t))
83
- end
84
-
85
- def test_date
86
- date = Date.strptime('2002-12-14', '%Y-%m-%d')
87
- assert_cycle date
88
- end
89
-
90
- def test_rational
91
- assert_cycle Rational(1,2)
92
- end
93
-
94
- def test_complex
95
- assert_cycle Complex(1,2)
96
- end
97
-
98
- def test_scalar
99
- assert_cycle 'foo'
100
- assert_cycle ':foo'
101
- assert_cycle ''
102
- assert_cycle ':'
103
- end
104
-
105
- def test_boolean
106
- assert_cycle true
107
- assert_cycle 'true'
108
- assert_cycle false
109
- assert_cycle 'false'
110
- end
111
-
112
- def test_range_inclusive
113
- assert_cycle 1..2
114
- end
115
-
116
- def test_range_exclusive
117
- assert_cycle 1...2
118
- end
119
-
120
- def test_anon_class
121
- assert_raises(TypeError) do
122
- @v.accept Class.new
123
- end
124
-
125
- assert_raises(TypeError) do
126
- Psych.dump(Class.new)
127
- end
128
- end
129
-
130
- def test_hash
131
- assert_cycle('a' => 'b')
132
- end
133
-
134
- def test_list
135
- assert_cycle(%w{ a b })
136
- assert_cycle([1, 2.2])
137
- end
138
-
139
- def test_symbol
140
- assert_cycle :foo
141
- end
142
-
143
- def test_int
144
- assert_cycle 1
145
- assert_cycle(-1)
146
- assert_cycle '1'
147
- assert_cycle '-1'
148
- end
149
-
150
- def test_float
151
- assert_cycle 1.2
152
- assert_cycle '1.2'
153
-
154
- assert Psych.load(Psych.dump(0.0 / 0.0)).nan?
155
- assert_equal 1, Psych.load(Psych.dump(1 / 0.0)).infinite?
156
- assert_equal(-1, Psych.load(Psych.dump(-1 / 0.0)).infinite?)
157
- end
158
-
159
- def test_string
160
- assert_match(/'017'/, Psych.dump({'a' => '017'}))
161
- assert_match(/'019'/, Psych.dump({'a' => '019'}))
162
- assert_match(/'01818'/, Psych.dump({'a' => '01818'}))
163
- end
164
-
165
- # http://yaml.org/type/null.html
166
- def test_nil
167
- assert_cycle nil
168
- assert_equal nil, Psych.load('null')
169
- assert_equal nil, Psych.load('Null')
170
- assert_equal nil, Psych.load('NULL')
171
- assert_equal nil, Psych.load('~')
172
- assert_equal({'foo' => nil}, Psych.load('foo: '))
173
-
174
- assert_cycle 'null'
175
- assert_cycle 'nUll'
176
- assert_cycle '~'
177
- end
178
- end
179
- end
180
- end