active_repository 0.3.4 → 0.3.5
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/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
|