Sha256: d2ef828d23d44c065d1700af5abb35bfb738223c38c1680cd44b5637702534dc

Contents?: true

Size: 520 Bytes

Versions: 20

Compression:

Stored size: 520 Bytes

Contents

module Elastic::Core
  module Middleware
    extend self

    def register(_middleware_class)
      middlewares << _middleware_class
    end

    def wrap(_target)
      middleware_for(_target).new _target
    end

    def middleware_for(_target)
      # TODO: improve matching logic
      middleware = middlewares.reverse_each.find { |m| m.accepts?(_target) }
      middleware = DefaultMiddleware if middleware.nil?
      middleware
    end

    private

    def middlewares
      @middlewares ||= []
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
elastic-rails-1.0.4 lib/elastic/core/middleware.rb
elastic-rails-1.0.3 lib/elastic/core/middleware.rb
elastic-rails-1.0.2 lib/elastic/core/middleware.rb
elastic-rails-1.0.1 lib/elastic/core/middleware.rb
elastic-rails-1.0.0 lib/elastic/core/middleware.rb
elastic-rails-0.8.7 lib/elastic/core/middleware.rb
elastic-rails-0.8.6 lib/elastic/core/middleware.rb
elastic-rails-0.8.5 lib/elastic/core/middleware.rb
elastic-rails-0.8.4 lib/elastic/core/middleware.rb
elastic-rails-0.8.3 lib/elastic/core/middleware.rb
elastic-rails-0.8.2 lib/elastic/core/middleware.rb
elastic-rails-0.8.1 lib/elastic/core/middleware.rb
elastic-rails-0.8.0 lib/elastic/core/middleware.rb
elastic-rails-0.7.0 lib/elastic/core/middleware.rb
elastic-rails-0.6.4 lib/elastic/core/middleware.rb
elastic-rails-0.6.3 lib/elastic/core/middleware.rb
elastic-rails-0.6.2 lib/elastic/core/middleware.rb
elastic-rails-0.6.1 lib/elastic/core/middleware.rb
elastic-rails-0.6.0 lib/elastic/core/middleware.rb
elastic-rails-0.5.0 lib/elastic/core/middleware.rb