dkastner-moneta 1.0.3 → 1.0.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/lib/moneta/adapters/active_record.rb +9 -7
- data/lib/moneta/version.rb +1 -1
- data/spec/moneta_active_record_spec.rb +7 -0
- metadata +46 -67
|
@@ -25,33 +25,35 @@ module Moneta
|
|
|
25
25
|
|
|
26
26
|
def migrate
|
|
27
27
|
unless Store.table_exists?
|
|
28
|
-
Store.connection.create_table Store.table_name
|
|
29
|
-
t.string '
|
|
28
|
+
Store.connection.create_table Store.table_name do |t|
|
|
29
|
+
t.string 'key_name', :primary => :true
|
|
30
30
|
t.string 'value'
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def key?(key)
|
|
36
|
-
record = Store.
|
|
36
|
+
record = Store.find_by_key_name key_for(key)
|
|
37
37
|
!record.nil?
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def [](key)
|
|
41
|
-
record = Store.
|
|
41
|
+
record = Store.find_by_key_name key_for(key)
|
|
42
42
|
record ? deserialize(record.value) : nil
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def delete(key)
|
|
46
|
-
record = Store.
|
|
46
|
+
record = Store.find_by_key_name key_for(key)
|
|
47
47
|
if record
|
|
48
|
-
Store.where(:
|
|
48
|
+
Store.where(:key_name => key_for(record.key_name)).delete_all
|
|
49
49
|
deserialize record.value
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def store(key, value, options = {})
|
|
54
|
-
record = Store.
|
|
54
|
+
record = Store.find_by_key_name key_for(key)
|
|
55
|
+
record ||= Store.new :key_name => key_for(key)
|
|
56
|
+
record.value = serialize(value)
|
|
55
57
|
record.save!
|
|
56
58
|
value
|
|
57
59
|
end
|
data/lib/moneta/version.rb
CHANGED
|
@@ -19,6 +19,13 @@ if defined?(ActiveRecord)
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
it_should_behave_like "a read/write Moneta cache"
|
|
22
|
+
|
|
23
|
+
it 'updates an existing key/value' do
|
|
24
|
+
@cache['foo/bar'] = 4
|
|
25
|
+
@cache['foo/bar'] += 4
|
|
26
|
+
records = Moneta::Adapters::ActiveRecord::Store.find :all, :conditions => { :key_name => 'foo/bar' }
|
|
27
|
+
records.count.should == 1
|
|
28
|
+
end
|
|
22
29
|
end
|
|
23
30
|
|
|
24
31
|
context 'using preexisting ActiveRecord connection' do
|
metadata
CHANGED
|
@@ -1,74 +1,61 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dkastner-moneta
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- 1
|
|
7
|
-
- 0
|
|
8
|
-
- 3
|
|
9
|
-
version: 1.0.3
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.4
|
|
5
|
+
prerelease:
|
|
10
6
|
platform: ruby
|
|
11
|
-
authors:
|
|
7
|
+
authors:
|
|
12
8
|
- Yehuda Katz
|
|
13
9
|
- Derek Kastner
|
|
14
10
|
autorequire:
|
|
15
11
|
bindir: bin
|
|
16
12
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
date: 2011-02-10 00:00:00 -05:00
|
|
13
|
+
date: 2011-02-10 00:00:00.000000000 -05:00
|
|
19
14
|
default_executable:
|
|
20
|
-
dependencies:
|
|
21
|
-
- !ruby/object:Gem::Dependency
|
|
15
|
+
dependencies:
|
|
16
|
+
- !ruby/object:Gem::Dependency
|
|
22
17
|
name: bundler
|
|
23
|
-
requirement: &
|
|
18
|
+
requirement: &2156656780 !ruby/object:Gem::Requirement
|
|
24
19
|
none: false
|
|
25
|
-
requirements:
|
|
26
|
-
- -
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
|
|
29
|
-
- 0
|
|
30
|
-
version: "0"
|
|
20
|
+
requirements:
|
|
21
|
+
- - ! '>='
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: '0'
|
|
31
24
|
type: :development
|
|
32
25
|
prerelease: false
|
|
33
|
-
version_requirements: *
|
|
34
|
-
- !ruby/object:Gem::Dependency
|
|
26
|
+
version_requirements: *2156656780
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
35
28
|
name: rake
|
|
36
|
-
requirement: &
|
|
29
|
+
requirement: &2156656300 !ruby/object:Gem::Requirement
|
|
37
30
|
none: false
|
|
38
|
-
requirements:
|
|
39
|
-
- -
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
|
|
42
|
-
- 0
|
|
43
|
-
version: "0"
|
|
31
|
+
requirements:
|
|
32
|
+
- - ! '>='
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '0'
|
|
44
35
|
type: :development
|
|
45
36
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
47
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
+
version_requirements: *2156656300
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
48
39
|
name: rspec
|
|
49
|
-
requirement: &
|
|
40
|
+
requirement: &2156655840 !ruby/object:Gem::Requirement
|
|
50
41
|
none: false
|
|
51
|
-
requirements:
|
|
52
|
-
- -
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
|
|
55
|
-
- 0
|
|
56
|
-
version: "0"
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
57
46
|
type: :development
|
|
58
47
|
prerelease: false
|
|
59
|
-
version_requirements: *
|
|
48
|
+
version_requirements: *2156655840
|
|
60
49
|
description: A unified interface to key/value stores
|
|
61
|
-
email:
|
|
50
|
+
email:
|
|
62
51
|
- wycats@gmail.com
|
|
63
52
|
- dkastner@gmail.com
|
|
64
53
|
executables: []
|
|
65
|
-
|
|
66
54
|
extensions: []
|
|
67
|
-
|
|
68
|
-
extra_rdoc_files:
|
|
55
|
+
extra_rdoc_files:
|
|
69
56
|
- README
|
|
70
57
|
- LICENSE
|
|
71
|
-
files:
|
|
58
|
+
files:
|
|
72
59
|
- .gitignore
|
|
73
60
|
- Gemfile
|
|
74
61
|
- LICENSE
|
|
@@ -125,38 +112,30 @@ files:
|
|
|
125
112
|
has_rdoc: true
|
|
126
113
|
homepage: http://github.com/dkastner/moneta
|
|
127
114
|
licenses: []
|
|
128
|
-
|
|
129
115
|
post_install_message:
|
|
130
116
|
rdoc_options: []
|
|
131
|
-
|
|
132
|
-
require_paths:
|
|
117
|
+
require_paths:
|
|
133
118
|
- lib
|
|
134
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
120
|
none: false
|
|
136
|
-
requirements:
|
|
137
|
-
- -
|
|
138
|
-
- !ruby/object:Gem::Version
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
- 0
|
|
142
|
-
version: "0"
|
|
143
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ! '>='
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
126
|
none: false
|
|
145
|
-
requirements:
|
|
146
|
-
- -
|
|
147
|
-
- !ruby/object:Gem::Version
|
|
148
|
-
|
|
149
|
-
segments:
|
|
150
|
-
- 0
|
|
151
|
-
version: "0"
|
|
127
|
+
requirements:
|
|
128
|
+
- - ! '>='
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
152
131
|
requirements: []
|
|
153
|
-
|
|
154
132
|
rubyforge_project:
|
|
155
|
-
rubygems_version: 1.
|
|
133
|
+
rubygems_version: 1.6.2
|
|
156
134
|
signing_key:
|
|
157
135
|
specification_version: 3
|
|
158
|
-
summary: A unified interface to key/value stores, including MongoDB, Redis, Tokyo,
|
|
159
|
-
|
|
136
|
+
summary: A unified interface to key/value stores, including MongoDB, Redis, Tokyo,
|
|
137
|
+
and ActiveRecord
|
|
138
|
+
test_files:
|
|
160
139
|
- spec/moneta_active_record_spec.rb
|
|
161
140
|
- spec/moneta_basic_file_spec.rb
|
|
162
141
|
- spec/moneta_couch_spec.rb
|