redlics 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 724a34a6d432d7dced851a903f0af979f157c7cd
4
- data.tar.gz: 94ec00b7a62ee7a1d6a87d934fb604b84388b93b
3
+ metadata.gz: 5c952b2aaef0c600c43759b347f42cf121f84359
4
+ data.tar.gz: 1f1122c2deeb9bcca5f77dbd2f577e81acc15a1f
5
5
  SHA512:
6
- metadata.gz: e67674ebcd341d698a475a3a04730f1d00a0f911a7108e6e268074927676ec2d869b8f9ec5998204f3e060e07c510afb7e876d8a81f4018f2adeaf9d629330cf
7
- data.tar.gz: b105b0e91e2459388d1c21ace343f95b34ac61e15712d32fae33455733029b29bf60496994a13827a812045379b11f97c10ab3ee12922c13427ee22cfa80605c
6
+ metadata.gz: 7f5f5f504154cf0e53cff914c6dbd4ea33c29ecaf0519a38630fa20a649c39270823ead3b5c6c6e693957f34bcbe7f22180433953aa11d0f1345841ab05e39de
7
+ data.tar.gz: 7c66a67307b5873d43ada08c4cf8c3b43a4b1db9b75fb7322b8990425c742ea851864d9b472302651e4b20b40f1058fe648fefaf5b8c885c53cc0e606142f772
data/README.md CHANGED
@@ -64,7 +64,7 @@ Redlics.configure do |config|
64
64
  ids: true
65
65
  }
66
66
  config.granularities = {
67
- minutely: { step: 1.minute, pattern: '%Y%m%d%H%m' },
67
+ minutely: { step: 1.minute, pattern: '%Y%m%d%H%M' },
68
68
  hourly: { step: 1.hour, pattern: '%Y%m%d%H' },
69
69
  daily: { step: 1.day, pattern: '%Y%m%d' },
70
70
  weekly: { step: 1.week, pattern: '%GW%V' },
data/lib/redlics.rb CHANGED
@@ -27,10 +27,11 @@ module Redlics
27
27
  # Get or initialize the Redis connection.
28
28
  # @return [Object] redis connection
29
29
  def redis
30
+ raise ArgumentError, 'requires a block' unless block_given?
30
31
  redis_pool.with do |conn|
31
32
  retryable = true
32
33
  begin
33
- conn
34
+ yield conn
34
35
  rescue Redis::BaseError => e
35
36
  raise e unless config.silent
36
37
  rescue Redis::CommandError => ex
@@ -48,19 +49,19 @@ module Redlics
48
49
  # @return [String] Lua script result
49
50
  def script(file, *args)
50
51
  begin
51
- cache = LUA_CACHE[redis.client.options[:url]]
52
+ cache = LUA_CACHE[redis { |r| r.client.options[:url] }]
52
53
  if cache.key?(file)
53
54
  sha = cache[file]
54
55
  else
55
56
  src = File.read(file)
56
- sha = redis.script(:load, src)
57
+ sha = redis { |r| r.script(:load, src) }
57
58
  cache[file] = sha
58
59
  end
59
- redis.evalsha(sha, *args)
60
+ redis { |r| r.evalsha(sha, *args) }
60
61
  rescue RuntimeError
61
62
  case $!.message
62
63
  when Exception::ErrorPatterns::NOSCRIPT
63
- LUA_CACHE[redis.client.options[:url]].clear
64
+ LUA_CACHE[redis { |r| r.client.options[:url] }].clear
64
65
  retry
65
66
  else
66
67
  raise $! unless config.silent
@@ -33,7 +33,7 @@ module Redlics
33
33
  ids: true
34
34
  },
