gbdev-acts_as_callback_logger 0.3.0 → 0.4.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.
- data/lib/callback_logger.rb +18 -3
- metadata +2 -2
data/lib/callback_logger.rb
CHANGED
@@ -8,10 +8,14 @@ module GBDev #:nodoc:
|
|
8
8
|
end
|
9
9
|
|
10
10
|
module ClassMethods
|
11
|
-
attr_accessor :callback_logger_text_attr,
|
11
|
+
attr_accessor :callback_logger_text_attr, # The text used to use for this entry. (ie user name). If not set the id will be used.
|
12
|
+
:callback_logger_model, # The model this entry is storing
|
13
|
+
:callback_logger_object_url, # The url to view this object in (ie show or edit view)
|
14
|
+
:callback_logger_only, # Will only add a log entry if these attributes are changed on update
|
15
|
+
:callback_logger_except # Will log all changes except these on update. If -only- is set then -except- will be ignored.
|
12
16
|
|
13
17
|
def log_callbacks(*args)
|
14
|
-
options = {:text => '', :object_url => {}, :aacl_model => 'AppLog'}
|
18
|
+
options = {:text => '', :object_url => {}, :aacl_model => 'AppLog', :only => [], :except => []}
|
15
19
|
options.merge!(args.pop) unless args.empty?
|
16
20
|
|
17
21
|
self.callback_logger_text_attr = options.delete(:text).to_sym unless options[:text].blank?
|
@@ -20,6 +24,9 @@ module GBDev #:nodoc:
|
|
20
24
|
mod = options.delete(:aacl_model).titleize.gsub(' ','')
|
21
25
|
mod = ActiveSupport::Inflector.camelize(mod).constantize
|
22
26
|
self.callback_logger_model = mod
|
27
|
+
|
28
|
+
self.callback_logger_only = options.delete(:only)
|
29
|
+
self.callback_logger_except = options.delete(:except)
|
23
30
|
|
24
31
|
extend GBDev::CallbackLogger::SingletonMethods
|
25
32
|
include GBDev::CallbackLogger::InstanceMethods
|
@@ -50,7 +57,15 @@ module GBDev #:nodoc:
|
|
50
57
|
end
|
51
58
|
|
52
59
|
def log_update
|
53
|
-
|
60
|
+
changes_to_log = self.changes
|
61
|
+
|
62
|
+
if !self.class.callback_logger_only.empty?
|
63
|
+
changes_to_log.delete_if { |key,value| !self.class.callback_logger_only.include?(key.to_sym) }
|
64
|
+
elsif !self.class.callback_logger_except.empty?
|
65
|
+
self.class.callback_logger_except.each { |key| changes_to_log.delete(key.to_s) }
|
66
|
+
end
|
67
|
+
|
68
|
+
data = changes_to_log.keys.collect{ |key| "#{key}||#{self.changes[key][0]}||#{self.changes[key][1]}" }.join('|::|')
|
54
69
|
data = "id||#{self.id}||#{self.id}|::|#{data}" unless data.empty?
|
55
70
|
|
56
71
|
class_name = self.class.to_s.titleize.downcase
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gbdev-acts_as_callback_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wes Hays
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2008-12-
|
13
|
+
date: 2008-12-10 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|