class Ground::CreateApplication

Public Class Methods

new(data) click to toggle source
Calls superclass method
# File lib/ground/activity/create_application.rb, line 6
def initialize(data)
  super
  @middlewares = []
end

Public Instance Methods

call(&p) click to toggle source
# File lib/ground/activity/create_application.rb, line 11
def call(&p)
  app = Class.new(Ground::BaseRack)
  instance_eval &p
  app_with_middlewares = pack_middlewares_to_app app
end

Private Instance Methods

pack_middlewares_to_app(app) click to toggle source
# File lib/ground/activity/create_application.rb, line 23
def pack_middlewares_to_app(app)
  app_with_middlewares = app.new
  @middlewares.reverse.each {|middleware|
    app_with_middlewares = middleware.call(app_with_middlewares)
  }
  app_with_middlewares
end
use(middleware, *args, &p) click to toggle source
# File lib/ground/activity/create_application.rb, line 19
def use(middleware, *args, &p)
  @middlewares << lambda {|app| middleware.new(app, *args, &p)}
end