redis-column 0.0.1 → 0.0.2
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/CHANGELOG.md +0 -0
- data/lib/redis-column/version.rb +1 -1
- data/lib/redis-column.rb +15 -1
- data/spec/redis_column_spec.rb +19 -6
- metadata +15 -14
data/CHANGELOG.md
ADDED
File without changes
|
data/lib/redis-column/version.rb
CHANGED
data/lib/redis-column.rb
CHANGED
@@ -30,8 +30,10 @@ module RedisColumn
|
|
30
30
|
delegate :redis_columns, :to => "self.class"
|
31
31
|
# Allow the instance access to RedisColumn.redis_instance
|
32
32
|
delegate :redis_instance, :to => "RedisColumn"
|
33
|
-
# Save the columns
|
33
|
+
# Save the columns after_save
|
34
34
|
after_save :save_redis_columns!
|
35
|
+
# Delete the columns after_destroy
|
36
|
+
after_destroy :delete_redis_columns!
|
35
37
|
# Boosh!
|
36
38
|
alias_method_chain :attributes, :redis_columns
|
37
39
|
end
|
@@ -68,6 +70,11 @@ module RedisColumn
|
|
68
70
|
redis_instance.set(redis_key(column_name), val.to_yaml) and return val
|
69
71
|
end
|
70
72
|
|
73
|
+
# Delete value from Redis
|
74
|
+
def delete_redis_attribute column_name
|
75
|
+
redis_instance.del(redis_key(column_name))
|
76
|
+
end
|
77
|
+
|
71
78
|
# Returns both the AR attributes and the Redis attributes in one hash
|
72
79
|
def attributes_with_redis_columns
|
73
80
|
_attributes = attributes_without_redis_columns.with_indifferent_access
|
@@ -83,6 +90,13 @@ module RedisColumn
|
|
83
90
|
end
|
84
91
|
end
|
85
92
|
|
93
|
+
# Delete all values in Redis
|
94
|
+
def delete_redis_columns!
|
95
|
+
redis_columns.each do |column_name|
|
96
|
+
delete_redis_attribute column_name
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
86
100
|
end
|
87
101
|
end
|
88
102
|
end
|
data/spec/redis_column_spec.rb
CHANGED
@@ -53,16 +53,29 @@ describe DescriptionInRedisModel do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
context "when saved" do
|
56
|
+
before do
|
57
|
+
@instance = DescriptionInRedisModel.create!(description: "A looong description")
|
58
|
+
end
|
59
|
+
|
56
60
|
it "should retrive the description from redis, with the key '<model_name>:<id>:<column_name>'" do
|
57
|
-
instance = DescriptionInRedisModel.
|
58
|
-
instance
|
59
|
-
instance.description.should == "A looong description"
|
61
|
+
@instance = DescriptionInRedisModel.find(@instance.id)
|
62
|
+
@instance.description.should == "A looong description"
|
60
63
|
end
|
61
64
|
|
62
65
|
it "should return the redis_columns within :attributes" do
|
63
|
-
instance
|
64
|
-
instance.attributes.should have_key('
|
65
|
-
|
66
|
+
@instance.attributes.should have_key('string')
|
67
|
+
@instance.attributes.should have_key('description')
|
68
|
+
end
|
69
|
+
|
70
|
+
context "And destroying" do
|
71
|
+
before do
|
72
|
+
@instance.destroy
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should also delete the description from redis" do
|
76
|
+
RedisColumn.redis_instance.get("description_in_redis_model:#{@instance.id}:description").should be_blank
|
77
|
+
end
|
78
|
+
|
66
79
|
end
|
67
80
|
end
|
68
81
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis-column
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
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: 2011-12-
|
12
|
+
date: 2011-12-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152133180 !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: *2152133180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: redis
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152132480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152132480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152131800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152131800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: autotest
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152153200 !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: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152153200
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sqlite3
|
60
|
-
requirement: &
|
60
|
+
requirement: &2152151300 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2152151300
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: fakeredis
|
71
|
-
requirement: &
|
71
|
+
requirement: &2152150160 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2152150160
|
80
80
|
description: The RedisColumn gem allows for the seamless integration of Redis within
|
81
81
|
your ActiveRecord model in order to store heavy objects away from tables with a
|
82
82
|
lot of rows.
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- .gitignore
|
90
90
|
- .rspec
|
91
91
|
- .rvmrc
|
92
|
+
- CHANGELOG.md
|
92
93
|
- Gemfile
|
93
94
|
- README.md
|
94
95
|
- Rakefile
|