safe_callbacks 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +15 -0
  2. data/lib/safe_callbacks_spec.rb +51 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODU0NTU4ZmFmMGY0Y2JlYzYyZmQwNTI4ODU0ZWEyNTk4ODYzZjI5MA==
5
+ data.tar.gz: !binary |-
6
+ ZWE0Yzg4YTcxZjdjNzlkOWUyNmQ4MWFkYTU5Nzg2MjZjN2QwOTc2OA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ Y2YxNzBiNzk5YmEwN2Q5MDgyOTY5ODk5NjM0ZTQ4NGY5YWI5Y2RkYjM3YzM3
10
+ NjMxZDIyMDFmNTY2NWM4ZWZhY2NmMDc3YTgzMTc0M2ZmMGIwNjEwNDMzZTI2
11
+ ODIxODNjYzlkNDc0OWYwMTE4OTU3NGI3OGU2MTFjNWQ4MzYwNWI=
12
+ data.tar.gz: !binary |-
13
+ N2E2OGZkMTliMDZiYTdmMDM1ZWFhMDlkZWE3MWRhYTY1ZDk4MWFjODE3YTEw
14
+ ZjQ5MmU3ODcyMGNmZWZhOWZmNGJlNGMzZjdiMTQ5ODU5Zjg2YzlhYTIzNTFk
15
+ MWI1M2JjYjM3NTdhNDBmYzVjMGYzNGZjZmI2YzRjZGUwNWUyYzY=
@@ -0,0 +1,51 @@
1
+
2
+ module SafeCallbacks
3
+ CALLBACK_METHODS = [
4
+ :after_create,
5
+ :after_destroy,
6
+ :after_save,
7
+ :after_validation,
8
+ :before_create,
9
+ :before_destroy,
10
+ :before_save,
11
+ :before_update,
12
+ :before_validation,
13
+ ]
14
+
15
+ class << self
16
+ def extended(mod)
17
+ SafeCallbacks::CALLBACK_METHODS.each do |callback_method_name|
18
+ unsafe_callback_method_name = :"unsafe_#{callback_method_name}"
19
+
20
+ if mod.respond_to?(callback_method_name) && !mod.respond_to?(unsafe_callback_method_name)
21
+ (class << mod; self; end).instance_eval do
22
+ alias_method unsafe_callback_method_name, callback_method_name
23
+ end
24
+ end
25
+ end
26
+
27
+ mod.extend ClassMethods
28
+ end
29
+
30
+ def included(mod)
31
+ mod.extend self
32
+ end
33
+ end
34
+
35
+ module ClassMethods
36
+ CALLBACK_METHODS.each do |callback_method_name|
37
+ define_method callback_method_name do |method_name, options={}|
38
+ safe_method_name = :"safe_#{method_name}"
39
+
40
+ super safe_method_name, options
41
+
42
+ define_method safe_method_name do
43
+ self.send(method_name)
44
+ true
45
+ end
46
+
47
+ private safe_method_name
48
+ end
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: safe_callbacks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Scott Taylor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-23 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Default active model callbacks to always return true
14
+ email: scott@railsnewbie.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/safe_callbacks_spec.rb
20
+ homepage: http://github.com/GoLearnup/safe_callbacks
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.2
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Default active model callbacks to always return true
44
+ test_files: []