ohm 2.0.0.rc2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44f992bf97d394e618f9e3608a13999e6a37ffbf
4
- data.tar.gz: 9e97ba2177d8067c64ab4e2b0b7a0a710703bb18
3
+ metadata.gz: b6a988b7d453e4d23906662c7fd1d8d993634892
4
+ data.tar.gz: 4673e7432655aeb8b9061d184ff912cb35ac42d3
5
5
  SHA512:
6
- metadata.gz: a0d5bc81d2fa070ee3b9306844bc61a1d089cf67e464fd8c3939274db918d986f3e6d97c8166ae3f1caf2c0d679c7c1802c55499d65dc0ca35a619ee9446b342
7
- data.tar.gz: 50008d8d644b1825507db45e921e78aaa0cd19b48fc587eca43605495155d91e816e49abc75a02f6bc4aef1e5351c81940384da4eb97c8e3e8eb6934ba75ce65
6
+ metadata.gz: b315cdda1f6011e68b2c1f194f229fc1b757d1cf8b40548df5852f8f5c96b8fe0a7dfb20c43ff8614f9bdd0905b367bab098e6ba209c389ce925859696b09dec
7
+ data.tar.gz: a64327f9085061116c85d50d63d3719d47b3521833bc72374fa3094444ca6b7d9f4ee1a747497b27b09d4c1bf02b9b6ac54075c0f5b230f3d6c6e4ae0a3cf233
data/CHANGELOG.md CHANGED
@@ -1,80 +1,81 @@
1
+ ## 2.0.0
2
+
1
3
  - Lists now respond to range.
2
4
 
3
5
  Example:
4
6
 
5
- class Comment < Ohm::Model
6
- end
7
+ ```ruby
8
+ class Comment < Ohm::Model
9
+ end
7
10
 
8
- class Post < Ohm::Model
9
- list :comments, :Comment
10
- end
11
+ class Post < Ohm::Model
12
+ list :comments, :Comment
13
+ end
11
14
 
12
- c1 = Comment.create
13
- c2 = Comment.create
14
- c3 = Comment.create
15
+ c1 = Comment.create
16
+ c2 = Comment.create
17
+ c3 = Comment.create
15
18
 
16
- post = Post.create
17
- post.comments.push(c1)
18
- post.comments.push(c2)
19
- post.comments.push(c3)
19
+ post = Post.create
20
+ post.comments.push(c1)
21
+ post.comments.push(c2)
22
+ post.comments.push(c3)
20
23
 
21
- post.comments.range(0, 1) == [c1, c2]
22
- # => true
24
+ post.comments.range(0, 1) == [c1, c2]
25
+ # => true
26
+ ```
23
27
 
24
- - When a record is created, `#id` returns a string instead of a integer.
25
- This ensures ID is string everywhere:
28
+ - When a record is created, `#id` returns a string instead of an integer.
29
+ This ensures IDs are strings everywhere:
26
30
 
27
31
  Example:
28
32
 
29
- ## Before
30
-
31
- Meetup.create(name: "Ruby").id
32
- # => 1
33
-
34
- Meetup.find(name: "Ruby").id
35
- # => "1"
33
+ ```ruby
36
34
 
37
- ## Now
35
+ # Before
36
+ Meetup.create(name: "Ruby").id # => 1
37
+ Meetup.with(:name, "Ruby").id # => "1"
38
38
 
39
- Meetup.create.id
40
- # => "1"
39
+ # Now
40
+ Meetup.create(name: "Ruby").id # => "1"
41
+ Meetup.with(:name, "Ruby").id # => "1"
42
+ ```
41
43
 
42
- Meetup.find(name: "Ruby").id
43
- # => "1"
44
-
45
- - If an attribute is set to an empty string, Ohm won't delete the attribute.
44
+ - If an attribute is set to an empty string, Ohm won't delete it.
46
45
 
47
46
  Example:
48
47
 
