redis_assist 0.1.2 → 0.2.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.
- 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
|