sequel_simple_callbacks 0.1.1 → 0.1.2

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/Rakefile CHANGED
@@ -5,7 +5,7 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "sequel_simple_callbacks"
8
- gem.summary = %Q[Sequel Plugin to add ActiveRecord style callback declarations]
8
+ gem.summary = %Q[Sequel Model plugin that enables ActiveRecord-compatible class-level before and after filter declarations for models with support for conditional execution]
9
9
  gem.description = %Q[This plugin makes it possible to declare simple before and after callbacks on the class level just like ActiveRecord]
10
10
  gem.email = "github@tadman.ca"
11
11
  gem.homepage = "http://github.com/tadman/sequel_simple_callbacks"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -14,12 +14,43 @@ module SequelSimpleCallbacks
14
14
  STANDARD_HOOKS = (Sequel::Model::HOOKS - SPECIAL_HOOKS).freeze
15
15
  INSTALLABLE_HOOKS = (Sequel::Model::HOOKS + ADDITIONAL_HOOKS).freeze
16
16
 
17
- def apply(model_class)
17
+ def self.apply(model_class)
18
18
  end
19
19
 
20
- def configure(model_class, *arguments, &block)
20
+ def self.configure(model_class, *arguments, &block)
21
+ self.define_callback_hooks(model_class)
21
22
  end
22
-
23
+
24
+ def self.define_callback_hooks(model_class)
25
+ STANDARD_HOOKS.each do |hook|
26
+ pre_hook = nil
27
+
28
+ if (model_class.instance_methods.include?(hook))
29
+ pre_hook = :"_internal_#{hook}"
30
+
31
+ model_class.send(:alias_method, pre_hook, hook)
32
+ end
33
+
34
+ model_class.send(:define_method, hook) do
35
+ self.class.run_callbacks(self, hook)
36
+
37
+ self.send(pre_hook) if (pre_hook)
38
+ end
39
+ end
40
+
41
+ SPECIAL_HOOKS.each do |hook|
42
+ model_class.send(:define_method, hook) do
43
+ self.class.run_callbacks(self, hook)
44
+
45
+ if (new?)
46
+ self.class.run_callbacks(self, :"#{hook}_on_create")
47
+ else
48
+ self.class.run_callbacks(self, :"#{hook}_on_update")
49
+ end
50
+ end
51
+ end
52
+ end
53
+
23
54
  module ClassMethods
24
55
  # Add a callback hook to the model with parameters:
25
56
  # * :if => One of [ Symbol, Proc ] (optional)
@@ -98,7 +129,7 @@ module SequelSimpleCallbacks
98
129
  end
99
130
  end
100
131
 
101
- break if (result === false)
132
+ break if (false === result)
102
133
  end
103
134
  end
104
135
 
@@ -142,24 +173,6 @@ module SequelSimpleCallbacks
142
173
  end
143
174
 
144
175
  module InstanceMethods
145
- STANDARD_HOOKS.each do |hook|
146
- define_method(hook) do
147
- self.class.run_callbacks(self, hook)
148
- end
149
- end
150
-
151
- SPECIAL_HOOKS.each do |hook|
152
- define_method(hook) do
153
- self.class.run_callbacks(self, hook)
154
-
155
- if (new?)
156
- self.class.run_callbacks(self, :"#{hook}_on_create")
157
- else
158
- self.class.run_callbacks(self, :"#{hook}_on_update")
159
- end
160
- end
161
- end
162
-
163
176
  # This method is provided as a simple method to call arbitrary callback
164
177
  # chains without having to run through the specific method
165
178
  def run_callbacks(hook)
