1unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED 2 require 'json' 3end 4defined?(::Rational) or require 'rational' 5 6class Rational 7 def self.json_create(object) 8 Rational(object['n'], object['d']) 9 end 10 11 def as_json(*) 12 { 13 JSON.create_id => self.class.name, 14 'n' => numerator, 15 'd' => denominator, 16 } 17 end 18 19 def to_json(*) 20 as_json.to_json 21 end 22end 23