class ActiveRecord::Store::IndifferentCoder
:nodoc:
def self.as_indifferent_hash(obj)
def self.as_indifferent_hash(obj) case obj when ActiveSupport::HashWithIndifferentAccess obj when Hash obj.with_indifferent_access else ActiveSupport::HashWithIndifferentAccess.new end end
def dump(obj)
def dump(obj) @coder.dump self.class.as_indifferent_hash(obj) end
def initialize(attr_name, coder_or_class_name)
def initialize(attr_name, coder_or_class_name) @coder = if coder_or_class_name.respond_to?(:load) && coder_or_class_name.respond_to?(:dump) coder_or_class_name else ActiveRecord::Coders::YAMLColumn.new(attr_name, coder_or_class_name || Object) end end
def load(yaml)
def load(yaml) self.class.as_indifferent_hash(@coder.load(yaml || "")) end