Class: Corvette::Act
Defined Under Namespace
Modules: Auxiliary, Required, Validation
Classes: ActError
Instance Method Summary
collapse
Methods included from Assertion
#assert
Constructor Details
#initialize(options = {}) ⇒ Act
include ActiveSupport::Rescuable rescue_from ERRORS, with: :log_error
12
13
14
15
|
# File 'lib/corvette/act.rb', line 12
def initialize(options={})
@options = options
process_callbacks
end
|
Instance Method Details
#act_error(exception) ⇒ Object
40
41
42
|
# File 'lib/corvette/act.rb', line 40
def act_error(exception)
@error_callback.call(self, exception) if @error_callback.is_a?(Proc)
end
|
#act_name ⇒ Object
65
66
67
|
# File 'lib/corvette/act.rb', line 65
def act_name
@act_name ||= self.class.name.to_s
end
|
#act_success ⇒ Object
36
37
38
|
# File 'lib/corvette/act.rb', line 36
def act_success
@success_callback.call(self) if @success_callback.is_a?(Proc)
end
|
#log_error(exception, params = nil) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/corvette/act.rb', line 44
def log_error(exception, params = nil)
message = "message: #{ exception.message }; place: #{act_name}; (#{ exception.class })"
case exception
when Validation::ValidationError, Required::RequiredError
message << " error: #{exception.errors.inspect};"
else
end
unless params.nil?
message << " params: #{params.inspect}"
end
Rails.logger.error message
end
|
#logger ⇒ Object
61
62
63
|
# File 'lib/corvette/act.rb', line 61
def logger
Rails.logger
end
|
#process_callbacks ⇒ Object
31
32
33
34
|
# File 'lib/corvette/act.rb', line 31
def process_callbacks
@error_callback = @options[:on_error]
@success_callback = @options[:on_success]
end
|
#process_params(params) ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/corvette/act.rb', line 21
def process_params(params)
assert { params.is_a?(Hash) }
if params.is_a?(Hashie::Mash)
@params = params
else
@params = Hashie::Mash.new(params)
end
end
|
#run ⇒ Object
17
18
19
|
# File 'lib/corvette/act.rb', line 17
def run
raise NotImplementedError, 'must be overridden'
end
|