module Ni::Main

Public Class Methods

new() click to toggle source
# File lib/ni/main.rb, line 37
def initialize
  self.class.define_actions! if need_to_define_actions?
end

Public Instance Methods

after_action(action_name) click to toggle source
# File lib/ni/main.rb, line 86
def after_action(action_name)
  # Can be defined in ancestors
end
before_action(action_name) click to toggle source
# File lib/ni/main.rb, line 82
def before_action(action_name)
  # Can be defined in ancestors
end
failure?() click to toggle source
# File lib/ni/main.rb, line 33
def failure?
  !success?
end
handle_exceptions(action_exceptions) { || ... } click to toggle source
# File lib/ni/main.rb, line 63
def handle_exceptions(action_exceptions)
  yield

  nil
rescue Exception => ex
  _, rescue_callback = action_exceptions.find { |(rescue_list, _)| rescue_list.include?(ex.class) }

  rescue_callback ||= begin
    callbacks_array = action_exceptions.find do |(rescue_list, _)|
      rescue_list.any? { |exception_class| ex.class <= exception_class }
    end
    callbacks_array&.last
  end

  raise ex unless rescue_callback.present?

  [rescue_callback, ex]
end
need_to_define_actions?() click to toggle source
# File lib/ni/main.rb, line 41
def need_to_define_actions?
  self.class.defined_actions.present? &&
  self.class.defined_actions.keys.map(&:first).any? { |name| !respond_to?(name) }
end
on_cancel(action_name) click to toggle source
# File lib/ni/main.rb, line 94
def on_cancel(action_name)
  # Can be defined in ancestors
end
on_checking_continue_signal(unit) click to toggle source
# File lib/ni/main.rb, line 110
def on_checking_continue_signal(unit)
  # Can be defined in ancestors
end
on_context_restored(action_name) click to toggle source
# File lib/ni/main.rb, line 106
def on_context_restored(action_name)
  # Can be defined in ancestors
end
on_continue_signal_checked(unit, wait_cheking_result) click to toggle source
# File lib/ni/main.rb, line 114
def on_continue_signal_checked(unit, wait_cheking_result)
  # Can be defined in ancestors
end
on_failure(action_name) click to toggle source
# File lib/ni/main.rb, line 102
def on_failure(action_name)
  # Can be defined in ancestors
end
on_success(action_name) click to toggle source
# File lib/ni/main.rb, line 90
def on_success(action_name)
  # Can be defined in ancestors
end
on_terminate(action_name) click to toggle source
# File lib/ni/main.rb, line 98
def on_terminate(action_name)
  # Can be defined in ancestors
end
returned_values(name) click to toggle source
# File lib/ni/main.rb, line 46
def returned_values(name)
  keys = self.class.action_by_name(name)&.returned_values.presence ||
    self.select_contracts_for_action(self.class.provide_contracts, name)&.keys

  Array(keys).map { |key| context.raw_get(key) }
end
safe_context(action) { || ... } click to toggle source
# File lib/ni/main.rb, line 53
def safe_context(action)
  context.within_interactor self, action do
    ensure_received_params(action)
    result = yield
    ensure_provided_params(action)

    result
  end
end