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