power-types 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.hound.yml +4 -0
- data/.rubocop.yml +1038 -0
- data/.travis.yml +9 -1
- data/README.md +230 -49
- data/lib/generators/power_types/init_generator.rb +1 -0
- data/lib/generators/rails/observer_generator.rb +18 -0
- data/lib/generators/rails/templates/observer.rb +8 -0
- data/lib/generators/rails/templates/observer_spec.rb +5 -0
- data/lib/power_types.rb +4 -0
- data/lib/power_types/patterns/observer/observable.rb +39 -0
- data/lib/power_types/patterns/observer/observer.rb +38 -0
- data/lib/power_types/patterns/observer/trigger.rb +31 -0
- data/lib/power_types/util.rb +6 -0
- data/lib/power_types/version.rb +2 -2
- data/{power_types.gemspec → power-types.gemspec} +3 -2
- metadata +28 -5
@@ -0,0 +1,31 @@
|
|
1
|
+
module PowerTypes
|
2
|
+
class Trigger
|
3
|
+
attr_reader :type, :event
|
4
|
+
|
5
|
+
def initialize(_type, _event, _handler = nil, _options = {}, &_block)
|
6
|
+
validate_params(_type, _event, _handler, _block)
|
7
|
+
@type = _type
|
8
|
+
@event = _event
|
9
|
+
@handler = _handler || _block
|
10
|
+
@options = _options
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(_observer)
|
14
|
+
case @handler
|
15
|
+
when String, Symbol
|
16
|
+
_observer.public_send(@handler)
|
17
|
+
when Proc
|
18
|
+
_observer.instance_exec(&@handler)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def validate_params(_type, _event, _handler, _block)
|
25
|
+
raise "Invalid type #{_type}" unless PowerTypes::Util::OBSERVABLE_TYPES.include?(_type)
|
26
|
+
raise "Invalid event #{_event}" unless PowerTypes::Util::OBSERVABLE_EVENTS.include?(_event)
|
27
|
+
raise "Invalid handler" unless [String, Symbol, NilClass, Proc].include?(_handler.class)
|
28
|
+
raise "Missing block or handler name" if !_handler && !_block
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/power_types/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module PowerTypes
|
2
|
-
VERSION = '0.
|
3
|
-
end
|
2
|
+
VERSION = '0.2.0'
|
3
|
+
end
|
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Ignacio Baixas", "Felipe Balart"]
|
10
10
|
spec.email = ["ignacio@platan.us", "felipe@platan.us"]
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
12
|
+
spec.summary = "Power Types for Rails by Platanus"
|
13
|
+
spec.description = "Power Types for Rails by Platanus"
|
14
14
|
spec.homepage = "https://github.com/platanus/power-types"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "pry-remote", "~> 0.1"
|
31
31
|
spec.add_development_dependency "pry-byebug", "~> 3.2"
|
32
32
|
spec.add_development_dependency "pry-nav", "~> 0.2"
|
33
|
+
spec.add_development_dependency "coveralls"
|
33
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: power-types
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ignacio Baixas
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-04-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -171,6 +171,20 @@ dependencies:
|
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0.2'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: coveralls
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
type: :development
|
182
|
+
prerelease: false
|
183
|
+
version_requirements: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
174
188
|
description: Power Types for Rails by Platanus
|
175
189
|
email:
|
176
190
|
- ignacio@platan.us
|
@@ -179,8 +193,11 @@ executables: []
|
|
179
193
|
extensions: []
|
180
194
|
extra_rdoc_files: []
|
181
195
|
files:
|
196
|
+
- ".coveralls.yml"
|
182
197
|
- ".gitignore"
|
198
|
+
- ".hound.yml"
|
183
199
|
- ".rspec"
|
200
|
+
- ".rubocop.yml"
|
184
201
|
- ".travis.yml"
|
185
202
|
- CODE_OF_CONDUCT.md
|
186
203
|
- Gemfile
|
@@ -190,17 +207,24 @@ files:
|
|
190
207
|
- Rakefile
|
191
208
|
- lib/generators/power_types/init_generator.rb
|
192
209
|
- lib/generators/rails/command_generator.rb
|
210
|
+
- lib/generators/rails/observer_generator.rb
|
193
211
|
- lib/generators/rails/service_generator.rb
|
194
212
|
- lib/generators/rails/templates/command.rb
|
195
213
|
- lib/generators/rails/templates/command_spec.rb
|
214
|
+
- lib/generators/rails/templates/observer.rb
|
215
|
+
- lib/generators/rails/templates/observer_spec.rb
|
196
216
|
- lib/generators/rails/templates/service.rb
|
197
217
|
- lib/generators/rails/templates/service_spec.rb
|
198
218
|
- lib/power-types.rb
|
199
219
|
- lib/power_types.rb
|
200
220
|
- lib/power_types/patterns/command.rb
|
221
|
+
- lib/power_types/patterns/observer/observable.rb
|
222
|
+
- lib/power_types/patterns/observer/observer.rb
|
223
|
+
- lib/power_types/patterns/observer/trigger.rb
|
201
224
|
- lib/power_types/patterns/service.rb
|
225
|
+
- lib/power_types/util.rb
|
202
226
|
- lib/power_types/version.rb
|
203
|
-
-
|
227
|
+
- power-types.gemspec
|
204
228
|
homepage: https://github.com/platanus/power-types
|
205
229
|
licenses:
|
206
230
|
- MIT
|
@@ -221,9 +245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
245
|
version: '0'
|
222
246
|
requirements: []
|
223
247
|
rubyforge_project:
|
224
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.4.5
|
225
249
|
signing_key:
|
226
250
|
specification_version: 4
|
227
251
|
summary: Power Types for Rails by Platanus
|
228
252
|
test_files: []
|
229
|
-
has_rdoc:
|