Method: Jets::Controller::Base#dispatch!

Defined in:
lib/jets/controller/base.rb

#dispatch!Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/jets/controller/base.rb', line 37

def dispatch!
  t1 = Time.now
  log_info_start

  begin
    if run_before_actions(break_if: -> { @rendered })
      send(@meth)
      action_completed = true
    else
      Jets.logger.info "Filter chain halted as #{@last_callback_name} rendered or redirected"
    end
    
    triplet = ensure_render
    run_after_actions if action_completed
  rescue Exception => exception
    rescue_with_handler(exception) || raise
    triplet = ensure_render
  end

  took = Time.now - t1
  status = triplet[0]
  Jets.logger.info "Completed Status Code #{status} in #{took}s"
  triplet # status, headers, body
end