redis-model-extension 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +52 -1
- data/VERSION +1 -1
- data/lib/database.rb +25 -13
- data/lib/redis-model-extension.rb +32 -22
- data/redis-model-extension.gemspec +3 -2
- data/test/test_database_module.rb +25 -0
- data/test/test_redis-model-extension.rb +26 -3
- metadata +30 -29
data/README.markdown
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
Redis model is basic implementation of few methods for creating model which store data in Redis
|
4
4
|
|
5
|
+
## Initialization
|
6
|
+
|
7
|
+
You can use yml config file in `config` directory:
|
8
|
+
|
9
|
+
``` yml
|
10
|
+
test:
|
11
|
+
host: "127.0.0.1"
|
12
|
+
port: 6379
|
13
|
+
db: 3
|
14
|
+
other omnited...
|
15
|
+
```
|
16
|
+
|
17
|
+
Or you can setup directly in initializer (or before any of redis call) redis instance directly:
|
18
|
+
|
19
|
+
``` ruby
|
20
|
+
RedisModelExtension::Database.redis = Redis.new(host: "127.0.0.1", port: 6379, db: 0)
|
21
|
+
```
|
22
|
+
|
5
23
|
## Usage
|
6
24
|
|
7
25
|
``` ruby
|
@@ -14,7 +32,7 @@ class TestRedisModel
|
|
14
32
|
:symbol => :to_sym,
|
15
33
|
},
|
16
34
|
:required => [:integer, :string],
|
17
|
-
:redis_key => [:string],
|
35
|
+
:redis_key => [:string, :symbol],
|
18
36
|
:redis_aliases => {
|
19
37
|
:token => [:symbol]
|
20
38
|
}
|
@@ -24,6 +42,39 @@ class TestRedisModel
|
|
24
42
|
end
|
25
43
|
|
26
44
|
foo = TestRedisModel.new()
|
45
|
+
|
46
|
+
# you can validate your object
|
47
|
+
|
48
|
+
if foo.valid?
|
49
|
+
foo.save #save object
|
50
|
+
else
|
51
|
+
puts foo.errors #you can get nice errors what is wrong
|
52
|
+
end
|
53
|
+
|
54
|
+
#you can update more attributes at once
|
55
|
+
foo.update(:integer => 234, :string => "bar")
|
56
|
+
|
57
|
+
# !!! if you try to save invalid object you will get ArgumentError execption !!!
|
58
|
+
|
59
|
+
# after save you can find and get object find_by_alias
|
60
|
+
|
61
|
+
#this will return array of all object witch has string with value "foo"
|
62
|
+
#you can perfor find only with keys which are in redis key
|
63
|
+
#this is slow variant for redis but compared to other databases super fast :-)
|
64
|
+
#if you specify all keys from redis key it will perform faster method get
|
65
|
+
TestRedisModel.find(:string => "foo")
|
66
|
+
|
67
|
+
#you can use get method if you know all keys used in redis key
|
68
|
+
#this variant is super fast
|
69
|
+
TestRedisModel.get(:string => "foo", :symbol=> true)
|
70
|
+
|
71
|
+
#you can ask redis if this item exists
|
72
|
+
TestRedisModel.exists?(:string => "foo", :symbol=> true)
|
73
|
+
|
74
|
+
#you can try to find by alias - alias needs to be uniq
|
75
|
+
#use alias only for uniq combination of keys
|
76
|
+
TestRedisModel.find_by_alias(:token, :symbol=> true)
|
77
|
+
|
27
78
|
```
|
28
79
|
|
29
80
|
Now you can easily access all attributes from TestRedisModel by `foo.integer` or exists? `foo.integer?` or set value by `foo.integer = 1234`
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/lib/database.rb
CHANGED
@@ -2,20 +2,32 @@
|
|
2
2
|
#Wrapper for redis connection
|
3
3
|
#============================
|
4
4
|
#Creates only one connection to redis per application in first time it needs to work with redis
|
5
|
-
module
|
5
|
+
module RedisModelExtension
|
6
|
+
module Database
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
def self.config
|
9
|
+
if File.exists?('config/redis_config.yml')
|
10
|
+
YAML.load_file('config/redis_config.yml')[ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development'].symbolize_keys
|
11
|
+
else
|
12
|
+
FileUtils.mkdir_p('config') unless File.exists?('config')
|
13
|
+
FileUtils.cp(File.join(File.dirname(__FILE__),"../config/redis_config.yml.example"), 'config/redis_config.yml.example')
|
14
|
+
raise ArgumentError, "Redis configuration file does not exists -> 'config/redis_config.yml', please provide it! I have created example file in config directory..."
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.redis= redis
|
19
|
+
if redis.is_a?(Redis) #valid redis instance
|
20
|
+
@redis = redis
|
21
|
+
elsif redis.nil? #remove redis instance for changing connection or using in next call configs
|
22
|
+
@redis = nil
|
23
|
+
else #else you assigned something wrong
|
24
|
+
raise ArgumentError, "You have to assign Redis instance!"
|
25
|
+
end
|
14
26
|
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.redis
|
18
|
-
@redis ||= Redis.new(Database.config)
|
19
|
-
end
|
20
27
|
|
28
|
+
def self.redis
|
29
|
+
@redis ||= Redis.new(Database.config)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
21
33
|
end
|
@@ -94,12 +94,12 @@ module RedisModel
|
|
94
94
|
|
95
95
|
#Check if key by arguments exists in db
|
96
96
|
def exists?(args = {})
|
97
|
-
Database.redis.exists(self.name.constantize.generate_key(args))
|
97
|
+
RedisModelExtension::Database.redis.exists(self.name.constantize.generate_key(args))
|
98
98
|
end
|
99
99
|
|
100
100
|
#Check if key by alias name and arguments exists in db
|
101
101
|
def alias_exists?(alias_name, args = {})
|
102
|
-
Database.redis.exists(self.name.constantize.generate_alias_key(alias_name, args))
|
102
|
+
RedisModelExtension::Database.redis.exists(self.name.constantize.generate_alias_key(alias_name, args))
|
103
103
|
end
|
104
104
|
|
105
105
|
#Wrapper around find to get all instances
|
@@ -116,12 +116,12 @@ module RedisModel
|
|
116
116
|
#is key specified directly? -> no needs of looking for other keys! -> faster
|
117
117
|
if klass.valid_key?(args)
|
118
118
|
if klass.exists?(args)
|
119
|
-
data_args = Database.redis.hgetall(klass.generate_key(args))
|
119
|
+
data_args = RedisModelExtension::Database.redis.hgetall(klass.generate_key(args))
|
120
120
|
out << klass.new(args.merge(data_args).merge({:old_args => data_args}))
|
121
121
|
end
|
122
122
|
else
|
123
|
-
Database.redis.keys(klass.generate_key(args)).each do |key|
|
124
|
-
data_args = Database.redis.hgetall(key)
|
123
|
+
RedisModelExtension::Database.redis.keys(klass.generate_key(args)).each do |key|
|
124
|
+
data_args = RedisModelExtension::Database.redis.hgetall(key)
|
125
125
|
out << klass.new(args.merge(data_args).merge({:old_args => data_args}))
|
126
126
|
end
|
127
127
|
end
|
@@ -138,7 +138,7 @@ module RedisModel
|
|
138
138
|
if klass.valid_alias_key?(alias_name, args)
|
139
139
|
out << klass.get_by_alias(alias_name, args) if klass.alias_exists?(alias_name, args)
|
140
140
|
else
|
141
|
-
Database.redis.keys(klass.generate_alias_key(alias_name, args)).each do |key|
|
141
|
+
RedisModelExtension::Database.redis.keys(klass.generate_alias_key(alias_name, args)).each do |key|
|
142
142
|
out << klass.get_by_alias_key(key)
|
143
143
|
end
|
144
144
|
end
|
@@ -150,7 +150,7 @@ module RedisModel
|
|
150
150
|
args.symbolize_keys!
|
151
151
|
klass = self.name.constantize
|
152
152
|
if klass.valid_key?(args) && klass.exists?(args)
|
153
|
-
data_args = Database.redis.hgetall(klass.generate_key(args))
|
153
|
+
data_args = RedisModelExtension::Database.redis.hgetall(klass.generate_key(args))
|
154
154
|
klass.new(args.merge(data_args).merge({:old_args => data_args}))
|
155
155
|
else
|
156
156
|
nil
|
@@ -159,9 +159,9 @@ module RedisModel
|
|
159
159
|
|
160
160
|
#if you know redis key and would like to get object
|
161
161
|
def get_by_redis_key(redis_key)
|
162
|
-
if redis_key.is_a?(String) && Database.redis.exists(redis_key)
|
162
|
+
if redis_key.is_a?(String) && RedisModelExtension::Database.redis.exists(redis_key)
|
163
163
|
unless redis_key.include?("*")
|
164
|
-
data_args = Database.redis.hgetall(redis_key)
|
164
|
+
data_args = RedisModelExtension::Database.redis.hgetall(redis_key)
|
165
165
|
klass = self.name.constantize
|
166
166
|
klass.new(data_args.merge({:old_args => data_args}))
|
167
167
|
else
|
@@ -177,9 +177,9 @@ module RedisModel
|
|
177
177
|
args.symbolize_keys!
|
178
178
|
klass = self.name.constantize
|
179
179
|
if klass.valid_alias_key?(alias_name, args) && klass.alias_exists?(alias_name, args)
|
180
|
-
key = Database.redis.get(klass.generate_alias_key(alias_name, args))
|
181
|
-
if Database.redis.exists(key)
|
182
|
-
data_args = Database.redis.hgetall(key)
|
180
|
+
key = RedisModelExtension::Database.redis.get(klass.generate_alias_key(alias_name, args))
|
181
|
+
if RedisModelExtension::Database.redis.exists(key)
|
182
|
+
data_args = RedisModelExtension::Database.redis.hgetall(key)
|
183
183
|
klass.new(args.merge(data_args).merge({:old_args => data_args}))
|
184
184
|
else
|
185
185
|
nil
|
@@ -192,10 +192,10 @@ module RedisModel
|
|
192
192
|
#fastest method to get object from redis by getting it by alias and arguments
|
193
193
|
def get_by_alias_key(alias_key)
|
194
194
|
klass = self.name.constantize
|
195
|
-
if Database.redis.exists(alias_key)
|
196
|
-
key = Database.redis.get(alias_key)
|
197
|
-
if Database.redis.exists(key)
|
198
|
-
klass.new(args.merge(Database.redis.hgetall(key)).merge({:old_args => key}))
|
195
|
+
if RedisModelExtension::Database.redis.exists(alias_key)
|
196
|
+
key = RedisModelExtension::Database.redis.get(alias_key)
|
197
|
+
if RedisModelExtension::Database.redis.exists(key)
|
198
|
+
klass.new(args.merge(RedisModelExtension::Database.redis.hgetall(key)).merge({:old_args => key}))
|
199
199
|
else
|
200
200
|
nil
|
201
201
|
end
|
@@ -260,14 +260,14 @@ module RedisModel
|
|
260
260
|
|
261
261
|
#if this record exists in database
|
262
262
|
def exists?
|
263
|
-
Database.redis.exists(self.class.generate_key(self.args))
|
263
|
+
RedisModelExtension::Database.redis.exists(self.class.generate_key(self.args))
|
264
264
|
end
|
265
265
|
|
266
266
|
#remove record form database
|
267
267
|
def destroy!
|
268
268
|
if exists?
|
269
269
|
#destroy main object
|
270
|
-
Database.redis.del(redis_key)
|
270
|
+
RedisModelExtension::Database.redis.del(redis_key)
|
271
271
|
destroy_aliases!
|
272
272
|
end
|
273
273
|
end
|
@@ -278,7 +278,7 @@ module RedisModel
|
|
278
278
|
if self.old_args
|
279
279
|
self.class.conf[:redis_aliases].each do |alias_name, fields|
|
280
280
|
if self.class.valid_alias_key?(alias_name, self.old_args) && self.class.alias_exists?(alias_name, self.old_args)
|
281
|
-
Database.redis.del(self.class.generate_alias_key(alias_name, self.old_args))
|
281
|
+
RedisModelExtension::Database.redis.del(self.class.generate_alias_key(alias_name, self.old_args))
|
282
282
|
end
|
283
283
|
end
|
284
284
|
end
|
@@ -288,7 +288,7 @@ module RedisModel
|
|
288
288
|
def create_aliases
|
289
289
|
main_key = redis_key
|
290
290
|
self.class.conf[:redis_aliases].each do |alias_name, fields|
|
291
|
-
Database.redis.set(self.class.generate_alias_key(alias_name, self.args), main_key) if self.class.valid_alias_key?(alias_name, self.args)
|
291
|
+
RedisModelExtension::Database.redis.set(self.class.generate_alias_key(alias_name, self.args), main_key) if self.class.valid_alias_key?(alias_name, self.args)
|
292
292
|
end
|
293
293
|
end
|
294
294
|
|
@@ -302,13 +302,23 @@ module RedisModel
|
|
302
302
|
self.class.generate_alias_key(alias_name, self.args)
|
303
303
|
end
|
304
304
|
|
305
|
+
#update multiple attrubutes at once
|
306
|
+
def update args
|
307
|
+
args.each do |key, value|
|
308
|
+
method = "#{key}=".to_sym
|
309
|
+
if self.respond_to? method
|
310
|
+
self.send(method, value)
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
305
315
|
#save method
|
306
316
|
def save
|
307
317
|
if valid?
|
308
318
|
#generate key (possibly new)
|
309
319
|
generated_key = redis_key
|
310
|
-
Database.redis.rename(self.class.generate_key(self.old_args), generated_key) if self.old_args && generated_key != self.class.generate_key(self.old_args) && Database.redis.exists(self.class.generate_key(self.old_args))
|
311
|
-
Database.redis.hmset(generated_key, *self.args.reject{|k,v| v.nil?}.inject([]){ |arr,kv| arr + [kv[0], kv[1].to_s]})
|
320
|
+
RedisModelExtension::Database.redis.rename(self.class.generate_key(self.old_args), generated_key) if self.old_args && generated_key != self.class.generate_key(self.old_args) && RedisModelExtension::Database.redis.exists(self.class.generate_key(self.old_args))
|
321
|
+
RedisModelExtension::Database.redis.hmset(generated_key, *self.args.reject{|k,v| v.nil?}.inject([]){ |arr,kv| arr + [kv[0], kv[1].to_s]})
|
312
322
|
|
313
323
|
#destroy aliases
|
314
324
|
destroy_aliases!
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "redis-model-extension"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ondrej Bartas"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-07-27"
|
13
13
|
s.description = "It provides functions as find, find_by_alias, get, exists?, validate, save etc."
|
14
14
|
s.email = "ondrej@bartas.cz"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"redis-model-extension.gemspec",
|
32
32
|
"redis-model.gemspec",
|
33
33
|
"test/helper.rb",
|
34
|
+
"test/test_database_module.rb",
|
34
35
|
"test/test_redis-model-extension.rb"
|
35
36
|
]
|
36
37
|
s.homepage = "http://github.com/ondrejbartas/redis-model-extension"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
class DatabaseModuleTest < Test::Unit::TestCase
|
4
|
+
context "DatabaseModule" do
|
5
|
+
setup do
|
6
|
+
#cleare previously assigned redis instance
|
7
|
+
RedisModelExtension::Database.redis = nil
|
8
|
+
end
|
9
|
+
|
10
|
+
should "be initialized directly" do
|
11
|
+
assert_nothing_raised do
|
12
|
+
RedisModelExtension::Database.redis = Redis.new(host: "127.0.0.1", port: 6379, db: 0)
|
13
|
+
RedisModelExtension::Database.redis.info
|
14
|
+
end
|
15
|
+
assert RedisModelExtension::Database.redis.is_a? Redis
|
16
|
+
end
|
17
|
+
|
18
|
+
should "be initialized from config" do
|
19
|
+
assert_nothing_raised do
|
20
|
+
RedisModelExtension::Database.redis.info
|
21
|
+
end
|
22
|
+
assert RedisModelExtension::Database.redis.is_a? Redis
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -3,7 +3,7 @@ require 'helper'
|
|
3
3
|
class RedisModelTest < Test::Unit::TestCase
|
4
4
|
context "RedisModel" do
|
5
5
|
setup do
|
6
|
-
Database.redis.flushdb
|
6
|
+
RedisModelExtension::Database.redis.flushdb
|
7
7
|
|
8
8
|
class TestRedisModel
|
9
9
|
REDIS_MODEL_CONF = {
|
@@ -97,16 +97,39 @@ class RedisModelTest < Test::Unit::TestCase
|
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
+
context "updating" do
|
101
|
+
setup do
|
102
|
+
@new_args = {:integer => 123457, :string => "bar", :symbol => :foo, :boolean => false}
|
103
|
+
end
|
104
|
+
|
105
|
+
should "change attributes" do
|
106
|
+
@test_model.update @new_args
|
107
|
+
assert_equal @test_model.integer, @new_args[:integer]
|
108
|
+
assert_equal @test_model.string, @new_args[:string]
|
109
|
+
assert_equal @test_model.symbol, @new_args[:symbol]
|
110
|
+
assert_equal @test_model.boolean, @new_args[:boolean]
|
111
|
+
end
|
112
|
+
|
113
|
+
should "ignore unknown attributes and other normaly update" do
|
114
|
+
@test_model.update @new_args.merge(:unknown => "attribute")
|
115
|
+
assert_equal @test_model.integer, @new_args[:integer]
|
116
|
+
assert_equal @test_model.string, @new_args[:string]
|
117
|
+
assert_equal @test_model.symbol, @new_args[:symbol]
|
118
|
+
assert_equal @test_model.boolean, @new_args[:boolean]
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
100
123
|
context "saving" do
|
101
124
|
setup do
|
102
125
|
@test_model.save
|
103
126
|
end
|
104
127
|
|
105
128
|
should "be saved and then change of variable included in key should rename it in redis!" do
|
106
|
-
assert_equal Database.redis.keys("*").size, 2 #including key and alias
|
129
|
+
assert_equal RedisModelExtension::Database.redis.keys("*").size, 2 #including key and alias
|
107
130
|
@test_model.string = "change_of_strging"
|
108
131
|
@test_model.save
|
109
|
-
assert_equal Database.redis.keys("*").size, 2 #including key and alias
|
132
|
+
assert_equal RedisModelExtension::Database.redis.keys("*").size, 2 #including key and alias
|
110
133
|
end
|
111
134
|
|
112
135
|
should "have same elements after get" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis-model-extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
16
|
-
requirement: &
|
16
|
+
requirement: &70305276410840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70305276410840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &70305276528280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70305276528280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &70305276527660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.1.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70305276527660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70305276526760 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70305276526760
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rack
|
60
|
-
requirement: &
|
60
|
+
requirement: &70305276524500 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.3.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70305276524500
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: shoulda
|
71
|
-
requirement: &
|
71
|
+
requirement: &70305276520460 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70305276520460
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: shoulda-context
|
82
|
-
requirement: &
|
82
|
+
requirement: &70305276495380 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70305276495380
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rdoc
|
93
|
-
requirement: &
|
93
|
+
requirement: &70305276494300 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '3.12'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70305276494300
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: bundler
|
104
|
-
requirement: &
|
104
|
+
requirement: &70305276493040 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 1.0.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70305276493040
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: jeweler
|
115
|
-
requirement: &
|
115
|
+
requirement: &70305276492000 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: 1.8.3
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70305276492000
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: turn
|
126
|
-
requirement: &
|
126
|
+
requirement: &70305276491180 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: 0.8.2
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *70305276491180
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: minitest
|
137
|
-
requirement: &
|
137
|
+
requirement: &70305276490680 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *70305276490680
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: ansi
|
148
|
-
requirement: &
|
148
|
+
requirement: &70305276490000 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ~>
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: 1.2.5
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *70305276490000
|
157
157
|
description: It provides functions as find, find_by_alias, get, exists?, validate,
|
158
158
|
save etc.
|
159
159
|
email: ondrej@bartas.cz
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- redis-model-extension.gemspec
|
178
178
|
- redis-model.gemspec
|
179
179
|
- test/helper.rb
|
180
|
+
- test/test_database_module.rb
|
180
181
|
- test/test_redis-model-extension.rb
|
181
182
|
homepage: http://github.com/ondrejbartas/redis-model-extension
|
182
183
|
licenses:
|
@@ -193,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
194
|
version: '0'
|
194
195
|
segments:
|
195
196
|
- 0
|
196
|
-
hash:
|
197
|
+
hash: 1302206026057497451
|
197
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
199
|
none: false
|
199
200
|
requirements:
|