~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: Richard Lee (Canonical)
  • Date: 2010-10-15 15:17:58 UTC
  • mfrom: (190.1.3 use-case-mapper)
  • Revision ID: richard.lee@canonical.com-20101015151758-wcvmfxrexsongf9d
Merge

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