35
35
  granularities: {
36
- minutely: { step: 1.minute, pattern: '%Y%m%d%H%m' },
36
+ minutely: { step: 1.minute, pattern: '%Y%m%d%H%M' },
37
37
  hourly: { step: 1.hour, pattern: '%Y%m%d%H' },
38
38
  daily: { step: 1.day, pattern: '%Y%m%d' },
39
39
  weekly: { step: 1.week, pattern: '%GW%V' },
@@ -67,9 +67,11 @@ module Redlics
67
67
  def count_by_hash(options)
68
68
  granularity = options[:granularity]
69
69
  key = Key.name(CONTEXT, options[:event], granularity, options[:past], { id: options[:id], bucketized: true })
70
- Redlics.redis.pipelined do |redis|
71
- redis.hincrby(key[0], key[1], 1)
72
- redis.expire(key[0], (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.counter_expirations[granularity]).to_i)
70
+ Redlics.redis do |conn|
71
+ conn.pipelined do |redis|
72
+ redis.hincrby(key[0], key[1], 1)
73
+ redis.expire(key[0], (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.counter_expirations[granularity]).to_i)
74
+ end
73
75
  end
74
76
  end
75
77
 
@@ -81,9 +83,11 @@ module Redlics
81
83
  def count_by_key(options)
82
84
  granularity = options[:granularity]
83
85
  key = Key.name(CONTEXT, options[:event], granularity, options[:past], { id: options[:id], bucketized: false })
84
- Redlics.redis.pipelined do |redis|
85
- redis.incr(key)
86
- redis.expire(key, (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.counter_expirations[granularity]).to_i)
86
+ Redlics.redis do |conn|
87
+ conn.pipelined do |redis|
88
+ redis.incr(key)
89
+ redis.expire(key, (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.counter_expirations[granularity]).to_i)
90
+ end
87
91
  end
88
92
  end
89
93
 
data/lib/redlics/key.rb CHANGED
@@ -97,7 +97,7 @@ module Redlics
97
97
  # @param string [String] the key name to check
98
98
  # @return [Boolean] true id key exists, false if not
99
99
  def exists?(key)
100
- Redlics.redis.exists(key)
100
+ Redlics.redis { |r| r.exists(key) }
101
101
  end
102
102
 
103
103
 
@@ -117,9 +117,11 @@ module Redlics
117
117
  loop do
118
118
  ns = operation
119
119
  unless exists?(ns)
120
- Redlics.redis.pipelined do |redis|
121
- redis.set(ns, 0)
122
- redis.expire(ns, Redlics.config.operation_expiration)
120
+ Redlics.redis do |conn|
121
+ conn.pipelined do |redis|
122
+ redis.set(ns, 0)
123
+ redis.expire(ns, Redlics.config.operation_expiration)
124
+ end
123
125
  end
124
126
  break ns
125
127
  end
data/lib/redlics/query.rb CHANGED
@@ -44,7 +44,7 @@ module Redlics
44
44
  # Get or process tracks on Redis.
45
45
  # @return [Integer] tracks result of given query
46
46
  def tracks
47
- @tracks ||= Redlics.redis.bitcount(track_bits)
47
+ @tracks ||= Redlics.redis { |r| r.bitcount(track_bits) }
48
48
  end
49
49
 
50
50
 
@@ -65,7 +65,7 @@ module Redlics
65
65
  # @return [Boolean] true if exists, false if not
66
66
  # @return [NilClass] nil if no object id is given
67
67
  def exists?
68
- @exists ||= @options[:id] ? Redlics.redis.getbit(track_bits, @options[:id]) == 1 : nil
68
+ @exists ||= @options[:id] ? Redlics.redis { |r| r.getbit(track_bits, @options[:id]) } == 1 : nil
69
69
  end
70
70
 
71
71
 
@@ -197,7 +197,7 @@ module Redlics
197
197
  # @return [Integer] result of Redis delete keys
198
198
  # @return [NilClass] nil if namespaces are empty
199
199
  def reset_redis_namespaces(namespaces)
200
- Redlics.redis.del(namespaces) if namespaces.any?
200
+ Redlics.redis { |r| r.del(namespaces) } if namespaces.any?
201
201
  end
202
202
 
203
203
  end
@@ -30,7 +30,7 @@ module Redlics
30
30
  # @return [Integer] tracks result of given query operation
31
31
  def tracks
32
32
  @tracks ||= (
33
- Redlics.redis.bitcount(@track_bits || traverse)
33
+ Redlics.redis { |r| r.bitcount(@track_bits || traverse) }
34
34
  )
35
35
  end
36
36
 
@@ -59,7 +59,7 @@ module Redlics
59
59
  # @param [Integer] the object id to check
60
60
  # @return [Boolean] true if exists, false if not
61
61
  def exists?(id)
62
- Redlics.redis.getbit(@track_bits || traverse, id.to_i) == 1
62
+ Redlics.redis { |r| r.getbit(@track_bits || traverse, id.to_i) } == 1
63
63
  end
64
64
 
65
65
 
@@ -109,7 +109,7 @@ module Redlics
109
109
  # @return [Integer] result of Redis delete keys
110
110
  # @return [NilClass] nil if namespaces are empty
111
111
  def reset_redis_namespaces(namespaces)
112
- Redlics.redis.del(namespaces) if namespaces.any?
112
+ Redlics.redis { |r| r.del(namespaces) } if namespaces.any?
113
113
  end
114
114
 
115
115
  end
@@ -29,9 +29,11 @@ module Redlics
29
29
  def track_with_hash(options)
30
30
  Granularity.validate(CONTEXT, options[:granularity]).each do |granularity|
31
31
  key = Key.name(CONTEXT, options[:event], granularity, options[:past])
32
- Redlics.redis.pipelined do |redis|
33
- redis.setbit(key, options[:id].to_i, 1)
34
- redis.expire(key, (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.tracker_expirations[granularity]).to_i)
32
+ Redlics.redis do |conn|
33
+ conn.pipelined do |redis|
34
+ redis.setbit(key, options[:id].to_i, 1)
35
+ redis.expire(key, (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.tracker_expirations[granularity]).to_i)
36
+ end
35
37
  end
36
38
  end
37
39
  end
@@ -1,4 +1,4 @@
1
1
  # Redlics version.
2
2
  module Redlics
3
- VERSION = '0.1.6'
3
+ VERSION = '0.1.7'
4
4
  end
data/test/redlics_test.rb CHANGED
@@ -7,7 +7,7 @@ describe Redlics do
7
7
 
8
8
 
9
9
  it 'must respond positively' do
10
- subject.redis.namespace.must_equal Redlics.config.namespace
10
+ subject.redis { |r| r.namespace }.must_equal Redlics.config.namespace
11
11
  end
12
12
 
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redlics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Egon Zemmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-17 00:00:00.000000000 Z
11
+ date: 2016-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool