json_pure 2.7.6 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Range
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- new(*object['a'])
11
- end
12
-
13
- # Methods <tt>Range#as_json</tt> and +Range.json_create+ may be used
14
- # to serialize and deserialize a \Range object;
15
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
16
- #
17
- # \Method <tt>Range#as_json</tt> serializes +self+,
18
- # returning a 2-element hash representing +self+:
19
- #
20
- # require 'json/add/range'
21
- # x = (1..4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, false]}
22
- # y = (1...4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, true]}
23
- # z = ('a'..'d').as_json # => {"json_class"=>"Range", "a"=>["a", "d", false]}
24
- #
25
- # \Method +JSON.create+ deserializes such a hash, returning a \Range object:
26
- #
27
- # Range.json_create(x) # => 1..4
28
- # Range.json_create(y) # => 1...4
29
- # Range.json_create(z) # => "a".."d"
30
- #
31
- def as_json(*)
32
- {
33
- JSON.create_id => self.class.name,
34
- 'a' => [ first, last, exclude_end? ]
35
- }
36
- end
37
-
38
- # Returns a JSON string representing +self+:
39
- #
40
- # require 'json/add/range'
41
- # puts (1..4).to_json
42
- # puts (1...4).to_json
43
- # puts ('a'..'d').to_json
44
- #
45
- # Output:
46
- #
47
- # {"json_class":"Range","a":[1,4,false]}
48
- # {"json_class":"Range","a":[1,4,true]}
49
- # {"json_class":"Range","a":["a","d",false]}
50
- #
51
- def to_json(*args)
52
- as_json.to_json(*args)
53
- end
54
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Rational
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- Rational(object['n'], object['d'])
11
- end
12
-
13
- # Methods <tt>Rational#as_json</tt> and +Rational.json_create+ may be used
14
- # to serialize and deserialize a \Rational object;
15
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
16
- #
17
- # \Method <tt>Rational#as_json</tt> serializes +self+,
18
- # returning a 2-element hash representing +self+:
19
- #
20
- # require 'json/add/rational'
21
- # x = Rational(2, 3).as_json
22
- # # => {"json_class"=>"Rational", "n"=>2, "d"=>3}
23
- #
24
- # \Method +JSON.create+ deserializes such a hash, returning a \Rational object:
25
- #
26
- # Rational.json_create(x)
27
- # # => (2/3)
28
- #
29
- def as_json(*)
30
- {
31
- JSON.create_id => self.class.name,
32
- 'n' => numerator,
33
- 'd' => denominator,
34
- }
35
- end
36
-
37
- # Returns a JSON string representing +self+:
38
- #
39
- # require 'json/add/rational'
40
- # puts Rational(2, 3).to_json
41
- #
42
- # Output:
43
- #
44
- # {"json_class":"Rational","n":2,"d":3}
45
- #
46
- def to_json(*args)
47
- as_json.to_json(*args)
48
- end
49
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Regexp
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- new(object['s'], object['o'])
11
- end
12
-
13
- # Methods <tt>Regexp#as_json</tt> and +Regexp.json_create+ may be used
14
- # to serialize and deserialize a \Regexp object;
15
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
16
- #
17
- # \Method <tt>Regexp#as_json</tt> serializes +self+,
18
- # returning a 2-element hash representing +self+:
19
- #
20
- # require 'json/add/regexp'
21
- # x = /foo/.as_json
22
- # # => {"json_class"=>"Regexp", "o"=>0, "s"=>"foo"}
23
- #
24
- # \Method +JSON.create+ deserializes such a hash, returning a \Regexp object:
25
- #
26
- # Regexp.json_create(x) # => /foo/
27
- #
28
- def as_json(*)
29
- {
30
- JSON.create_id => self.class.name,
31
- 'o' => options,
32
- 's' => source,
33
- }
34
- end
35
-
36
- # Returns a JSON string representing +self+:
37
- #
38
- # require 'json/add/regexp'
39
- # puts /foo/.to_json
40
- #
41
- # Output:
42
- #
43
- # {"json_class":"Regexp","o":0,"s":"foo"}
44
- #
45
- def to_json(*args)
46
- as_json.to_json(*args)
47
- end
48
- end
data/lib/json/add/set.rb DELETED
@@ -1,48 +0,0 @@
1
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
2
- require 'json'
3
- end
4
- defined?(::Set) or require 'set'
5
-
6
- class Set
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- new object['a']
11
- end
12
-
13
- # Methods <tt>Set#as_json</tt> and +Set.json_create+ may be used
14
- # to serialize and deserialize a \Set object;
15
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
16
- #
17
- # \Method <tt>Set#as_json</tt> serializes +self+,
18
- # returning a 2-element hash representing +self+:
19
- #
20
- # require 'json/add/set'
21
- # x = Set.new(%w/foo bar baz/).as_json
22
- # # => {"json_class"=>"Set", "a"=>["foo", "bar", "baz"]}
23
- #
24
- # \Method +JSON.create+ deserializes such a hash, returning a \Set object:
25
- #
26
- # Set.json_create(x) # => #<Set: {"foo", "bar", "baz"}>
27
- #
28
- def as_json(*)
29
- {
30
- JSON.create_id => self.class.name,
31
- 'a' => to_a,
32
- }
33
- end
34
-
35
- # Returns a JSON string representing +self+:
36
- #
37
- # require 'json/add/set'
38
- # puts Set.new(%w/foo bar baz/).to_json
39
- #
40
- # Output:
41
- #
42
- # {"json_class":"Set","a":["foo","bar","baz"]}
43
- #
44
- def to_json(*args)
45
- as_json.to_json(*args)
46
- end
47
- end
48
-
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Struct
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- new(*object['v'])
11
- end
12
-
13
- # Methods <tt>Struct#as_json</tt> and +Struct.json_create+ may be used
14
- # to serialize and deserialize a \Struct object;
15
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
16
- #
17
- # \Method <tt>Struct#as_json</tt> serializes +self+,
18
- # returning a 2-element hash representing +self+:
19
- #
20
- # require 'json/add/struct'
21
- # Customer = Struct.new('Customer', :name, :address, :zip)
22
- # x = Struct::Customer.new.as_json
23
- # # => {"json_class"=>"Struct::Customer", "v"=>[nil, nil, nil]}
24
- #
25
- # \Method +JSON.create+ deserializes such a hash, returning a \Struct object:
26
- #
27
- # Struct::Customer.json_create(x)
28
- # # => #<struct Struct::Customer name=nil, address=nil, zip=nil>
29
- #
30
- def as_json(*)
31
- klass = self.class.name
32
- klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
33
- {
34
- JSON.create_id => klass,
35
- 'v' => values,
36
- }
37
- end
38
-
39
- # Returns a JSON string representing +self+:
40
- #
41
- # require 'json/add/struct'
42
- # Customer = Struct.new('Customer', :name, :address, :zip)
43
- # puts Struct::Customer.new.to_json
44
- #
45
- # Output:
46
- #
47
- # {"json_class":"Struct","t":{'name':'Rowdy',"age":null}}
48
- #
49
- def to_json(*args)
50
- as_json.to_json(*args)
51
- end
52
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Symbol
7
-
8
- # Methods <tt>Symbol#as_json</tt> and +Symbol.json_create+ may be used
9
- # to serialize and deserialize a \Symbol object;
10
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
11
- #
12
- # \Method <tt>Symbol#as_json</tt> serializes +self+,
13
- # returning a 2-element hash representing +self+:
14
- #
15
- # require 'json/add/symbol'
16
- # x = :foo.as_json
17
- # # => {"json_class"=>"Symbol", "s"=>"foo"}
18
- #
19
- # \Method +JSON.create+ deserializes such a hash, returning a \Symbol object:
20
- #
21
- # Symbol.json_create(x) # => :foo
22
- #
23
- def as_json(*)
24
- {
25
- JSON.create_id => self.class.name,
26
- 's' => to_s,
27
- }
28
- end
29
-
30
- # Returns a JSON string representing +self+:
31
- #
32
- # require 'json/add/symbol'
33
- # puts :foo.to_json
34
- #
35
- # Output:
36
- #
37
- # # {"json_class":"Symbol","s":"foo"}
38
- #
39
- def to_json(*a)
40
- as_json.to_json(*a)
41
- end
42
-
43
- # See #as_json.
44
- def self.json_create(o)
45
- o['s'].to_sym
46
- end
47
- end
data/lib/json/add/time.rb DELETED
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
3
- require 'json'
4
- end
5
-
6
- class Time
7
-
8
- # See #as_json.
9
- def self.json_create(object)
10
- if usec = object.delete('u') # used to be tv_usec -> tv_nsec
11
- object['n'] = usec * 1000
12
- end
13
- at(object['s'], Rational(object['n'], 1000))
14
- end
15
-
16
- # Methods <tt>Time#as_json</tt> and +Time.json_create+ may be used
17
- # to serialize and deserialize a \Time object;
18
- # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
19
- #
20
- # \Method <tt>Time#as_json</tt> serializes +self+,
21
- # returning a 2-element hash representing +self+:
22
- #
23
- # require 'json/add/time'
24
- # x = Time.now.as_json
25
- # # => {"json_class"=>"Time", "s"=>1700931656, "n"=>472846644}
26
- #
27
- # \Method +JSON.create+ deserializes such a hash, returning a \Time object:
28
- #
29
- # Time.json_create(x)
30
- # # => 2023-11-25 11:00:56.472846644 -0600
31
- #
32
- def as_json(*)
33
- {
34
- JSON.create_id => self.class.name,
35
- 's' => tv_sec,
36
- 'n' => tv_nsec,
37
- }
38
- end
39
-
40
- # Returns a JSON string representing +self+:
41
- #
42
- # require 'json/add/time'
43
- # puts Time.now.to_json
44
- #
45
- # Output:
46
- #
47
- # {"json_class":"Time","s":1700931678,"n":980650786}
48
- #
49
- def to_json(*args)
50
- as_json.to_json(*args)
51
- end
52
- end