class PUNK::Action

Public Class Methods

perform(**kwargs) click to toggle source
# File lib/punk/framework/action.rb, line 5
def self.perform(**kwargs)
  action = profile_info("perform", kwargs) { run(**kwargs) }
  action.result
end

Public Instance Methods

present(view_class, **kwargs) click to toggle source
# File lib/punk/framework/action.rb, line 14
def present(view_class, **kwargs)
  raise InternalServerError, "not a view: #{view_class}" unless view_class < View
  view_class.run(**kwargs)
end
process() click to toggle source
# File lib/punk/framework/action.rb, line 10
def process
  raise NotImplemented, "action must provide process method"
end

Protected Instance Methods

on_failure() click to toggle source
# File lib/punk/framework/action.rb, line 25
def on_failure
  @_result = Fail.run(message: "action failed: #{self.class}", error_messages: errors.full_messages, status: invalid? ? 400 : 500)
end
on_success() click to toggle source
# File lib/punk/framework/action.rb, line 21
def on_success
  raise InternalServerError, "not a view: #{result}" unless result.is_a?(View)
end