redis_assist 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/redis_assist/base.rb +10 -32
- data/lib/redis_assist/callbacks.rb +59 -0
- data/lib/redis_assist/version.rb +1 -1
- data/lib/redis_assist.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bcf176574c0e2ac94dcb13dbe7eeeb0f30f3784
|
4
|
+
data.tar.gz: 4829e9b18420dad2a506703bff439fb4c28b7484
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0b80cd10a09fdc88d3e2e0e1566134e60cc5c7a0a62b1456ece2dbe6427ad6feb5d458554a963d0ed952fe6fc389ef5313613b74dcb8065bd3429396c198fd4
|
7
|
+
data.tar.gz: aa51bd8a86fb59e38d92439435a55cffbe42ed032a49094a3657a448bc0390756cbe74f5dc89b8763bf190b101618873395aaeaf816987dd411b077512dbcae7
|
data/lib/redis_assist/base.rb
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
module RedisAssist
|
2
2
|
class Base
|
3
|
+
|
4
|
+
include Callbacks
|
5
|
+
|
6
|
+
before_create {|instance| instance.created_at = Time.now.to_f if instance.respond_to?(:created_at) }
|
7
|
+
before_update {|instance| instance.updated_at = Time.now.to_f if instance.respond_to?(:updated_at) }
|
8
|
+
after_delete {|instance| instance.deleted_at = Time.now.to_f if instance.respond_to?(:deleted_at) }
|
9
|
+
after_create {|instance| instance.new_record = false }
|
10
|
+
|
3
11
|
class << self
|
4
12
|
|
5
13
|
def attr_persist(name, opts={})
|
@@ -316,47 +324,17 @@ module RedisAssist
|
|
316
324
|
errors << { field => message }
|
317
325
|
end
|
318
326
|
|
327
|
+
|
319
328
|
protected
|
320
329
|
|
321
330
|
|
322
|
-
attr_writer
|
331
|
+
attr_writer :id, :errors
|
323
332
|
attr_accessor :lists, :hashes, :new_record
|
324
|
-
|
325
|
-
def _on_load; end
|
326
|
-
|
327
|
-
def _before_validation
|
328
|
-
self.errors = []
|
329
|
-
end
|
330
|
-
|
331
|
-
def _before_create
|
332
|
-
self.created_at = Time.now.to_f if respond_to?(:created_at)
|
333
|
-
end
|
334
333
|
|
335
|
-
def _before_update
|
336
|
-
self.updated_at = Time.now.to_f if respond_to?(:updated_at)
|
337
|
-
end
|
338
|
-
|
339
|
-
def _after_delete
|
340
|
-
self.deleted_at = Time.now.to_f if respond_to?(:deleted_at)
|
341
|
-
end
|
342
334
|
|
343
|
-
def _after_create
|
344
|
-
self.new_record = false
|
345
|
-
end
|
346
|
-
|
347
|
-
def _before_save; end
|
348
|
-
def _after_save; end
|
349
|
-
def _after_update; end
|
350
|
-
|
351
|
-
|
352
335
|
private
|
353
336
|
|
354
337
|
|
355
|
-
def invoke_callback(callback)
|
356
|
-
send("_#{callback}")
|
357
|
-
send(callback) if respond_to? callback
|
358
|
-
end
|
359
|
-
|
360
338
|
def generate_id
|
361
339
|
redis.incr("#{self.class.key_prefix}:id_sequence")
|
362
340
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module RedisAssist
|
2
|
+
module Callbacks
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
base.define_callbacks
|
7
|
+
end
|
8
|
+
|
9
|
+
def invoke_callback(callback_type)
|
10
|
+
receivers = self.class.callbacks[callback_type] || []
|
11
|
+
receivers.each do |callback_proc|
|
12
|
+
callback_proc.call(self)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
CALLBACK_TYPES = [
|
18
|
+
:on_load,
|
19
|
+
:before_validation,
|
20
|
+
:before_create,
|
21
|
+
:before_save,
|
22
|
+
:before_update,
|
23
|
+
:after_create,
|
24
|
+
:after_save,
|
25
|
+
:after_update,
|
26
|
+
:after_delete,
|
27
|
+
:after_update
|
28
|
+
]
|
29
|
+
|
30
|
+
def callbacks
|
31
|
+
@callbacks ||= {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def define_callbacks
|
35
|
+
CALLBACK_TYPES.each do |callback_type|
|
36
|
+
define_singleton_method(callback_type) do |*callback_methods, &block|
|
37
|
+
add_callback(callback_type) do |instance|
|
38
|
+
callback_methods.each do |callback_method|
|
39
|
+
instance.send callback_method
|
40
|
+
end
|
41
|
+
|
42
|
+
block.call(instance) if block
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def add_callback(callback_type, &block)
|
51
|
+
callback_proc = Proc.new do |instance|
|
52
|
+
block.call(instance)
|
53
|
+
end
|
54
|
+
|
55
|
+
(callbacks[callback_type] ||= []) << callback_proc
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/redis_assist/version.rb
CHANGED
data/lib/redis_assist.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_assist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Love
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -130,6 +130,7 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- lib/redis_assist/base.rb
|
133
|
+
- lib/redis_assist/callbacks.rb
|
133
134
|
- lib/redis_assist/config.rb
|
134
135
|
- lib/redis_assist/transform.rb
|
135
136
|
- lib/redis_assist/transforms/boolean_transform.rb
|