Class: Corvette::Act

Inherits:
Object
  • Object
show all
Includes:
Assertion
Defined in:
lib/corvette/act.rb

Direct Known Subclasses

Action, Operation, Procedure

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_nameObject



65
66
67
# File 'lib/corvette/act.rb', line 65

def act_name
  @act_name ||= self.class.name.to_s
end

#act_successObject



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
    #nothing
  end

  unless params.nil?
    message << " params: #{params.inspect}"
  end

  Rails.logger.error message
end

#loggerObject



61
62
63
# File 'lib/corvette/act.rb', line 61

def logger
  Rails.logger
end

#process_callbacksObject



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

#runObject

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/corvette/act.rb', line 17

def run
  raise NotImplementedError, 'must be overridden'
end