Class: PactBroker::App
- Inherits:
-
Object
- Object
- PactBroker::App
- Includes:
- Logging
- Defined in:
- lib/pact_broker/app.rb
Instance Attribute Summary collapse
-
#application_context ⇒ Object
Returns the value of attribute application_context.
-
#configuration ⇒ Object
Returns the value of attribute configuration.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(application_context = PactBroker::ApplicationContext.default_application_context) {|configuration| ... } ⇒ App
constructor
A new instance of App.
-
#use(*args, &block) ⇒ Object
Allows middleware to be inserted at the bottom of the shared middleware stack (ie just before the cascade is called for diagnostic, UI and API).
-
#use_api_auth(middleware) ⇒ Object
private API, not sure if this will continue to be supported.
- #use_custom_api(custom_api) ⇒ Object
- #use_custom_ui(custom_ui) ⇒ Object
- #use_to_create_pact_broker_api(&block) ⇒ Object
-
#use_ui_auth(middleware) ⇒ Object
private API, not sure if this will continue to be supported.
Methods included from Logging
included, #log_error, #log_with_tag, #measure_info
Constructor Details
#initialize(application_context = PactBroker::ApplicationContext.default_application_context) {|configuration| ... } ⇒ App
Returns a new instance of App.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pact_broker/app.rb', line 39 def initialize(application_context = PactBroker::ApplicationContext.default_application_context) @application_context = application_context @app_builder = ::Rack::Builder.new @cascade_apps = [] @make_it_later_api_auth = ::Rack::PactBroker::ConfigurableMakeItLater.new(Rack::PactBroker::NoAuth) @make_it_later_ui_auth = ::Rack::PactBroker::ConfigurableMakeItLater.new(Rack::PactBroker::NoAuth) # Can only be required after database connection has been made because the decorators rely on the Sequel models @create_pact_broker_api_block = ->() { require "pact_broker/api"; PactBroker.build_api(application_context) } @configuration = PactBroker.configuration yield configuration if block_given? post_configure prepare_database load_configuration_from_database seed_example_data @configuration.freeze end |
Instance Attribute Details
#application_context ⇒ Object
Returns the value of attribute application_context.
37 38 39 |
# File 'lib/pact_broker/app.rb', line 37 def application_context @application_context end |
#configuration ⇒ Object
Returns the value of attribute configuration.
37 38 39 |
# File 'lib/pact_broker/app.rb', line 37 def configuration @configuration end |
Instance Method Details
#call(env) ⇒ Object
88 89 90 |
# File 'lib/pact_broker/app.rb', line 88 def call env running_app.call env end |
#use(*args, &block) ⇒ Object
Allows middleware to be inserted at the bottom of the shared middleware stack (ie just before the cascade is called for diagnostic, UI and API). To insert middleware at the top of the stack, initialize the middleware with the app, and run it manually. eg run MyMiddleware.new(app)
62 63 64 |
# File 'lib/pact_broker/app.rb', line 62 def use *args, &block @app_builder.use(*args, &block) end |
#use_api_auth(middleware) ⇒ Object
private API, not sure if this will continue to be supported
67 68 69 |
# File 'lib/pact_broker/app.rb', line 67 def use_api_auth middleware @make_it_later_api_auth.make_it_later(middleware) end |
#use_custom_api(custom_api) ⇒ Object
80 81 82 |
# File 'lib/pact_broker/app.rb', line 80 def use_custom_api custom_api @custom_api = custom_api end |
#use_custom_ui(custom_ui) ⇒ Object
76 77 78 |
# File 'lib/pact_broker/app.rb', line 76 def use_custom_ui custom_ui @custom_ui = custom_ui end |
#use_to_create_pact_broker_api(&block) ⇒ Object
84 85 86 |
# File 'lib/pact_broker/app.rb', line 84 def use_to_create_pact_broker_api &block @create_pact_broker_api_block = block end |
#use_ui_auth(middleware) ⇒ Object
private API, not sure if this will continue to be supported
72 73 74 |
# File 'lib/pact_broker/app.rb', line 72 def use_ui_auth middleware @make_it_later_ui_auth.make_it_later(middleware) end |