class SslEnforcerConstraint
Public Class Methods
new(name, rule, request)
click to toggle source
# File lib/rack/ssl-enforcer/constraint.rb, line 2 def initialize(name, rule, request) @name = name @rule = rule @request = request end
Public Instance Methods
matches?()
click to toggle source
# File lib/rack/ssl-enforcer/constraint.rb, line 8 def matches? if @rule.is_a?(String) && [:only, :except].include?(@name) result = tested_string[0, @rule.size].send(operator, @rule) elsif @rule.respond_to?(:call) result = @rule.call(@request) else result = tested_string.send(operator, @rule) end negate_result? ? !result : result end
Private Instance Methods
negate_result?()
click to toggle source
# File lib/rack/ssl-enforcer/constraint.rb, line 22 def negate_result? @name.to_s =~ /except/ end
operator()
click to toggle source
# File lib/rack/ssl-enforcer/constraint.rb, line 26 def operator @rule.is_a?(Regexp) ? "=~" : "==" end
tested_string()
click to toggle source
# File lib/rack/ssl-enforcer/constraint.rb, line 30 def tested_string case @name.to_s when /hosts/ @request.host when /methods/ @request.request_method when /environments/ ENV["RACK_ENV"] || ENV["RAILS_ENV"] || ENV["ENV"] when /agents/ @request.user_agent else @request.path end end