module RedisModelExtension::Initialize

Public Class Methods

new(args={}) click to toggle source

initialize instance

# File lib/redis-model-extension/initialize.rb, line 153
def initialize(args={})
  args = HashWithIndifferentAccess.new(args)
  # look for fields in input hash
  redis_fields_config.each do |key, type|
    # disable to set nonexisting ID!
    raise ArgumentError, "You cannot specify #{key} (it is auto incremented)" if args[key] && type == :autoincrement && get_last_id.to_i < args[key].to_i

    # input hash has known field
    value = if args.has_key?(key)
      value_parse(args[key], type)
    else #there is no value set default valued
      redis_fields_defaults_config[key]
    end
    send(:attribute=, key, value)
  end

  return self
end

Public Instance Methods

attribute_method?(attr_name) click to toggle source
# File lib/redis-model-extension/initialize.rb, line 148
def attribute_method?(attr_name)
  self.class.redis_user_field_config.include? attr_name.to_sym
end