class Uncouple::Action

Attributes

params[R]

Public Class Methods

new(params=nil) click to toggle source
# File lib/uncouple/action.rb, line 10
def initialize(params=nil)
  @params = recast_parameters(params || {})
end

Public Instance Methods

failure?() click to toggle source
# File lib/uncouple/action.rb, line 22
def failure?
  !success?
end
perform() click to toggle source
# File lib/uncouple/action.rb, line 14
def perform
  raise NotImplementedError, "Overwrite `perform` in your action. Params: #{params}"
end
perform?(&block) click to toggle source
# File lib/uncouple/action.rb, line 26
def perform?(&block)
  perform
  block.call(self) if block_given?
  success?
end
success?() click to toggle source
# File lib/uncouple/action.rb, line 18
def success?
  @success
end

Private Instance Methods

recast_as_indifferent_parameters(params) click to toggle source
# File lib/uncouple/action.rb, line 48
def recast_as_indifferent_parameters(params)
  params.is_a?(ActiveSupport::HashWithIndifferentAccess) ? params : ActiveSupport::HashWithIndifferentAccess.new(params)
end
recast_as_strong_parameters(params) click to toggle source
# File lib/uncouple/action.rb, line 44
def recast_as_strong_parameters(params)
  params.is_a?(ActionController::Parameters) ? params : ActionController::Parameters.new(params)
end
recast_parameters(params) click to toggle source
# File lib/uncouple/action.rb, line 34
def recast_parameters(params)
  if defined?(ActionController::Parameters)
    recast_as_strong_parameters(params)
  elsif defined?(ActiveSupport::HashWithIndifferentAccess)
    recast_as_indifferent_parameters(params)
  else
    params
  end
end