Module: AsyncStorage
- Defined in:
- lib/async_storage/circuit_breaker.rb,
lib/async_storage.rb,
lib/async_storage/json.rb,
lib/async_storage/repo.rb,
lib/async_storage/config.rb,
lib/async_storage/naming.rb,
lib/async_storage/version.rb,
lib/async_storage/allocator.rb,
lib/async_storage/redis_pool.rb,
lib/async_storage/bath_actions.rb,
lib/async_storage/util/strings.rb
Overview
frizen_string_literal: true
Defined Under Namespace
Modules: JSON, Util
Classes: Allocator, CircuitBreaker, Config, Error, InvalidConfig, Naming, RedisPool, Repo
Constant Summary
collapse
- VERSION =
'0.0.4'
Class Method Summary
collapse
Class Method Details
.[](klass, **options) ⇒ Object
16
17
18
|
# File 'lib/async_storage.rb', line 16
def [](klass, **options)
Repo.new(klass, **options)
end
|
.config ⇒ Object
20
21
22
|
# File 'lib/async_storage.rb', line 20
def config
@config ||= Config.new
end
|
24
25
26
27
28
29
30
|
# File 'lib/async_storage.rb', line 24
def configure(&block)
return unless block_given?
config.instance_eval(&block)
@redis_pool = nil
config
end
|
.flush_all ⇒ Object
6
7
8
9
10
|
# File 'lib/async_storage/bath_actions.rb', line 6
def flush_all
keys.inject(0) do |total, (key, cli)|
total + cli.del(key)
end
end
|
.keys ⇒ Object
12
13
14
15
16
17
18
|
# File 'lib/async_storage/bath_actions.rb', line 12
def keys
Enumerator.new do |yielder|
redis_pool.with do |cli|
cli.keys("#{config.namespace}:*").each { |key| yielder.yield(key, cli) }
end
end
end
|
.redis_pool ⇒ Object
32
33
34
|
# File 'lib/async_storage.rb', line 32
def redis_pool
@redis_pool ||= RedisPool.new(config.redis)
end
|