Module: Redis::Objects::InstanceMethods

Defined in:
lib/redis/objects.rb

Overview

Instance methods that appear in your class when you include Redis::Objects.

Instance Method Summary collapse

Instance Method Details

#redisObject



118
# File 'lib/redis/objects.rb', line 118

def redis() self.class.redis end

#redis_field_key(name) ⇒ Object

:nodoc:



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/redis/objects.rb', line 119

def redis_field_key(name) #:nodoc:
  klass = self.class.first_ancestor_with(name)
  if key = klass.redis_objects[name.to_sym][:key]
    if key.respond_to?(:call)
      key.call self
    else
      eval "%(#{key})"
    end
  else
    if id.nil? and !klass.redis_objects[name.to_sym][:global]
      raise NilObjectId,
        "Attempt to address redis-object :#{name} on class #{klass.name} with nil id (unsaved record?) [object_id=#{object_id}]"
    end
    # don't try to refactor into class redis_field_key because fucks up eval context
    "#{klass.redis_prefix}:#{id}:#{name}"
  end
end