class Rational
Public Class Methods
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.1/lib/json/add/rational.rb, line 9 def self.json_create(object) Rational(object['n'], object['d']) end
See as_json.
Public Instance Methods
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.1/lib/json/add/rational.rb, line 29 def as_json(*) { JSON.create_id => self.class.name, 'n' => numerator, 'd' => denominator, } end
Methods Rational#as_json and Rational.json_create may be used to serialize and deserialize a Rational object; see Marshal.
Method Rational#as_json serializes self, returning a 2-element hash representing self:
require 'json/add/rational' x = Rational(2, 3).as_json # => {"json_class"=>"Rational", "n"=>2, "d"=>3}
Method JSON.create deserializes such a hash, returning a Rational object:
Rational.json_create(x) # => (2/3)
Source
# File vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.3.1/lib/bigdecimal/util.rb, line 135 def to_d(precision=0) BigDecimal(self, precision) end
Returns the value as a BigDecimal.
The precision parameter is used to determine the number of significant digits for the result. When precision is set to 0, the number of digits to represent the float being converted is determined automatically. The default precision is 0.
require 'bigdecimal' require 'bigdecimal/util' Rational(22, 7).to_d(3) # => 0.314e1
See also Kernel.BigDecimal.
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.1/lib/json/add/rational.rb, line 46 def to_json(*args) as_json.to_json(*args) end
Returns a JSON string representing self:
require 'json/add/rational' puts Rational(2, 3).to_json
Output:
{"json_class":"Rational","n":2,"d":3}