module ConfigStore::Record::SetValueSyncer

keep raw_value and value in sync, allow calling super for typed_attr_accessor

Public Class Methods

new(**args) click to toggle source
Calls superclass method
# File lib/configstore/models/record.rb, line 40
def initialize(**args)
        if args.has_key?(:raw_value) && args.has_key?(:value)
                raise ArgumentError, "only one of the :raw_value and :value attributes should be provided"
        end
        super(**args)
        self.raw_value = args[:raw_value] if args.has_key?(:raw_value)
        self.value = args[:value] if args.has_key?(:value)
end

Public Instance Methods

raw_value=(new_raw_value) click to toggle source
Calls superclass method
# File lib/configstore/models/record.rb, line 26
def raw_value=(new_raw_value)
        super(new_raw_value)
        new_value = Base64.strict_decode64(new_raw_value) unless new_raw_value.nil?
        instance_variable_set("@value", new_value)
        return new_raw_value
end
value=(new_value) click to toggle source
Calls superclass method
# File lib/configstore/models/record.rb, line 33
def value=(new_value)
        super(new_value)
        new_raw_value = Base64.strict_encode64(new_value) unless new_value.nil?
        instance_variable_set("@raw_value", new_raw_value)
        return new_value
end