actionizer 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 337a8267c5cd1291adf45b2c65dc3ce51ffe6514
4
- data.tar.gz: d6e73714092349b00b2741312c218e257afffd3b
3
+ metadata.gz: 2478f6bc31970e7f71558d0b26c590299bca24d5
4
+ data.tar.gz: c2c4e07997c026acd0111ecdb075a854dfa8aecf
5
5
  SHA512:
6
- metadata.gz: 56fd907b99b3b795b4091e8b809471945cf144f36c36063ac68c4ed27f27ace536b1f1d95e0bb0bb50ddcd51dd52310dd66d969d43866d81e3628dbcc59101ec
7
- data.tar.gz: 8fb876551e1cb1bb9d7d4176fc07c5736a81d2326b02d027e542dd25748cb18683685a4507f923393547486d5e25a2b382318cc1efbdc91be853392d57ee2ae9
6
+ metadata.gz: fdb7575753be18eca5d189cdcde2220d05770b50e6a0f2cc9b0e4c6114c2809e1ce0363fc77079cbe1648772ef766b3402a341a9ccdd7d4ada9f0009221e9c2a
7
+ data.tar.gz: c11d504a624e9530a29579fed1552cc7aa8d2885b02e1a8a27757cec9a5877cf5dca00c62cdac5aac6e4cbc3dc0683bf2885beef1b4103ec525e5ae4e7f2fd6c
data/.rubocop.yml CHANGED
@@ -1,5 +1,9 @@
1
+ Metrics/AbcSize:
2
+ Max: 20
1
3
  Metrics/LineLength:
2
4
  Max: 120
5
+ Metrics/MethodLength:
6
+ Max: 15
3
7
 
4
8
  Style/Documentation:
5
9
  Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.3.0
data/actionizer.gemspec CHANGED
@@ -26,6 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ['lib']
28
28
 
29
+ spec.required_ruby_version = '~> 2.3'
30
+
29
31
  spec.add_development_dependency 'bundler', '~> 1.11'
30
32
  spec.add_development_dependency 'rake', '~> 10.0'
31
33
  spec.add_development_dependency 'rspec', '~> 3.0'
@@ -1,3 +1,3 @@
1
1
  module Actionizer
2
- VERSION = '0.6.0'
2
+ VERSION = '0.7.0'
3
3
  end
data/lib/actionizer.rb CHANGED
@@ -45,13 +45,19 @@ module Actionizer
45
45
  def method_missing(method_name, *args, &block)
46
46
  return super unless method_name.to_s.end_with?('_or_fail')
47
47
 
48
- action_class, params = *args
48
+ action_class, *params = args
49
+ underlying_method = method_name.to_s.chomp('_or_fail')
49
50
 
50
- unless action_class.include? Actionizer
51
- raise ArgumentError, "#{action_class.name} must include Actionizer"
51
+ unless action_class.respond_to?(underlying_method)
52
+ raise ArgumentError, "#{action_class.name} must define ##{underlying_method}"
53
+ end
54
+
55
+ result = action_class.send(underlying_method, *params)
56
+
57
+ unless result.is_a?(Actionizer::Result)
58
+ raise ArgumentError, "#{action_class.name}##{underlying_method} must return an Actionizer::Result"
52
59
  end
53
60
 
54
- result = action_class.send(method_name.to_s.chomp('_or_fail'), params)
55
61
  fail!(error: result.error) if result.failure?
56
62
 
57
63
  result
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Nichols
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-08 00:00:00.000000000 Z
11
+ date: 2016-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -104,6 +104,7 @@ files:
104
104
  - ".gitignore"
105
105
  - ".rspec"
106
106
  - ".rubocop.yml"
107
+ - ".ruby-version"
107
108
  - ".simplecov"
108
109
  - ".travis.yml"
109
110
  - CODE_OF_CONDUCT.md
@@ -129,9 +130,9 @@ require_paths:
129
130
  - lib
130
131
  required_ruby_version: !ruby/object:Gem::Requirement
131
132
  requirements:
132
- - - ">="
133
+ - - "~>"
133
134
  - !ruby/object:Gem::Version
134
- version: '0'
135
+ version: '2.3'
135
136
  required_rubygems_version: !ruby/object:Gem::Requirement
136
137
  requirements:
137
138
  - - ">="