49
- # Before
50
- event = Meetup.create(location: "")
51
- Meetup[event.id].location
52
- # => nil
48
+ ```ruby
49
+ # Before
50
+ event = Meetup.create(location: "")
51
+ Meetup[event.id].location # => nil
53
52
 
54
- # Now
55
- event = Meetup.create(location: "")
56
- Meetup[event.id].location
57
- # => ""
53
+ # Now
54
+ event = Meetup.create(location: "")
55
+ Meetup[event.id].location # => ""
56
+ ```
58
57
 
59
58
  - Include `Ohm::List#ids` in the public API. It returns an array with all
60
- the ID's of the list.
59
+ the ID's in the list.
61
60
 
62
61
  Example:
63
62
 
64
- class Comment < Ohm::Model
65
- end
63
+ ```ruby
64
+ class Comment < Ohm::Model
65
+ end
66
66
 
67
- class Post < Ohm::Model
68
- list :comments, :Comment
69
- end
67
+ class Post < Ohm::Model
68
+ list :comments, :Comment
69
+ end
70
70
 
71
- post = Post.create
72
- post.comments.push(Comment.create)
73
- post.comments.push(Comment.create)
74
- post.comments.push(Comment.create)
71
+ post = Post.create
72
+ post.comments.push(Comment.create)
73
+ post.comments.push(Comment.create)
74
+ post.comments.push(Comment.create)
75
75
 
76
- post.comments.ids
77
- # => ["1", "2", "3"]
76
+ post.comments.ids
77
+ # => ["1", "2", "3"]
78
+ ```
78
79
 
79
80
  - Include `Ohm::BasicSet#exists?` in the public API. This makes possible
80
81
  to check if an id is included in a set. Check `Ohm::BasicSet#exists?`
@@ -82,123 +83,126 @@
82
83
 
83
84
  Example:
84
85
 
85
- class Post < Ohm::Model
86
- end
87
-
88
- class User < Ohm::Model
89
- set :posts, :Post
90
- end
86
+ ```ruby
87
+ class Post < Ohm::Model
88
+ end
91
89
 
92
- user = User.create
93
- user.posts.add(post = Post.create)
90
+ class User < Ohm::Model
91
+ set :posts, :Post
92
+ end
94
93
 
95
- user.posts.exists?(post.id) # => true
96
- user.posts.exists?("nonexistent") # => false
94
+ user = User.create
95
+ user.posts.add(post = Post.create)
97
96
 
97
+ user.posts.exists?(post.id) # => true
98
+ user.posts.exists?("nonexistent") # => false
99
+ ```
98
100
 
99
101
  - Change `Ohm::MultiSet#except` to union keys instead of intersect them
100
102
  when passing an array.
101
103
 
102
104
  Example:
103
105
 
104
- class User < Ohm::Model
105
- attribute :name
106
- end
106
+ ```ruby
107
+ class User < Ohm::Model
108
+ attribute :name
109
+ end
107
110
 
108
- john = User.create(name: "John")
109
- jane = User.create(name: "Jane")
111
+ john = User.create(name: "John")
112
+ jane = User.create(name: "Jane")
110
113
 
111
- res = User.all.except(name: [john.name, jane.name])
114
+ res = User.all.except(name: [john.name, jane.name])
112
115
 
113
- # before
114
- res.size # => 2
115
-
116
- # now
117
- res.size # => 0
116
+ # Before
117
+ res.size # => 2
118
118
 
119
+ # Now
120
+ res.size # => 0
121
+ ```
119
122
 
120
123
  - Move ID generation to Lua. With this change, it's no longer possible
121
124
  to generate custom ids. All ids are autoincremented.
122
125
 
123
-
124
126
  - Add `Ohm::Model.track` method to allow track of custom keys. This key
125
127
  is removed when the model is deleted.
126
128
 
127
129
  Example:
128
130
 
