Module: Redis::Helper::ClassMethods

Defined in:
lib/redis/helper.rb

Overview

クラスメソッド

Instance Method Summary collapse

Instance Method Details

#define_attr_keys(*names, unique_attr: nil) ⇒ Object

固定キーメソッドを作成する

Parameters:

  • names (Array<String|Symbol>)

    キー名

  • unique_attr (String|Symbol) (defaults to: nil)

    インスタンスの固有キーとして使用するメソッド名



57
58
59
60
61
62
63
# File 'lib/redis/helper.rb', line 57

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

#lock(base_key) { ... } ⇒ Object

特定のkeyをbaseにしたロックをかけてブロック内の処理を実行

Parameters:

  • base_key (String)

    ロックを取得するリソースのkey

Yields:

  • ロック中に実行する処理のブロック



68
69
70
71
# File 'lib/redis/helper.rb', line 68

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

#redisObject

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



50
51
52
# File 'lib/redis/helper.rb', line 50

def redis
  @redis ||= ::Redis.current
end