Class: MockRedis
- Inherits:
-
Object
show all
- Includes:
- UndefRedisMethods
- Defined in:
- lib/mock_redis/version.rb,
lib/mock_redis.rb,
lib/mock_redis/zset.rb,
lib/mock_redis/future.rb,
lib/mock_redis/stream.rb,
lib/mock_redis/database.rb,
lib/mock_redis/stream/id.rb,
lib/mock_redis/assertions.rb,
lib/mock_redis/exceptions.rb,
lib/mock_redis/info_method.rb,
lib/mock_redis/set_methods.rb,
lib/mock_redis/sort_method.rb,
lib/mock_redis/hash_methods.rb,
lib/mock_redis/list_methods.rb,
lib/mock_redis/zset_methods.rb,
lib/mock_redis/expire_wrapper.rb,
lib/mock_redis/stream_methods.rb,
lib/mock_redis/string_methods.rb,
lib/mock_redis/utility_methods.rb,
lib/mock_redis/indifferent_hash.rb,
lib/mock_redis/multi_db_wrapper.rb,
lib/mock_redis/pipelined_wrapper.rb,
lib/mock_redis/geospatial_methods.rb,
lib/mock_redis/transaction_wrapper.rb,
lib/mock_redis/undef_redis_methods.rb
Overview
TODO: Implement the following commands
* xread
* xgroup
* xreadgroup
* xack
* xpending
* xclaim
* xinfo
* xtrim
* xdel
TODO: Complete support for
* xtrim
- `approximate: true` argument is currently ignored
* xadd
- `approximate: true` argument (for capped streams) is currently ignored
For details of these commands see
* https://redis.io/topics/streams-intro
* https://redis.io/commands#stream
Defined Under Namespace
Modules: Assertions, GeospatialMethods, HashMethods, InfoMethod, ListMethods, SetMethods, SortMethod, StreamMethods, StringMethods, UndefRedisMethods, UtilityMethods, ZsetMethods
Classes: Database, ExpireWrapper, Future, FutureNotReady, IndifferentHash, MultiDbWrapper, PipelinedWrapper, Stream, TransactionWrapper, Zset
Constant Summary
collapse
- DEFAULTS =
{
:scheme => 'redis',
:host => '127.0.0.1',
:port => 6379,
:path => nil,
:timeout => 5.0,
:password => nil,
:db => 0,
:time_class => Time,
}.freeze
- VERSION =
'0.20.0'
- WouldBlock =
Class.new(StandardError)
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
included
Constructor Details
#initialize(*args) ⇒ MockRedis
Returns a new instance of MockRedis.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
92
93
94
|
# File 'lib/mock_redis.rb', line 92
def method_missing(method, *args, &block)
@db.send(method, *args, &block)
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
15
16
17
|
# File 'lib/mock_redis.rb', line 15
def options
@options
end
|
Class Method Details
.connect(*args) ⇒ Object
28
29
30
|
# File 'lib/mock_redis.rb', line 28
def self.connect(*args)
new(*args)
end
|
Instance Method Details
#call(command, &_block) ⇒ Object
51
52
53
|
# File 'lib/mock_redis.rb', line 51
def call(command, &_block)
send(*command)
end
|
#client ⇒ Object
76
77
78
|
# File 'lib/mock_redis.rb', line 76
def client
self
end
|
#connect ⇒ Object
80
81
82
|
# File 'lib/mock_redis.rb', line 80
def connect
self
end
|
#db ⇒ Object
63
64
65
|
# File 'lib/mock_redis.rb', line 63
def db
options[:db]
end
|
#host ⇒ Object
55
56
57
|
# File 'lib/mock_redis.rb', line 55
def host
options[:host]
end
|
#id ⇒ Object
Also known as:
location
46
47
48
|
# File 'lib/mock_redis.rb', line 46
def id
"redis://#{host}:#{port}/#{db}"
end
|
#initialize_copy(source) ⇒ Object
96
97
98
99
|
# File 'lib/mock_redis.rb', line 96
def initialize_copy(source)
super
@db = @db.clone
end
|
#now ⇒ Object
Also known as:
time
67
68
69
|
# File 'lib/mock_redis.rb', line 67
def now
options[:time_class].now
end
|
#port ⇒ Object
59
60
61
|
# File 'lib/mock_redis.rb', line 59
def port
options[:port]
end
|
#reconnect ⇒ Object
84
85
86
|
# File 'lib/mock_redis.rb', line 84
def reconnect
self
end
|
#respond_to?(method, include_private = false) ⇒ Boolean
88
89
90
|
# File 'lib/mock_redis.rb', line 88
def respond_to?(method, include_private = false)
super || @db.respond_to?(method, include_private)
end
|
#time_at(timestamp) ⇒ Object
72
73
74
|
# File 'lib/mock_redis.rb', line 72
def time_at(timestamp)
options[:time_class].at(timestamp)
end
|