129
- class Foo < Ohm::Model
130
- track :notes
131
- end
132
-
133
- foo = Foo.create
131
+ ```ruby
132
+ class Foo < Ohm::Model
133
+ track :notes
134
+ end
134
135
 
135
- Foo.redis.call("SET", foo.key[:notes], "something")
136
- Foo.redis.call("KEYS", "*").include?("Foo:1:notes")
137
- # => true
136
+ foo = Foo.create
138
137
 
139
- foo.delete
140
- Foo.redis.call("KEYS", "*").include?("Foo:1:notes")
141
- # => false
138
+ Foo.redis.call("SET", foo.key[:notes], "something")
139
+ Foo.redis.call("GET", "Foo:1:notes")
140
+ # => "something"
142
141
 
142
+ foo.delete
143
+ Foo.redis.call("GET", "Foo:1:notes")
144
+ # => nil
145
+ ```
143
146
 
144
147
  - `Ohm::Model#reference` accepts strings as model references.
145
148
 
146
149
  Example:
147
150
 
148
- class Bar < Ohm::Model
149
- reference :foo, "SomeNamespace::Foo"
150
- end
151
+ ```ruby
152
+ class Bar < Ohm::Model
153
+ reference :foo, "SomeNamespace::Foo"
154
+ end
151
155
 
152
- Bar.create().foo.class # => SomeNamespace::Foo
156
+ Bar.create.foo.class # => SomeNamespace::Foo
157
+ ```
153
158
 
154
-
155
- - `Ohm::Model#save` sanitizes attributes before sending to Lua.
159
+ - `Ohm::Model#save` sanitizes attributes before sending them to Lua.
156
160
  This complies with the original spec in Ohm v1 where a `to_s`
157
161
  is done on each value.
158
162
 
159
163
  Example:
160
164
 
161
- class Post < Ohm::Model
162
- attribute :published
163
- end
164
-
165
- post = Post.create(published: true)
166
- post = Post[post.id]
165
+ ```ruby
166
+ class Post < Ohm::Model
167
+ attribute :published
168
+ end
167
169
 
168
- # before
169
- post.published # => "1"
170
+ post = Post.create(published: true)
171
+ post = Post[post.id]
170
172
 
171
- # now
172
- post.published # => "true"
173
+ # Before
174
+ post.published # => "1"
173
175
 
176
+ # Now
177
+ post.published # => "true"
178
+ ```
174
179
 
175
180
  - `Ohm::Model#save` don't save values for attributes set to false.
176
181
 
177
182
  Example:
178
183
 
179
- class Post < Ohm::Model
180
- attribute :published
181
- end
184
+ ```ruby
185
+ class Post < Ohm::Model
186
+ attribute :published
187
+ end
182
188
 
183
- post = Post.create(published: false)
184
- post = Post[post.id]
189
+ post = Post.create(published: false)
190
+ post = Post[post.id]
185
191
 
186
- # before
187
- post.published # => "0"
188
-
189
- # now
190
- post.published # => nil
192
+ # Before
193
+ post.published # => "0"
191
194
 
195
+ # Now
196
+ post.published # => nil
197
+ ```
192
198
 
193
199
  - `nest` dependency has been removed. Now, Ohm uses [nido][nido]
194
200
  to generate the keys that hold the data.
195
201
 
196
-
197
202
  - `scrivener` dependency has been removed. Ohm no longer supports model
198
203
  validations and favors filter validation on the boundary layer. Check
199
204
  [scrivener][scrivener] project for more information.
200
205
 
201
-
202
206
  - `redis` dependency has been removed. Ohm 2 uses [redic][redic],
203
207
  a lightweight Redis client. Redic uses the `hiredis` gem for the
204
208
  connection and for parsing the replies. Now, it defaults to a
@@ -208,86 +212,101 @@
208
212
 
209
213
  Example:
210
214
 
211
- Ohm.redis = Redic.new("redis://:<passwd>@<host>:<port>/<db>")
212
-
213
- Check Redic README for more details.
215
+ ```ruby
216
+ Ohm.redis = Redic.new("redis://:<passwd>@<host>:<port>/<db>")
217
+ ```
214
218
 
219
+ Check the Redic README for more details.
215
220
 
216
221
  - `Ohm::Model#transaction` and `Ohm::Transaction` have been removed.
