Sha256: a880c8c970a15ca14b7a420f8a06cec661fd3e46de0cd8b6f215e05ba902d9b7

Contents?: true

Size: 1.02 KB

Versions: 16

Compression:

Stored size: 1.02 KB

Contents

require 'json/pure'

module Bitcoin
  module Ext
    # Extension of JSON::Pure::Parser.
    # This class convert Float value to String value.
    class JsonParser < JSON::Pure::Parser

      def parse_value
        case
        when scan(FLOAT)
          self[1].to_s
        when scan(INTEGER)
          Integer(self[1])
        when scan(TRUE)
          true
        when scan(FALSE)
          false
        when scan(NULL)
          nil
        when !UNPARSED.equal?(string = parse_string)
          string
        when scan(ARRAY_OPEN)
          @current_nesting += 1
          ary = parse_array
          @current_nesting -= 1
          ary
        when scan(OBJECT_OPEN)
          @current_nesting += 1
          obj = parse_object
          @current_nesting -= 1
          obj
        when @allow_nan && scan(NAN)
          NaN
        when @allow_nan && scan(INFINITY)
          Infinity
        when @allow_nan && scan(MINUS_INFINITY)
          MinusInfinity
        else
          UNPARSED
        end
      end

    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
bitcoinrb-1.8.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.7.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.6.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.5.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.4.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.3.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.2.1 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.2.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.1.1 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.1.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-1.0.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-0.9.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-0.8.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-0.7.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-0.6.0 lib/bitcoin/ext/json_parser.rb
bitcoinrb-0.5.0 lib/bitcoin/ext/json_parser.rb