wisper-sequel 1.0.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c068f6803ae42acab6e48913b17870e779a9554
4
- data.tar.gz: ed8b344055445ddd96a1c308d624d79020a4b2d6
3
+ metadata.gz: f151f1f449fb6383995b17b7cfd4ff4bdb8b297e
4
+ data.tar.gz: 7abc923724a7e07ec4989d3070684e4e753636cf
5
5
  SHA512:
6
- metadata.gz: 2cea9a27c006c22b87d7691ea0d9a07c89ff04a4392ea8ff18aad0d51d25ef19cebc03fbc45b04f853a223061376259f6693f84cc17069c3cf6f0cf42b049137
7
- data.tar.gz: 384fc7c5fa3bbb2359aaa223a98402f68fb11151df85fa14cb3682a1c471bdcd8c763d927b5f0afe4fac8abe4aa6e337d2e356204e3452c19b89dba51947357d
6
+ metadata.gz: 8a1c896313b0d4a75b5080cca07add4d2da857d67effb1cd9b0fa77636bfe15cf81a5324c9bc368616b3325570a4ac55f7185e995e838080b88d04eb18da47e4
7
+ data.tar.gz: 7c9e45d4314757b7e36862d32fb83a28c12971e63ae86e576c3d9d3b04ca99b02fcdc8a1d6f20d9d4a0285153e3688ecc0b19c1b5befba8d8c19718f0298eadf
@@ -1,6 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 1.9.3
3
4
  - 2.1.5
5
+ - rbx-2
4
6
  before_install: gem install bundler -v 1.10.3
5
7
  addons:
6
8
  code_climate:
@@ -1,17 +1,23 @@
1
1
  module Sequel
2
2
  module Plugins
3
3
  module Wisper
4
- def self.apply(model, *attrs)
4
+ def self.apply(model, opts={})
5
5
  require 'sequel/extensions/inflector'
6
6
  require 'wisper'
7
7
 
8
8
  model.send(:include, ::Wisper::Publisher)
9
9
  end
10
10
 
11
- def self.configure(model, *attrs)
11
+ def self.configure(model, opts={})
12
+ model.instance_eval do
13
+ @event_param_block = opts[:event_param_block]
14
+ end
12
15
  end
13
16
 
14
17
  module ClassMethods
18
+ def event_param_block
19
+ @event_param_block
20
+ end
15
21
  end
16
22
 
17
23
  module InstanceMethods
@@ -20,79 +26,79 @@ module Sequel
20
26
  end
21
27
 
22
28
  def before_validation
23
- broadcast(:before_validation, self)
29
+ broadcast(:before_validation, event_param)
24
30
  super
25
31
  end
26
32
 
27
33
  def after_validation
28
34
  super
29
- broadcast(:after_validation, self)
35
+ broadcast(:after_validation, event_param)
30
36
  end
31
37
 
32
38
  def before_save
33
- broadcast(:before_save, self)
39
+ broadcast(:before_save, event_param)
34
40
  super
35
41
  end
36
42
 
37
43
  def after_save
38
44
  super
39
- broadcast(:after_save, self)
45
+ broadcast(:after_save, event_param)
40
46
  end
41
47
 
42
48
  def before_create
43
- broadcast(:before_create, self)
49
+ broadcast(:before_create, event_param)
44
50
  super
45
51
  end
46
52
 
47
53
  def after_create
48
54
  super
49
- broadcast(:after_create, self)
50
- db.after_commit { broadcast(:"create_#{model_name}_successful", self) }
51
- db.after_rollback { broadcast(:"create_#{model_name}_failed", self) }
55
+ broadcast(:after_create, event_param)
56
+ db.after_commit { broadcast(:"create_#{model_name}_successful", event_param) }
57
+ db.after_rollback { broadcast(:"create_#{model_name}_failed", event_param) }
52
58
  end
53
59
 
54
60
  def before_update
55
- broadcast(:before_update, self)
61
+ broadcast(:before_update, event_param)
56
62
  super
57
63
  end
58
64
 
59
65
  def after_update
60
66
  super
61
- broadcast(:after_update, self)
62
- db.after_commit { broadcast(:"update_#{model_name}_successful", self) }
63
- db.after_rollback { broadcast(:"update_#{model_name}_failed", self) }
67
+ broadcast(:after_update, event_param)
68
+ db.after_commit { broadcast(:"update_#{model_name}_successful", event_param) }
69
+ db.after_rollback { broadcast(:"update_#{model_name}_failed", event_param) }
64
70
  end
65
71
 
66
72
  def before_destroy
67
- broadcast(:before_destroy, self)
73
+ broadcast(:before_destroy, event_param)
68
74
  super
69
75
  end
70
76
 
71
77
  def after_destroy
72
78
  super
73
- broadcast(:after_destroy, self)
79
+ broadcast(:after_destroy, event_param)
74
80
  end
75
81
 
76
82
  def after_commit
77
83
  super
78
- broadcast(:after_commit, self)
84
+ broadcast(:after_commit, event_param)
79
85
  end
80
86
 
81
87
  def after_rollback
82
88
  super
83
- broadcast(:after_rollback, self)
89
+ broadcast(:after_rollback, event_param)
84
90
  end
85
91
 
86
92
  def after_destroy_commit
87
93
  super
88
- broadcast(:after_destroy_commit, self)
89
- broadcast(:"destroy_#{model_name}_successful", self)
94
+ broadcast(:after_destroy_commit, event_param)
95
+ broadcast(:"destroy_#{model_name}_successful", event_param)
90
96
  end
91
97
 
92
98
  def after_destroy_rollback
93
99
  super
94
- broadcast(:after_destroy_rollback, self)
95
- broadcast(:"destroy_#{model_name}_failed", self)
100
+ broadcast(:after_destroy_rollback, event_param)
101
+ broadcast(:"destroy_#{model_name}_failed", event_param)
96
102
  end
97
103
 
98
104
  def around_validation
@@ -102,7 +108,7 @@ module Sequel
102
108
  ensure
103
109
  if on_save? && !res
104
110
  action = new? ? 'create' : 'update'
105
- broadcast(:"#{action}_#{model_name}_failed", self)
111
+ broadcast(:"#{action}_#{model_name}_failed", event_param)
106
112
  end
107
113
  raise error if error
108
114
  end
@@ -114,19 +120,23 @@ module Sequel
114
120
  end
115
121
 
116
122
  def on_save
117
- @on_save ||= 0
118
- @on_save += 1
123
+ @on_save = true
119
124
  yield
120
125
  ensure
121
- @on_save -= 1
126
+ @on_save = nil
122
127
  end
123
128
 
124
129
  def on_save?
125
- @on_save && @on_save > 0
130
+ @on_save
126
131
  end
127
- end
128
132
 
129
- module DatasetMethods
133
+ def event_param
134
+ event_param_block ? event_param_block.call(self) : self
135
+ end
136
+
137
+ def event_param_block
138
+ self.class.event_param_block
139
+ end
130
140
  end
131
141
  end
132
142
  end
@@ -1,5 +1,5 @@
1
1
  module Wisper
2
2
  module Sequel
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wisper-sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damián Silvani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-20 00:00:00.000000000 Z
11
+ date: 2015-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  version: '0'
151
151
  requirements: []
152
152
  rubyforge_project:
153
- rubygems_version: 2.4.3
153
+ rubygems_version: 2.4.6
154
154
  signing_key:
155
155
  specification_version: 4
156
156
  summary: A Sequel plugin for broadcasting model hooks as Wisper events.