diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/ext/json/lib/json/add/core.rb | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/ext/json/lib/json/add/core.rb')
-rw-r--r-- | trunk/ext/json/lib/json/add/core.rb | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/trunk/ext/json/lib/json/add/core.rb b/trunk/ext/json/lib/json/add/core.rb deleted file mode 100644 index 630ed6e4b7..0000000000 --- a/trunk/ext/json/lib/json/add/core.rb +++ /dev/null @@ -1,120 +0,0 @@ -# This file contains implementations of ruby core's custom objects for -# serialisation/deserialisation. - -unless Object.const_defined?(:JSON) and ::JSON.const_defined?(:JSON_LOADED) and - ::JSON::JSON_LOADED - require 'json' -end -require 'date' - -class Time - def self.json_create(object) - at(*object.values_at('s', 'u')) - end - - def to_json(*args) - { - 'json_class' => self.class.name.to_s, - 's' => tv_sec, - 'u' => tv_usec, - }.to_json(*args) - end -end - -class Date - def self.json_create(object) - civil(*object.values_at('y', 'm', 'd', 'sg')) - end - - def to_json(*args) - { - 'json_class' => self.class.name.to_s, - 'y' => year, - 'm' => month, - 'd' => day, - 'sg' => @sg, - }.to_json(*args) - end -end - -class DateTime - def self.json_create(object) - args = object.values_at('y', 'm', 'd', 'H', 'M', 'S') - of_a, of_b = object['of'].split('/') - args << Rational(of_a.to_i, of_b.to_i) - args << object['sg'] - civil(*args) - end - - def to_json(*args) - { - 'json_class' => self.class.name.to_s, - 'y' => year, - 'm' => month, - 'd' => day, - 'H' => hour, - 'M' => min, - 'S' => sec, - 'of' => offset.to_s, - 'sg' => @sg, - }.to_json(*args) - end -end - -class Range - def self.json_create(object) - new(*object['a']) - end - - def to_json(*args) - { - 'json_class' => self.class.name.to_s, - 'a' => [ first, last, exclude_end? ] - }.to_json(*args) - end -end - -class Struct - def self.json_create(object) - new(*object['v']) - end - - def to_json(*args) - klass = self.class.name.to_s - klass.empty? and raise JSON::JSONError, "Only named structs are supported!" - { - 'json_class' => klass, - 'v' => values, - }.to_json(*args) - end -end - -class Exception - def self.json_create(object) - result = new(object['m']) - result.set_backtrace object['b'] - result - end - - def to_json(*args) - { - 'json_class' => self.class.name.to_s, - 'm' => message, - 'b' => backtrace, - }.to_json(*args) - end -end - -class Regexp - def self.json_create(object) - new(object['s'], object['o']) - end - - def to_json(*) - { - 'json_class' => self.class.name.to_s, - 'o' => options, - 's' => source, - }.to_json - end -end |