redis-model-extension 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
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.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 Database
5
+ module RedisModelExtension
6
+ module Database
6
7
 
7
- def self.config
8
- if File.exists?('config/redis_config.yml')
9
- YAML.load_file('config/redis_config.yml')[ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development'].symbolize_keys
10
- else
11
- FileUtils.mkdir_p('config') unless File.exists?('config')
12
- FileUtils.cp(File.join(File.dirname(__FILE__),"../config/redis_config.yml.example"), 'config/redis_config.yml.example')
13
- raise ArgumentError, "Redis configuration file does not exists -> 'config/redis_config.yml', please provide it! I have created example file in config directory..."
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.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-05-17"
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.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-05-17 00:00:00.000000000 Z
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: &70209861357400 !ruby/object:Gem::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: *70209861357400
24
+ version_requirements: *70305276410840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: i18n
27
- requirement: &70209861356840 !ruby/object:Gem::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: *70209861356840
35
+ version_requirements: *70305276528280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &70209861417400 !ruby/object:Gem::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: *70209861417400
46
+ version_requirements: *70305276527660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70209861416880 !ruby/object:Gem::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: *70209861416880
57
+ version_requirements: *70305276526760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack
60
- requirement: &70209861416220 !ruby/object:Gem::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: *70209861416220
68
+ version_requirements: *70305276524500
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: shoulda
71
- requirement: &70209861415420 !ruby/object:Gem::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: *70209861415420
79
+ version_requirements: *70305276520460
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda-context
82
- requirement: &70209861413780 !ruby/object:Gem::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: *70209861413780
90
+ version_requirements: *70305276495380
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rdoc
93
- requirement: &70209861410960 !ruby/object:Gem::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: *70209861410960
101
+ version_requirements: *70305276494300
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: bundler
104
- requirement: &70209861283760 !ruby/object:Gem::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: *70209861283760
112
+ version_requirements: *70305276493040
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: jeweler
115
- requirement: &70209861282480 !ruby/object:Gem::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: *70209861282480
123
+ version_requirements: *70305276492000
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: turn
126
- requirement: &70209861281040 !ruby/object:Gem::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: *70209861281040
134
+ version_requirements: *70305276491180
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: minitest
137
- requirement: &70209861280120 !ruby/object:Gem::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: *70209861280120
145
+ version_requirements: *70305276490680
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: ansi
148
- requirement: &70209861279180 !ruby/object:Gem::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: *70209861279180
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: 510311586469191495
197
+ hash: 1302206026057497451
197
198
  required_rubygems_version: !ruby/object:Gem::Requirement
198
199
  none: false
199
200
  requirements: