Module: Modis
- Defined in:
- lib/modis.rb,
lib/modis/index.rb,
lib/modis/model.rb,
lib/modis/errors.rb,
lib/modis/finder.rb,
lib/modis/version.rb,
lib/modis/attribute.rb,
lib/modis/deprecator.rb,
lib/modis/persistence.rb,
lib/modis/transaction.rb,
lib/modis/configuration.rb
Defined Under Namespace
Modules: Attribute, Errors, Finder, Index, Model, Persistence, Transaction
Classes: AttributeCoercionError, AttributeError, Configuration, IndexError, ModisError, RecordInvalid, RecordNotFound, RecordNotSaved, UnsupportedAttributeType
Constant Summary
collapse
- VERSION =
'4.3.2'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.connection_pool_size ⇒ Object
54
55
56
|
# File 'lib/modis.rb', line 54
def connection_pool_size
@connection_pool_size ||= 5
end
|
.connection_pool_timeout ⇒ Object
58
59
60
|
# File 'lib/modis.rb', line 58
def connection_pool_timeout
@connection_pool_timeout ||= 5
end
|
.connection_pools ⇒ Object
62
63
64
|
# File 'lib/modis.rb', line 62
def connection_pools
@connection_pools ||= {}
end
|
Class Method Details
.config ⇒ Object
12
13
14
|
# File 'lib/modis/configuration.rb', line 12
def config
@config ||= Configuration.new
end
|
4
5
6
|
# File 'lib/modis/configuration.rb', line 4
def self.configure
yield config
end
|
.connection_pool(pool_name = :default) ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/modis.rb', line 66
def connection_pool(pool_name = :default)
connection_pools[pool_name] ||= begin
mutex.synchronize do
ConnectionPool.new(
size: connection_pool_size,
timeout: connection_pool_timeout
) do
Redis.new(redis_options[pool_name])
end
end
end
end
|
.deprecator ⇒ Object
4
5
6
|
# File 'lib/modis/deprecator.rb', line 4
def self.deprecator
@deprecator ||= ActiveSupport::Deprecation.new('5.0', 'modis')
end
|
.mutex ⇒ Object
25
26
27
|
# File 'lib/modis.rb', line 25
def mutex
@mutex ||= Mutex.new
end
|
.redis_options ⇒ Object
29
30
31
|
# File 'lib/modis.rb', line 29
def redis_options
@redis_options ||= { default: {} }
end
|
.redis_options=(options) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/modis.rb', line 33
def redis_options=(options)
if options.is_a?(Hash) && options.values.first.is_a?(Hash)
@redis_options = options.transform_values(&:dup)
else
redis_options[:default] = options
end
end
|
.reset! ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/modis.rb', line 41
def reset!
connection_pools.each do |key, _|
with_connection(key) do |connection|
keys = connection.keys "#{config.namespace}:*"
connection.del(*keys) unless keys.empty?
end
end
instance_variables.each do |var|
instance_variable_set(var, nil)
remove_instance_variable(var)
end
end
|
.with_connection(pool_name = :default) ⇒ Object
79
80
81
|
# File 'lib/modis.rb', line 79
def with_connection(pool_name = :default)
connection_pool(pool_name).with { |connection| yield(connection) }
end
|