instance method
Range#as_json
(*untyped) -> ::Hash[::String, ::String | [ Elem, Elem, bool ]]
as_json(*)
ext/json/lib/json/add/range.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/ext/json/lib/json/add/range.rb, line 31
def as_json(*)
{
JSON.create_id => self.class.name,
'a' => [ first, last, exclude_end? ]
}
end
Methods Range#as_json and Range.json_create may be used to serialize and deserialize a Range object; see Marshal.
Method Range#as_json serializes self, returning a 2-element hash representing self:
Example
require 'json/add/range' x = (1..4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, false]} y = (1...4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, true]} z = ('a'..'d').as_json # => {"json_class"=>"Range", "a"=>["a", "d", false]}
Method JSON.create deserializes such a hash, returning a Range object:
Example
Range.json_create(x) # => 1..4 Range.json_create(y) # => 1...4 Range.json_create(z) # => "a".."d"