Module: JSON::TruffleRuby::Generator::GeneratorMethods::Float
- Defined in:
- lib/json/truffle_ruby/generator.rb
Instance Method Summary collapse
-
#to_json(state = nil, *args) ⇒ Object
Returns a JSON string representation for this Float number.
Instance Method Details
#to_json(state = nil, *args) ⇒ Object
Returns a JSON string representation for this Float number.
660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 |
# File 'lib/json/truffle_ruby/generator.rb', line 660 def to_json(state = nil, *args) state = State.from_state(state) if infinite? || nan? if state.allow_nan? to_s elsif state.strict? && state.as_json casted_value = state.as_json.call(self, false) if casted_value.equal?(self) raise GeneratorError.new("#{self} not allowed in JSON", self) end unless Generator.native_type?(casted_value) raise GeneratorError.new("#{casted_value.class} returned by #{state.as_json} not allowed in JSON", casted_value) end state.check_max_nesting state.depth += 1 result = casted_value.to_json(state, *args) state.depth -= 1 result else raise GeneratorError.new("#{self} not allowed in JSON", self) end else to_s end end |