module Rack::TrafficSignal
Constants
- VERSION
Public Class Methods
config()
click to toggle source
# File lib/rack/traffic_signal.rb, line 13 def self.config @config ||= Config.new end
has_secret_word?(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 32 def self.has_secret_word?(env) env.fetch('HTTP_X_RACK_TRAFFIC_SIGNAL_SECRET', nil) == config.secret_word end
internal_access?(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 25 def self.internal_access?(env) remote_ip = IPAddress(request_from(env)) config.internal_ips .map { |internal_ip| IPAddress(internal_ip) } .any? { |internal_ip| internal_ip.include?(remote_ip) if remote_ip.class == internal_ip.class } end
setup() { |config| ... }
click to toggle source
# File lib/rack/traffic_signal.rb, line 9 def self.setup yield(config) end
skip?(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 17 def self.skip?(env) config.skip_proc.call(env) end
skip_path?(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 36 def self.skip_path?(env) path = env['PATH_INFO'] path = path.chop if path[-1] == '/' config.skip_paths.any? do |skip_path| if skip_path.is_a? Regexp path.match(skip_path) elsif skip_path.is_a? String path == skip_path else false end end end
skip_with_warning?(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 21 def self.skip_with_warning?(env) config.skip_with_warning_proc.call(env) end
Private Class Methods
request_from(env)
click to toggle source
# File lib/rack/traffic_signal.rb, line 51 def self.request_from(env) return env['REMOTE_ADDR'] unless env['HTTP_X_FORWARDED_FOR'] env['HTTP_X_FORWARDED_FOR'].split(/,/)[0].strip end