Sha256: 6b7f79ec019f0fb473817baf02dd87d357ed9a3b83b94761dfffdbea0f6537f5

Contents?: true

Size: 902 Bytes

Versions: 24

Compression:

Stored size: 902 Bytes

Contents

require 'yajl' unless defined?(Yajl)

module ActiveSupport
  module JSON
    module Backends
      module Yajl
        ParseError = ::Yajl::ParseError
        extend self

        # Parses a JSON string or IO and convert it into an object
        def decode(json)
          data = ::Yajl::Parser.new.parse(json)
          if ActiveSupport.parse_json_times
            convert_dates_from(data)
          else
            data
          end
        end

      private
        def convert_dates_from(data)
          case data
          when nil
            nil
          when DATE_REGEX
            DateTime.parse(data)
          when Array
            data.map! { |d| convert_dates_from(d) }
          when Hash
            data.each do |key, value|
              data[key] = convert_dates_from(value)
            end
          else
            data
          end
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 5 rubygems

Version Path
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/json/backends/yajl.rb
activesupport-2.3.18 lib/active_support/json/backends/yajl.rb
activesupport-2.3.17 lib/active_support/json/backends/yajl.rb
activesupport-2.3.16 lib/active_support/json/backends/yajl.rb
activesupport-2.3.15 lib/active_support/json/backends/yajl.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/activesupport-2.3.14/lib/active_support/json/backends/yajl.rb
vanity-1.7.1 vendor/ruby/1.9.1/gems/activesupport-2.3.12/lib/active_support/json/backends/yajl.rb
activesupport-2.3.14 lib/active_support/json/backends/yajl.rb
kajam-1.0.3.rc2 vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb
activesupport-2.3.12 lib/active_support/json/backends/yajl.rb
radiant-1.0.0.rc2 vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb
radiant-1.0.0.rc1 vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb
activesupport-3.0.4 lib/active_support/json/backends/yajl.rb
activesupport-2.3.11 lib/active_support/json/backends/yajl.rb
activesupport-3.0.4.rc1 lib/active_support/json/backends/yajl.rb
activesupport-3.0.3 lib/active_support/json/backends/yajl.rb
activesupport-3.0.2 lib/active_support/json/backends/yajl.rb
activesupport-3.0.1 lib/active_support/json/backends/yajl.rb
activesupport-2.3.10 lib/active_support/json/backends/yajl.rb
activesupport-2.3.9 lib/active_support/json/backends/yajl.rb