217
222
 
218
-
219
223
  - Move `save` and `delete` operations to Lua scripts.
220
224
 
221
-
222
- - Support for Ruby 1.8 and 1.9 has been removed.
225
+ - Support for Ruby 1.8 has been removed.
223
226
 
224
227
  [nido]: https://github.com/soveran/nido
225
228
  [scrivener]: https://github.com/soveran/scrivener
226
229
  [redic]: https://github.com/amakawa/redic
227
230
 
228
- 1.3.2
229
- -----
231
+ ## 1.3.2
230
232
 
231
233
  - Fetching a batch of objects is now done in batches of 1000 objects at
232
234
  a time. If you are iterating over large collections, this change should
233
235
  provide a significant performance boost both in used memory and total
234
236
  execution time.
235
- - MutableSet#<< is now an alias for #add.
236
237
 
237
- 1.3.1
238
- -----
238
+ - `MutableSet#&lt;&lt;` is now an alias for `#add`.
239
239
 
240
- - Improve memory consumption when indexing persisted attributes.
240
+ ## 1.3.1
241
241
 
242
+ - Improve memory consumption when indexing persisted attributes.
242
243
  No migration is needed and old indices will be cleaned up as you save
243
244
  instances.
244
245
 
245
- 1.3.0
246
- -----
246
+ ## 1.3.0
247
247
 
248
248
  - Add Model.attributes.
249
249
 
250
- 1.2.0
251
- -----
250
+ ## 1.2.0
252
251
 
253
252
  - Enumerable fix.
253
+
254
254
  - Merge Ohm::PipelinedFetch into Ohm::Collection.
255
+
255
256
  - Fix Set, MultiSet, and List enumerable behavior.
257
+
256
258
  - Change dependencies to use latest cutest.
257
259
 
258
- 1.1.0
259
- -----
260
+ ## 1.1.0
260
261
 
261
262
  - Compatible with redis-rb 3.
262
263
 
263
- 1.0.0
264
- -----
264
+ ## 1.0.0
265
265
 
266
266
  - Fetching a batch of objects is now done through one pipeline, effectively
267
267
  reducing the IO to just 2 operations (one for SMEMBERS / LRANGE, one for
268
268
  the actual HGET of all the individual HASHes.)
269
+
269
270
  - write_remote / read_remote have been replaced with set / get respectively.
271
+
270
272
  - Ohm::Model.unique has been added.
273
+
271
274
  - Ohm::Model::Set has been renamed to Ohm::Set
275
+
272
276
  - Ohm::Model::List has been renamed to Ohm::List
277
+
273
278
  - Ohm::Model::Collection is gone.
279
+
274
280
  - Ohm::Validations is gone. Ohm now uses Scrivener::Validations.
281
+
275
282
  - Ohm::Key is gone. Ohm now uses Nest directly.
283
+
276
284
  - No more concept of volatile keys.
285
+
277
286
  - Ohm::Model::Wrapper is gone.
287
+
278
288
  - Use Symbols for constants instead of relying on Ohm::Model.const_missing.
279
- - #sort / #sort_by now uses `limit` as it's used in redis-rb, e.g. you
289
+
290
+ - `#sort` / `#sort_by` now uses `limit` as it's used in redis-rb, e.g. you
280
291
  have to pass in an array like so: sort(limit: [0, 1]).
292
+
281
293
  - Set / List have been trimmed to contain only the minimum number
282
294
  of necessary methods.
295
+
283
296
  - You can no longer mutate a collection / set as before, e.g. doing
284
297
  User.find(...).add(User[1]) will throw an error.
298
+
285
299
  - The #union operation has been added. You can now chain it with your filters.
300
+
286
301
  - Temporary keys when doing finds are now automatically cleaned up.
302
+
287
303
  - Counters are now stored in their own key instead, i.e. in
288
304
  User:<id>:counters.
305
+
289
306
  - JSON support has to be explicitly required by doing `require
290
307
  "ohm/json"`.
