Module: Redis::Helper::ClassMethods
- Defined in:
- lib/redis/helper.rb
Overview
クラスメソッド
Instance Method Summary collapse
-
#define_attr_keys(*names, unique_attr: nil) ⇒ Object
固定キーメソッドを作成する.
-
#generate_key(unique_key, attr_name = nil) ⇒ String
インスタンス固有キーから#attr_key/#instance_keyが返すキーを生成する.
-
#lock(base_key) { ... } ⇒ Object
特定のkeyをbaseにしたロックをかけてブロック内の処理を実行.
-
#redis ⇒ Object
Redis.currentへのショートカット.
- #redis=(conn) ⇒ Object
Instance Method Details
#define_attr_keys(*names, unique_attr: nil) ⇒ Object
固定キーメソッドを作成する
62 63 64 65 66 67 68 |
# 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) ⇒ String
インスタンス固有キーから#attr_key/#instance_keyが返すキーを生成する
82 83 84 |
# 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) { ... } ⇒ Object
特定のkeyをbaseにしたロックをかけてブロック内の処理を実行
73 74 75 76 |
# 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 ⇒ Object
Redis.currentへのショートカット
51 52 53 |
# File 'lib/redis/helper.rb', line 51 def redis @redis ||= ::Redis.current end |
#redis=(conn) ⇒ Object
55 56 57 |
# File 'lib/redis/helper.rb', line 55 def redis=(conn) @redis = conn end |