~michaelforrest/use-case-mapper/trunk

« back to all changes in this revision

Viewing changes to vendor/rails/activesupport/lib/active_support/json/decoding.rb

  • Committer: Michael Forrest
  • Date: 2010-10-15 16:28:50 UTC
  • Revision ID: michael.forrest@canonical.com-20101015162850-tj2vchanv0kr0dun
refrozeĀ gems

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require 'active_support/core_ext/module/attribute_accessors'
 
2
 
 
3
module ActiveSupport
 
4
  # Look for and parse json strings that look like ISO 8601 times.
 
5
  mattr_accessor :parse_json_times
 
6
 
 
7
  module JSON
 
8
    class << self
 
9
      attr_reader :parse_error
 
10
      delegate :decode, :to => :backend
 
11
 
 
12
      def backend
 
13
        self.backend = "Yaml" unless defined?(@backend)
 
14
        @backend
 
15
      end
 
16
 
 
17
      def backend=(name)
 
18
        if name.is_a?(Module)
 
19
          @backend = name
 
20
        else
 
21
          require "active_support/json/backends/#{name.to_s.downcase}.rb"
 
22
          @backend = ActiveSupport::JSON::Backends::const_get(name)
 
23
        end
 
24
        @parse_error = @backend::ParseError
 
25
      end
 
26
 
 
27
      def with_backend(name)
 
28
        old_backend, self.backend = backend, name
 
29
        yield
 
30
      ensure
 
31
        self.backend = old_backend
 
32
      end
 
33
    end
 
34
  end
 
35
end