module Redis::Objects::SortedSets::ClassMethods

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

Public Instance Methods

sorted_set(name, options={}) click to toggle source

Define a new list. It will function like a regular instance method, so it can be used alongside ActiveRecord, DataMapper, etc.

# File lib/redis/objects/sorted_sets.rb, line 16
def sorted_set(name, options={})
  redis_objects[name.to_sym] = options.merge(:type => :sorted_set)
  ivar_name = :"@#{name}"

  mod = Module.new do
    define_method(name) do
      instance_variable_get(ivar_name) or
        instance_variable_set(ivar_name,
          Redis::SortedSet.new(
            redis_field_key(name), redis_field_redis(name), redis_options(name)
          )
        )
    end
  end

  if options[:global]
    extend mod

    # dispatch to class methods
    define_method(name) do
      self.class.public_send(name)
    end
  else
    include mod
  end
end