Sha256: 89fcdbb718b0551b73b1c1752e9fe44886bf3b6c716b6c8915366501e7f73b1d

Contents?: true

Size: 774 Bytes

Versions: 1

Compression:

Stored size: 774 Bytes

Contents

class Rack::App::Endpoint::Properties

  def to_hash
    @raw
  end

  def app_class
    @raw[:app_class] || raise('missing app class')
  end

  def serializer
    @raw[:serializer] ||= Rack::App::Serializer.new
  end

  def error_handler
    @raw[:error_handler] ||= Rack::App::ErrorHandler.new
  end

  def middleware_builders_blocks
    @raw[:middleware_builders_blocks] ||= []
  end

  def endpoint_method_name
    @raw[:method_name] ||= register_method_to_app_class
  end

  protected

  def initialize(raw)
    @raw = raw
  end

  def register_method_to_app_class
    method_name = '__' + ::Rack::App::Utils.uuid
    app_class.__send__(:define_method, method_name, &logic_block)
    return method_name
  end

  def logic_block
    @raw[:user_defined_logic]
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-app-5.0.0 lib/rack/app/endpoint/properties.rb