class GIGO::ActiveRecord::Base::GigoCoder
Attributes
klass[R]
Public Class Methods
new(klass)
click to toggle source
# File lib/gigo/active_record/base.rb, line 47 def initialize(klass) @klass = klass @default_internal = Encoding.default_internal end
Public Instance Methods
dump(value)
click to toggle source
# File lib/gigo/active_record/base.rb, line 64 def dump(value) return klass.new.to_yaml if value.nil? unless value.is_a?(klass) raise SerializationTypeMismatch, "Attribute was supposed to be a #{klass.to_s}, but was a #{value.class}." end value.to_yaml end
load(yaml)
click to toggle source
# File lib/gigo/active_record/base.rb, line 52 def load(yaml) return klass.new if yaml.nil? Encoding.default_internal = GIGO.encoding value = YAML.load(GIGO.load(yaml)) unless value.is_a?(klass) raise SerializationTypeMismatch, "Attribute was supposed to be a #{klass.to_s}, but was a #{hash.class}." end value ensure Encoding.default_internal = @default_internal end