Module: Actionizer
- Defined in:
- lib/actionizer.rb,
lib/actionizer/result.rb,
lib/actionizer/failure.rb,
lib/actionizer/version.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Failure, Result
Constant Summary
collapse
- VERSION =
'0.2.0'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#output ⇒ Object
Returns the value of attribute output.
6
7
8
|
# File 'lib/actionizer.rb', line 6
def output
@output
end
|
Class Method Details
.included(base) ⇒ Object
8
9
10
11
12
|
# File 'lib/actionizer.rb', line 8
def self.included(base)
base.class_eval do
extend ClassMethods
end
end
|
Instance Method Details
#call_and_check_failure!(action_class, params = {}) ⇒ Object
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/actionizer.rb', line 44
def call_and_check_failure!(action_class, params = {})
unless action_class.include? Actionizer
raise ArgumentError, "#{action_class.name} must include Actionizer"
end
result = action_class.call(params)
fail!(error: result.error) if result.failure?
result
end
|
#fail!(params = {}) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/actionizer.rb', line 36
def fail!(params = {})
params.each_pair { |key, value| output[key] = value }
output.fail
raise Actionizer::Failure.new('Failed!', output)
end
|
#initialize(inputs = {}) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/actionizer.rb', line 22
def initialize(inputs = {})
@output = Actionizer::Result.new
inputs.each_pair do |key, value|
next if key.to_s == 'output'
instance_variable_set("@#{key}".to_sym, value)
self.class.class_eval do
attr_reader key
end
end
end
|