Sha256: 1980c1ae2960689cd154b4997c2581ca81ce6f1d2786a8f46df0250073ec44a0
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
# This file contains implementations of rails custom objects for # serialisation/deserialisation. unless Object.const_defined?(:JSON) and ::JSON.const_defined?(:JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end class Object def self.json_create(object) obj = new for key, value in object next if key == 'json_class' instance_variable_set "@#{key}", value end obj end def to_json(*a) result = { 'json_class' => self.class.name } instance_variables.inject(result) do |r, name| r[name[1..-1]] = instance_variable_get name r end result.to_json(*a) end end module Enumerable def to_json(*a) to_a.to_json(*a) end end # class Regexp # def to_json(*) # inspect # end # end # # The above rails definition has some problems: # # 1. { 'foo' => /bar/ }.to_json # => "{foo: /bar/}" # This isn't valid JSON, because the regular expression syntax is not # defined in RFC 4627. (And unquoted strings are disallowed there, too.) # Though it is valid Javascript. # # 2. { 'foo' => /bar/mix }.to_json # => "{foo: /bar/mix}" # This isn't even valid Javascript.
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
json-1.1.1-mswin32 | lib/json/add/rails.rb |
json-1.1.1 | lib/json/add/rails.rb |
json_pure-1.1.1 | lib/json/add/rails.rb |