class PUNK::Service
Public Class Methods
run(**kwargs)
click to toggle source
# File lib/punk/framework/service.rb, line 15 def self.run(**kwargs) service = new service.send(:_init, **kwargs) service.send(:_run) hijack = service.send(:_callbacks) service.is_a?(View) && hijack.is_a?(View) ? hijack : service end
Public Instance Methods
process()
click to toggle source
# File lib/punk/framework/service.rb, line 27 def process raise NotImplemented, "view must provide process method" end
result()
click to toggle source
# File lib/punk/framework/service.rb, line 23 def result @_result end
Protected Instance Methods
_state()
click to toggle source
# File lib/punk/framework/service.rb, line 33 def _state ActiveSupport::StringInquirer.new(@_state.to_s) end
on_failure()
click to toggle source
# File lib/punk/framework/service.rb, line 40 def on_failure end
on_success()
click to toggle source
# File lib/punk/framework/service.rb, line 37 def on_success end
Private Instance Methods
_callbacks()
click to toggle source
# File lib/punk/framework/service.rb, line 65 def _callbacks success? ? on_success : on_failure end
_init(**kwargs)
click to toggle source
# File lib/punk/framework/service.rb, line 45 def _init(**kwargs) @_state = :ready @_result = nil _init_runnable(kwargs) end
_run()
click to toggle source
# File lib/punk/framework/service.rb, line 51 def _run unless ready? errors.add(:raised, e.message) @_state = :failure return end unless valid? @_state = :invalid return end @_result = process @_state = :success end