active_repository 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/active_repository/base.rb +28 -6
- data/lib/active_repository/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 970b623c79bc3d82f26ec2633ecd5f161a9da6c0
|
4
|
+
data.tar.gz: c27de7763704247ee533b1328fbb5bfa353769fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74be967296edef046a1b499f4732176ee44bb4dec3088537c373c397d240a59a6b7689853aa424bbfa66ffa4b11b82a70ae850a3f174183d417191109932a115
|
7
|
+
data.tar.gz: 92a5a7ab239154a9281b4b114cc7fd65e20372892489ff1a161c5edff5d98b9f02a3ce5abd9dd3cc1b74126737bd8351236f5d20d86577852fc0ae402a024a0f
|
@@ -62,11 +62,11 @@ module ActiveRepository
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def self.before_save(*methods, options)
|
65
|
-
|
65
|
+
add_callbacks(__method__, methods, options)
|
66
66
|
end
|
67
67
|
|
68
68
|
def self.after_save(*methods, options)
|
69
|
-
|
69
|
+
add_callbacks(__method__, methods, options)
|
70
70
|
end
|
71
71
|
|
72
72
|
# Constantize class name
|
@@ -90,6 +90,10 @@ module ActiveRepository
|
|
90
90
|
self.model_class.to_s.constantize
|
91
91
|
end
|
92
92
|
|
93
|
+
def self.repository?
|
94
|
+
self == persistence_class
|
95
|
+
end
|
96
|
+
|
93
97
|
# Returns the Class responsible for persisting the objects
|
94
98
|
def self.get_model_class
|
95
99
|
puts '[deprecation warning] This method is going to be deprecated, use "persistence_class" instead.'
|
@@ -203,7 +207,7 @@ module ActiveRepository
|
|
203
207
|
end
|
204
208
|
|
205
209
|
def save(force=false)
|
206
|
-
(before_save_methods
|
210
|
+
execute_callbacks(before_save_methods)
|
207
211
|
result = true
|
208
212
|
|
209
213
|
if self.class == persistence_class
|
@@ -220,7 +224,8 @@ module ActiveRepository
|
|
220
224
|
result = self.persist
|
221
225
|
end
|
222
226
|
|
223
|
-
(after_save_methods
|
227
|
+
execute_callbacks(after_save_methods)
|
228
|
+
# (after_save_methods || []).each { |method| self.send(method) }
|
224
229
|
|
225
230
|
result
|
226
231
|
end
|
@@ -260,8 +265,25 @@ module ActiveRepository
|
|
260
265
|
end
|
261
266
|
|
262
267
|
private
|
263
|
-
def self.
|
264
|
-
|
268
|
+
def self.add_callbacks(kind, methods, options)
|
269
|
+
methods = methods.map { |method| {method: method, options: options} }
|
270
|
+
current_callbacks = (self.send("#{kind}_methods") || [])
|
271
|
+
self.send("#{kind}_methods=", (current_callbacks + methods)).flatten
|
272
|
+
end
|
273
|
+
private_class_method :set_callback
|
274
|
+
|
275
|
+
def execute_callbacks(callbacks)
|
276
|
+
callbacks.each do |callback|
|
277
|
+
method = callback[:method]
|
278
|
+
options = callback[:options]
|
279
|
+
|
280
|
+
if_option = !!options[:if].try(:call, self)
|
281
|
+
else_option = options[:else].try(:call, self)
|
282
|
+
|
283
|
+
if if_option || !(else_option.nil? ? true : else_option)
|
284
|
+
self.send(method)
|
285
|
+
end
|
286
|
+
end
|
265
287
|
end
|
266
288
|
|
267
289
|
# Updates created_at and updated_at
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_repository
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Caio Torres
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_hash
|