module Swamp::Action

Public Class Methods

included(base) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 9
def self.included(base)
  base.extend ClassMethods
  base.include Swamp::Action::Parameters
  base.include Swamp::Action::Routes
  base.include Swamp::Action::Flash
end

Public Instance Methods

_call() click to toggle source
# File lib/swamp/rails_actions/action.rb, line 66
def _call; end
call(args = Hash[]) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 56
def call(args = Hash[])
  prepare(args)

  catch :done do
    _call
  end

  finalize(args)
end

Private Instance Methods

_exposures() click to toggle source
# File lib/swamp/rails_actions/action.rb, line 85
def _exposures
  Hash[].tap do |result|
    self.class.exposures.each do |name, ivar|
      result[name] = respond_to?(name) ? send(name) : instance_variable_get(ivar)
    end
  end
end
expose(*names) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 75
def expose(*names)
  names.each do |name|
    send(name) if self.class.exposures.include?(name)
  end
end
finalize(*) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 81
def finalize(*)
  @__result.prepare!(_exposures)
end
prepare(kwargs) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 70
def prepare(kwargs)
  @request = kwargs[:request]
  @__result = ::Swamp::Action::Result.new
end
redirect_to(path, **options) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 98
def redirect_to(path, **options)
  @__result.redirect_to(path, options)
  throw :done
end
render(template) click to toggle source
# File lib/swamp/rails_actions/action.rb, line 93
def render(template)
  @__result.render(template)
  throw :done
end