Sha256: e9a3bc23decdb0995c1a53c2c65bfbe0770f5fa234126f378eb045f14b7038ec

Contents?: true

Size: 1.26 KB

Versions: 12

Compression:

Stored size: 1.26 KB

Contents

require "active_support/core_ext/hash"
require "active_support/core_ext/object"
require "json"
require "rack/utils" # Rack::Utils.parse_nested_query

# Controller public methods get turned into Lambda functions.
class Jets::Controller
  class Base < Jets::Lambda::Functions
    include Layout
    include Callbacks
    include Rendering
    include Params

    def self.process(event, context={}, meth)
      t1 = Time.now
      Jets.logger.info "Processing by #{self}##{meth}"

      controller = new(event, context, meth)

      Jets.logger.info "  Event: #{event.inspect}"
      Jets.logger.info "  Parameters: #{controller.params(true).to_h.inspect}"

      controller.run_before_actions
      controller.send(meth)
      resp = controller.ensure_render
      controller.run_after_actions

      took = Time.now - t1
      Jets.logger.info "Completed Status Code #{resp["statusCode"]} in #{took}s"

      resp
    end

    delegate :headers, to: :request
    attr_reader :request
    def initialize(event, context={}, meth)
      super
      @request = Request.new(event)
    end

    class_attribute :internal_controller
    def self.internal(value=nil)
      if !value.nil?
        self.internal_controller = value
      else
        self.internal_controller
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jets-0.8.13 lib/jets/controller/base.rb
jets-0.8.12 lib/jets/controller/base.rb
jets-0.8.11 lib/jets/controller/base.rb
jets-0.8.10 lib/jets/controller/base.rb
jets-0.8.9 lib/jets/controller/base.rb
jets-0.8.8 lib/jets/controller/base.rb
jets-0.8.6 lib/jets/controller/base.rb
jets-0.8.5 lib/jets/controller/base.rb
jets-0.8.4 lib/jets/controller/base.rb
jets-0.8.3 lib/jets/controller/base.rb
jets-0.8.2 lib/jets/controller/base.rb
jets-0.8.1 lib/jets/controller/base.rb