power-types 0.1.2 → 0.2.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.
- 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:
|