class Rack::Delegate::Constraint

Constants

SUPPORTED_CONSTRAINTS_INTERFACE

Public Class Methods

new(*constraints) click to toggle source
# File lib/rack/delegate/constraint.rb, line 4
def initialize(*constraints)
  @constraints = constraints.flatten.compact
end

Public Instance Methods

===(request) click to toggle source
# File lib/rack/delegate/constraint.rb, line 8
def ===(request)
  @constraints.all? do |constraint|
    invoke_polyglot_constraint(constraint, request)
  end
end

Private Instance Methods

invoke_polyglot_constraint(constraint, request) click to toggle source
# File lib/rack/delegate/constraint.rb, line 18
def invoke_polyglot_constraint(constraint, request)
  method = SUPPORTED_CONSTRAINTS_INTERFACE.find do |method|
    constraint.respond_to?(method)
  end
  constraint.public_send(method, request)
end