module Redis::Helper::ClassMethods

クラスメソッド

Public Instance Methods

define_attr_keys(*names, unique_attr: nil) click to toggle source

固定キーメソッドを作成する @param [Array<String|Symbol>] names キー名 @param [String|Symbol] unique_attr インスタンスの固有キーとして使用するメソッド名

# File lib/redis/helper.rb, line 62
def define_attr_keys(*names, unique_attr: nil)
  names.each do |name|
    define_method(:"#{name}_key") do
      attr_key(name, unique_attr)
    end
  end
end
generate_key(unique_key, attr_name = nil) click to toggle source

インスタンス固有キーから#attr_key/#instance_keyが返すキーを生成する @param [String|Integer] unique_key インスタンス固有のキー @param [String|Symbol] attr_name attr_key生成時に利用するキー名 @return [String]

# File lib/redis/helper.rb, line 82
def generate_key(unique_key, attr_name = nil)
  [name, unique_key, attr_name].compact.join(REDIS_KEY_DELIMITER)
end
lock(base_key, &block) click to toggle source

特定のkeyをbaseにしたロックをかけてブロック内の処理を実行 @param [String] base_key ロックを取得するリソースのkey @yield ロック中に実行する処理のブロック

# File lib/redis/helper.rb, line 73
def lock(base_key, &block)
  lock_key = [base_key, LOCK_POSTFIX].compact.join(REDIS_KEY_DELIMITER)
  ::Redis::Helper::Lock.new(redis, lock_key).lock(&block)
end
redis() click to toggle source

Redis.currentへのショートカット

# File lib/redis/helper.rb, line 51
def redis
  @redis ||= ::Redis.current
end
redis=(conn) click to toggle source
# File lib/redis/helper.rb, line 55
def redis=(conn)
  @redis = conn
end