308
+
291
309
  - All save / delete / update operations are now done using
292
310
  transactions (see http://redis.io/topics/transactions).
311
+
293
312
  - All indices are now stored without converting the values to base64.
data/README.md CHANGED
@@ -48,7 +48,7 @@ with the sources if you want to change some settings.
48
48
 
49
49
  If you don't have Ohm, try this:
50
50
 
51
- $ [sudo] gem install ohm -v 2.0.0.rc1
51
+ $ [sudo] gem install ohm
52
52
 
53
53
  Or you can grab the code from [http://github.com/soveran/ohm][ohm].
54
54
 
@@ -24,44 +24,44 @@ local uniques = cmsgpack.unpack(ARGV[2])
24
24
  local tracked = cmsgpack.unpack(ARGV[3])
25
25
 
26
26
  local function remove_indices(model)
27
- local memo = model.key .. ":_indices"
28
- local existing = redis.call("SMEMBERS", memo)
27
+ local memo = model.key .. ":_indices"
28
+ local existing = redis.call("SMEMBERS", memo)
29
29
 
30
- for _, key in ipairs(existing) do
31
- redis.call("SREM", key, model.id)
32
- redis.call("SREM", memo, key)
33
- end
30
+ for _, key in ipairs(existing) do
31
+ redis.call("SREM", key, model.id)
32
+ redis.call("SREM", memo, key)
33
+ end
34
34
  end
35
35
 
36
36
  local function remove_uniques(model, uniques)
37
- local memo = model.key .. ":_uniques"
37
+ local memo = model.key .. ":_uniques"
38
38
 
39
- for field, _ in pairs(uniques) do
40
- local key = model.name .. ":uniques:" .. field
39
+ for field, _ in pairs(uniques) do
40
+ local key = model.name .. ":uniques:" .. field
41
41
 
42
- redis.call("HDEL", key, redis.call("HGET", memo, key))
43
- redis.call("HDEL", memo, key)
44
- end
42
+ redis.call("HDEL", key, redis.call("HGET", memo, key))
43
+ redis.call("HDEL", memo, key)
44
+ end
45
45
  end
46
46
 
47
47
  local function remove_tracked(model, tracked)
48
- for _, tracked_key in ipairs(tracked) do
49
- local key = model.key .. ":" .. tracked_key
48
+ for _, tracked_key in ipairs(tracked) do
49
+ local key = model.key .. ":" .. tracked_key
50
50
 
51
- redis.call("DEL", key)
52
- end
51
+ redis.call("DEL", key)
52
+ end
53
53
  end
54
54
 
55
55
  local function delete(model)
56
- local keys = {
57
- model.key .. ":counters",
58
- model.key .. ":_indices",
59
- model.key .. ":_uniques",
60
- model.key
61
- }
56
+ local keys = {
57
+ model.key .. ":counters",
58
+ model.key .. ":_indices",
59
+ model.key .. ":_uniques",
60
+ model.key
61
+ }
62
62
 
63
- redis.call("SREM", model.name .. ":all", model.id)
64
- redis.call("DEL", unpack(keys))
63
+ redis.call("SREM", model.name .. ":all", model.id)
64
+ redis.call("DEL", unpack(keys))
65
65
  end
66
66
 
67
67
  remove_indices(model)
data/lib/ohm/lua/save.lua CHANGED
@@ -36,82 +36,82 @@ local indices = cmsgpack.unpack(ARGV[3])
36
36
  local uniques = cmsgpack.unpack(ARGV[4])
37
37
 
38
38
  local function save(model, attrs)
39
- if model.id == nil then
40
- model.id = redis.call("INCR", model.name .. ":id")
41
- end
39
+ if model.id == nil then
40
+ model.id = redis.call("INCR", model.name .. ":id")
41
+ end
42
42
 
43
- model.key = model.name .. ":" .. model.id
43
+ model.key = model.name .. ":" .. model.id
44
44
 
45
- redis.call("SADD", model.name .. ":all", model.id)
46
- redis.call("DEL", model.key)
45
+ redis.call("SADD", model.name .. ":all", model.id)
46
+ redis.call("DEL", model.key)
47
47
 
48
- if math.mod(#attrs, 2) == 1 then
49
- error("Wrong number of attribute/value pairs")
50
- end
48
+ if math.mod(#attrs, 2) == 1 then
49
+ error("Wrong number of attribute/value pairs")
50
+ end
51
51
 
52
- if #attrs > 0 then
53
- redis.call("HMSET", model.key, unpack(attrs))
54
- end
52
+ if #attrs > 0 then
53
+ redis.call("HMSET", model.key, unpack(attrs))
54
+ end
55
55
  end
56
56
 
57
57
  local function index(model, indices)
58
- for field, enum in pairs(indices) do
59
- for _, val in ipairs(enum) do
60
- local key = model.name .. ":indices:" .. field .. ":" .. tostring(val)
61
-
62
- redis.call("SADD", model.key .. ":_indices", key)
63
- redis.call("SADD", key, model.id)
64
- end
65
- end
58
+ for field, enum in pairs(indices) do
59
+ for _, val in ipairs(enum) do
60
+ local key = model.name .. ":indices:" .. field .. ":" .. tostring(val)
61
+
62
+ redis.call("SADD", model.key .. ":_indices", key)
63
+ redis.call("SADD", key, model.id)
64
+ end
65
+ end
66
66
  end
67
67
 
68
68
  local function remove_indices(model)
69
- local memo = model.key .. ":_indices"
70
- local existing = redis.call("SMEMBERS", memo)
69
+ local memo = model.key .. ":_indices"
70
+ local existing = redis.call("SMEMBERS", memo)
71
71
 
72
- for _, key in ipairs(existing) do
73
- redis.call("SREM", key, model.id)
74
- redis.call("SREM", memo, key)
75
- end
72
+ for _, key in ipairs(existing) do
73
+ redis.call("SREM", key, model.id)
74
+ redis.call("SREM", memo, key)
75
+ end
76
76
  end
77
77
 
78
78
  local function unique(model, uniques)
79
- for field, value in pairs(uniques) do
80
- local key = model.name .. ":uniques:" .. field
79
+ for field, value in pairs(uniques) do
80
+ local key = model.name .. ":uniques:" .. field
81
81
 
82
- redis.call("HSET", model.key .. ":_uniques", key, value)
83
- redis.call("HSET", key, value, model.id)
84
- end
82
+ redis.call("HSET", model.key .. ":_uniques", key, value)
83
+ redis.call("HSET", key, value, model.id)
84
+ end
85
85
  end
86
86
 
87
87
  local function remove_uniques(model)
88
- local memo = model.key .. ":_uniques"
88
+ local memo = model.key .. ":_uniques"
89
89
 
90
- for _, key in pairs(redis.call("HKEYS", memo)) do
91
- redis.call("HDEL", key, redis.call("HGET", memo, key))
92
- redis.call("HDEL", memo, key)
93
- end
90
+ for _, key in pairs(redis.call("HKEYS", memo)) do
91
+ redis.call("HDEL", key, redis.call("HGET", memo, key))
92
+ redis.call("HDEL", memo, key)
93
+ end
94
94
  end
95
95
 
96
96
  local function verify(model, uniques)
97
- local duplicates = {}
97
+ local duplicates = {}
98
98
 
99
- for field, value in pairs(uniques) do
100
- local key = model.name .. ":uniques:" .. field
101
- local id = redis.call("HGET", key, tostring(value))
99
+ for field, value in pairs(uniques) do
100
+ local key = model.name .. ":uniques:" .. field
101
+ local id = redis.call("HGET", key, tostring(value))
102
102
 
103
- if id and id ~= tostring(model.id) then
104
- duplicates[#duplicates + 1] = field
105
- end
106
- end
103
+ if id and id ~= tostring(model.id) then
104
+ duplicates[#duplicates + 1] = field
105
+ end
106
+ end
107
107
 
108
- return duplicates, #duplicates ~= 0
108
+ return duplicates, #duplicates ~= 0
109
109
  end
110
110
 
111
111
  local duplicates, err = verify(model, uniques)
112
112
 
113
113
  if err then
114
- error("UniqueIndexViolation: " .. duplicates[1])
114
+ error("UniqueIndexViolation: " .. duplicates[1])
115
115
  end
116
116
 
117
117
  save(model, attrs)
data/ohm.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ohm"
3
- s.version = "2.0.0.rc2"
3
+ s.version = "2.0.0"
4
4
  s.summary = %{Object-hash mapping library for Redis.}
5
5
  s.description = %Q{Ohm is a library that allows to store an object in Redis, a persistent key-value database. It has very good performance.}
6
6
  s.authors = ["Michel Martens", "Damian Janowski", "Cyril David"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ohm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Martens
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-02-25 00:00:00.000000000 Z
13
+ date: 2014-03-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: redic
@@ -83,7 +83,6 @@ files:
83
83
  - CHANGELOG.md
84
84
  - LICENSE
85
85
  - README.md
86
- - Rakefile
87
86
  - benchmarks/common.rb
88
87
  - benchmarks/create.rb
89
88
  - benchmarks/delete.rb
@@ -136,9 +135,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
135
  version: '0'
137
136
  required_rubygems_version: !ruby/object:Gem::Requirement
138
137
  requirements:
139
- - - '>'
138
+ - - '>='
140
139
  - !ruby/object:Gem::Version
141
- version: 1.3.1
140
+ version: '0'
142
141
  requirements: []
143
142
  rubyforge_project: ohm
144
143
  rubygems_version: 2.0.3
data/Rakefile DELETED
@@ -1,69 +0,0 @@
1
- REDIS_DIR = File.expand_path(File.join("..", "test"), __FILE__)
2
- REDIS_CNF = File.join(REDIS_DIR, "test.conf")
3
- REDIS_PID = File.join(REDIS_DIR, "db", "redis.pid")
4
-
5
- task :default => :run
6
-
7
- desc "Run tests and manage server start/stop"
8
- task :run => [:start, :test, :stop]
9
-
10
- desc "Start the Redis server"
11
- task :start do
12
- unless File.exists?(REDIS_PID)
13
- system "redis-server #{REDIS_CNF}"
14
- end
15
- end
16
-
17
- desc "Stop the Redis server"
18
- task :stop do
19
- if File.exists?(REDIS_PID)
20
- system "kill #{File.read(REDIS_PID)}"
21
- File.delete(REDIS_PID)
22
- end
23
- end
24
-
25
- task :test do
26
- require File.expand_path("./test/helper", File.dirname(__FILE__))
27
-
28
- Cutest.run(Dir["test/*.rb"])
29
- end
30
-
31
- desc "Generate documentation"
32
- task :doc => :yard
33
-
34
- desc "Generated YARD documentation"
35
- task :yard do
36
- require "yard"
37
-
38
- opts = []
39
- opts.push("--protected")
40
- opts.push("--no-private")
41
- opts.push("--private")
42
- opts.push("--title", "Ohm &mdash; Object-hash mapping library for Redis")
43
-
44
- YARD::CLI::Yardoc.run(*opts)
45
-
46
- Dir["doc/**/*.html"].each do |file|
47
- contents = File.read(file)
48
-
49
- contents.sub! %r{</body>}, <<-EOS
50
- <script type="text/javascript">
51
- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
52
- document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
53
- </script>
54
- <script type="text/javascript">
55
- try {
56
- var pageTracker = _gat._getTracker("UA-11356145-1");
57
- pageTracker._trackPageview();
58
- } catch(err) {}</script>
59
- </body>
60
- EOS
61
-
62
- File.open(file, "w") { |f| f.write(contents) }
63
- end
64
- end
65
-
66
- desc "Deploy documentation"
67
- task :deploy do
68
- system "rsync --del -avz doc/* ohm.keyvalue.org:deploys/ohm.keyvalue.org/"
69
- end