dm-redis-adapter 0.2.3 → 0.3.0
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.textile +5 -2
- data/Rakefile +2 -2
- data/lib/dm-redis-adapter/adapter.rb +7 -5
- data/spec/dm_redis_validations_spec.rb +1 -1
- metadata +21 -26
data/README.textile
CHANGED
@@ -14,6 +14,7 @@ h1. Upgrading
|
|
14
14
|
|
15
15
|
h1. Changelog
|
16
16
|
|
17
|
+
* v0.3.0 Updates to support ruby 1.9.2 (thanks arbarlow!)
|
17
18
|
* v0.2.1 Fixes to sorting
|
18
19
|
* v0.1.1 Update to redis-rb v2.0.0
|
19
20
|
* v0.1 Update to store records as redis hash values
|
@@ -25,7 +26,7 @@ Prerequisites:
|
|
25
26
|
* Redis:
|
26
27
|
** <a href="http://code.google.com/p/redis/">Redis, v2.0.x RC series</a>
|
27
28
|
* Gems:
|
28
|
-
** <a href="http://github.com/datamapper/dm-core/">dm-core</a> v1.0.
|
29
|
+
** <a href="http://github.com/datamapper/dm-core/">dm-core</a> v1.0.2
|
29
30
|
|
30
31
|
Install the dm-redis adapter:
|
31
32
|
<pre>
|
@@ -97,4 +98,6 @@ h1. Badass contributors
|
|
97
98
|
* <a href="http://github.com/aeden">Anthony Eden (aeden)</a> Gem cleanup, update to jeweler
|
98
99
|
* <a href="http://github.com/sr">Simon Roset (sr)</a> Fixes for edge dm-core
|
99
100
|
* <a href="http://github.com/cehoffman">Chris Hoffman (cehoffman)</a> Fixes for Ruby 1.9, bundler for development deps, fixes for sorting
|
100
|
-
* <a href="http://github.com/bpo">brian p o'rourke (bpo)</a> Updates for newer versions of redis client and DM JSON type support, move to hash storage
|
101
|
+
* <a href="http://github.com/bpo">brian p o'rourke (bpo)</a> Updates for newer versions of redis client and DM JSON type support, move to hash storage
|
102
|
+
* <a href="http://github.com/arbarlow">Alex Barlow (arbarlow)</a> Fixes for ruby 1.9.2
|
103
|
+
|
data/Rakefile
CHANGED
@@ -26,8 +26,8 @@ begin
|
|
26
26
|
gemspec.homepage = HOMEPAGE
|
27
27
|
gemspec.description = SUMMARY
|
28
28
|
gemspec.authors = AUTHORS
|
29
|
-
gemspec.add_dependency "dm-core", ">= 1.0.
|
30
|
-
gemspec.add_dependency "dm-types", ">= 1.0.
|
29
|
+
gemspec.add_dependency "dm-core", ">= 1.0.2"
|
30
|
+
gemspec.add_dependency "dm-types", ">= 1.0.2"
|
31
31
|
gemspec.add_dependency "redis", ">= 2.0.3"
|
32
32
|
gemspec.files = %w(MIT-LICENSE README.textile Rakefile) + Dir.glob("{lib,spec}/**/*")
|
33
33
|
gemspec.has_rdoc = false
|
@@ -51,7 +51,8 @@ module DataMapper
|
|
51
51
|
record[name] = [Integer, Date].include?(property.primitive) ? property.typecast( value ) : value
|
52
52
|
end
|
53
53
|
end
|
54
|
-
records = query.
|
54
|
+
records = query.match_records(records)
|
55
|
+
records = query.sort_records(records)
|
55
56
|
records
|
56
57
|
end
|
57
58
|
|
@@ -87,10 +88,11 @@ module DataMapper
|
|
87
88
|
#
|
88
89
|
# @api semipublic
|
89
90
|
def delete(collection)
|
90
|
-
|
91
|
+
collection.count.times do |x|
|
92
|
+
record = collection[x]
|
91
93
|
@redis.del("#{collection.query.model.to_s.downcase}:#{record[redis_key_for(collection.query.model)]}")
|
92
94
|
@redis.srem(key_set_for(collection.query.model), record[redis_key_for(collection.query.model)])
|
93
|
-
|
95
|
+
record.model.properties.select {|p| p.index}.each do |p|
|
94
96
|
@redis.srem("#{collection.query.model.to_s.downcase}:#{p.name}:#{encode(record[p.name])}", record[redis_key_for(collection.query.model)])
|
95
97
|
end
|
96
98
|
end
|
@@ -111,7 +113,7 @@ module DataMapper
|
|
111
113
|
attributes = resource.dirty_attributes
|
112
114
|
|
113
115
|
resource.model.properties.select {|p| p.index}.each do |property|
|
114
|
-
@redis.sadd("#{resource.model.to_s.downcase}:#{property.name}:#{encode(resource[property.name.to_s])}", resource.key)
|
116
|
+
@redis.sadd("#{resource.model.to_s.downcase}:#{property.name}:#{encode(resource[property.name.to_s])}", resource.key.first.to_s)
|
115
117
|
end
|
116
118
|
|
117
119
|
properties_to_set = []
|
@@ -212,7 +214,7 @@ module DataMapper
|
|
212
214
|
# Array of id's of all members matching the query
|
213
215
|
# @api private
|
214
216
|
def find_matches(query, operand)
|
215
|
-
@redis.smembers("#{query.model.to_s.downcase}:#{operand.subject.name}:#{encode(operand.value)}")
|
217
|
+
@redis.smembers("#{query.model.to_s.downcase}:#{operand.subject.name}:#{encode(operand.value.to_s)}")
|
216
218
|
end
|
217
219
|
|
218
220
|
##
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-redis-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 17
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
- 2
|
9
7
|
- 3
|
10
|
-
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Dan Herrera
|
@@ -15,57 +14,54 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2011-03-13 00:00:00 -08:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
24
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
21
|
+
name: dm-core
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 23
|
30
27
|
segments:
|
31
28
|
- 1
|
32
29
|
- 0
|
33
|
-
-
|
34
|
-
version: 1.0.
|
35
|
-
name: dm-core
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
- 2
|
31
|
+
version: 1.0.2
|
38
32
|
type: :runtime
|
39
33
|
prerelease: false
|
40
|
-
version_requirements:
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: dm-types
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
38
|
none: false
|
42
39
|
requirements:
|
43
40
|
- - ">="
|
44
41
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 23
|
46
42
|
segments:
|
47
43
|
- 1
|
48
44
|
- 0
|
49
|
-
-
|
50
|
-
version: 1.0.
|
51
|
-
name: dm-types
|
52
|
-
requirement: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
45
|
+
- 2
|
46
|
+
version: 1.0.2
|
54
47
|
type: :runtime
|
55
48
|
prerelease: false
|
56
|
-
version_requirements:
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: redis
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
58
54
|
requirements:
|
59
55
|
- - ">="
|
60
56
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 9
|
62
57
|
segments:
|
63
58
|
- 2
|
64
59
|
- 0
|
65
60
|
- 3
|
66
61
|
version: 2.0.3
|
67
|
-
|
68
|
-
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: *id003
|
69
65
|
description: DataMapper adapter for the Redis key-value database
|
70
66
|
email: whoahbot@gmail.com
|
71
67
|
executables: []
|
@@ -111,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
107
|
requirements:
|
112
108
|
- - ">="
|
113
109
|
- !ruby/object:Gem::Version
|
114
|
-
hash:
|
110
|
+
hash: -599772013771505698
|
115
111
|
segments:
|
116
112
|
- 0
|
117
113
|
version: "0"
|
@@ -120,7 +116,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
116
|
requirements:
|
121
117
|
- - ">="
|
122
118
|
- !ruby/object:Gem::Version
|
123
|
-
hash: 3
|
124
119
|
segments:
|
125
120
|
- 0
|
126
121
|
version: "0"
|