Skip to content

0.4.0 2019-07-17

Pre-release
Pre-release

Choose a tag to compare

@waiting-for-dev waiting-for-dev released this 17 Jul 10:21

Added

  • BREAKING: Middlewares have to be named when used (11):
use :cookies, Rack::Session:Cookie, secret: 'my_secret', key: 'foo'
  • BREAKING: Middlewares have to be initialized when composed (11):
use :pipe, PipeWithMiddlewares.new
  • BREAKING: The array of injected plugs is now scoped within a plugs: kwarg (11):
App.new(plugs: { nothing: ->(conn) { conn } })
  • Middlewares can be injected (11):
App.new(middlewares: { cache: [MyMiddleware, my_options] })
  • DSL helper method compose to add middlewares and plugs in order and in a single shot (12):
class App
  include WebPipe.(container: Container)

  use :first, FirstMiddleware

  plug :first_plug, 'first_plug'
end

class AnotherApp
  include WebPipe.(container: Container)

  compose App
  # Equivalent to:
  # use App.new
  # plug &App.new

  use :second, SecondMiddleware

  plug :second_plug, 'second_plug'
end