Module: ARSerialize
- Defined in:
- lib/ar_serialize.rb
Constant Summary collapse
- VERSION =
File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip
Class Method Summary collapse
Class Method Details
.deserialize(v) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ar_serialize.rb', line 22 def self.deserialize(v) if v.is_a?(String) and v =~ /^ActiveRecord:(\w+):(\d+)$/ $1.constantize.find($2) elsif v.is_a?(Hash) result = Hash[v.map do |k,value| [k, deserialize(value)] end] v.is_a?(HashWithIndifferentAccess) ? result.with_indifferent_access : result elsif v.is_a?(Array) v.map do |value| deserialize(value) end else v end end |
.serialize(v) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/ar_serialize.rb', line 6 def self.serialize(v) if v.is_a?(ActiveRecord::Base) "ActiveRecord:#{v.class}:#{v.id}" elsif v.is_a?(Hash) Hash[v.map do |k,value| [k, serialize(value)] end] elsif v.is_a?(Array) v.map do |value| serialize(value) end else v end end |