@@ -1,51 +1,41 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{sequel_simple_callbacks}
8
- s.version = "0.1.1"
7
+ s.name = "sequel_simple_callbacks"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["tadman"]
12
- s.date = %q{2010-08-25}
13
- s.description = %q{This plugin makes it possible to declare simple before and after callbacks on the class level just like ActiveRecord}
14
- s.email = %q{github@tadman.ca}
12
+ s.date = "2012-05-15"
13
+ s.description = "This plugin makes it possible to declare simple before and after callbacks on the class level just like ActiveRecord"
14
+ s.email = "github@tadman.ca"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/sequel_simple_callbacks.rb",
27
- "sequel_simple_callbacks.gemspec",
28
- "test/helper.rb",
29
- "test/models/conditional.rb",
30
- "test/models/example.rb",
31
- "test/models/model_triggers.rb",
32
- "test/test_sequel_simple_callbacks.rb"
33
- ]
34
- s.homepage = %q{http://github.com/tadman/sequel_simple_callbacks}
35
- s.rdoc_options = ["--charset=UTF-8"]
36
- s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.7}
38
- s.summary = %q{Sequel Plugin to add ActiveRecord style callback declarations}
39
- s.test_files = [
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "lib/sequel_simple_callbacks.rb",
26
+ "sequel_simple_callbacks.gemspec",
40
27
  "test/helper.rb",
41
- "test/models/conditional.rb",
42
- "test/models/example.rb",
43
- "test/models/model_triggers.rb",
44
- "test/test_sequel_simple_callbacks.rb"
28
+ "test/models/conditional.rb",
29
+ "test/models/example.rb",
30
+ "test/models/model_triggers.rb",
31
+ "test/test_sequel_simple_callbacks.rb"
45
32
  ]
33
+ s.homepage = "http://github.com/tadman/sequel_simple_callbacks"
34
+ s.require_paths = ["lib"]
35
+ s.rubygems_version = "1.8.24"
36
+ s.summary = "Sequel Model plugin that enables ActiveRecord-compatible class-level before and after filter declarations for models with support for conditional execution"
46
37
 
47
38
  if s.respond_to? :specification_version then
48
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
49
39
  s.specification_version = 3
50
40
 
51
41
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
metadata CHANGED
@@ -1,47 +1,42 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sequel_simple_callbacks
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - tadman
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2010-08-25 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: sequel
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :development
32
- version_requirements: *id001
33
- description: This plugin makes it possible to declare simple before and after callbacks on the class level just like ActiveRecord
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: This plugin makes it possible to declare simple before and after callbacks
31
+ on the class level just like ActiveRecord
34
32
  email: github@tadman.ca
35
33
  executables: []
36
-
37
34
  extensions: []
38
-
39
- extra_rdoc_files:
35
+ extra_rdoc_files:
40
36
  - LICENSE
41
37
  - README.rdoc
42
- files:
38
+ files:
43
39
  - .document
44
- - .gitignore
45
40
  - LICENSE
46
41
  - README.rdoc
47
42
  - Rakefile
@@ -53,41 +48,29 @@ files:
53
48
  - test/models/example.rb
54
49
  - test/models/model_triggers.rb
55
50
  - test/test_sequel_simple_callbacks.rb
56
- has_rdoc: true
57
51
  homepage: http://github.com/tadman/sequel_simple_callbacks
58
52
  licenses: []
59
-
60
53
  post_install_message:
61
- rdoc_options:
62
- - --charset=UTF-8
63
- require_paths:
54
+ rdoc_options: []
55
+ require_paths:
64
56
  - lib
65
- required_ruby_version: !ruby/object:Gem::Requirement
57
+ required_ruby_version: !ruby/object:Gem::Requirement
66
58
  none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- segments:
71
- - 0
72
- version: "0"
73
- required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
64
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- segments:
79
- - 0
80
- version: "0"
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
81
69
  requirements: []
82
-
83
70
  rubyforge_project:
84
- rubygems_version: 1.3.7
71
+ rubygems_version: 1.8.24
85
72
  signing_key:
86
73
  specification_version: 3
87
- summary: Sequel Plugin to add ActiveRecord style callback declarations
88
- test_files:
89
- - test/helper.rb
90
- - test/models/conditional.rb
91
- - test/models/example.rb
92
- - test/models/model_triggers.rb
93
- - test/test_sequel_simple_callbacks.rb
74
+ summary: Sequel Model plugin that enables ActiveRecord-compatible class-level before
75
+ and after filter declarations for models with support for conditional execution
76
+ test_files: []
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- tmp
23
- *.gem