Skip to content

Commit 0685cbc

Browse files
authored
Merge pull request #243 from pfeiffer/feature/delete_keys
Rename #delete! to #redis_delete_objects
2 parents 9d2e37b + 782b274 commit 0685cbc

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

lib/redis/objects.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,15 @@ module InstanceMethods
173173
def redis() self.class.redis end
174174
def redis_objects() self.class.redis_objects end
175175

176-
def delete!
177-
redis.del(redis_objects.keys.map { |k| send(k) }.reject(&:nil?).map { |obj| obj.key })
176+
def redis_delete_objects
177+
redis.del(redis_instance_keys)
178+
end
179+
180+
def redis_instance_keys
181+
redis_objects
182+
.reject { |_, value| value[:global] }
183+
.keys
184+
.collect { |name| redis_field_key(name) }
178185
end
179186

180187
def redis_options(name) #:nodoc:

spec/redis_objects_model_spec.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,8 +1009,15 @@ class CustomIdFieldRoster < UidRoster
10091009
end
10101010

10111011
it "should allow deleting the entire object" do
1012-
@roster.redis.keys.select { |key| key.match(/^roster:/)}.count.should > 0
1013-
@roster.delete!.should > 0
1014-
@roster.redis.keys.select { |key| key.match(/^roster:/)}.count.should == 0
1012+
(@roster.redis.keys & @roster.redis_instance_keys).count.should > 0
1013+
@roster.redis_delete_objects.should > 0
1014+
(@roster.redis.keys & @roster.redis_instance_keys).count.should == 0
1015+
end
1016+
1017+
it "should be able to return all instance keys" do
1018+
@roster.redis_instance_keys.include?('roster:1:player_stats').should == true
1019+
@roster.redis_instance_keys.include?('players:my_rank:user1').should == true
1020+
@roster.redis_instance_keys.include?('roster:1:player_stats').should == true
1021+
@roster.redis_instance_keys.include?('players:all_stats').should == false
10151022
end
10161023
end

0 commit comments

Comments
 (0)