class SupplejackApi::HarvesterConstraint

Public Class Methods

new() click to toggle source
# File lib/supplejack_api/harvester_constraint.rb, line 11
def initialize
  @ips = ENV['HARVESTER_IPS'].gsub(/\s+/, '').split(',')
rescue
  # Allow supplejack:install generator to work without application.yml file
  @ips = ['127.0.0.1']
end

Public Instance Methods

forwarded_ips(request) click to toggle source
# File lib/supplejack_api/harvester_constraint.rb, line 23
def forwarded_ips(request)
  ip_addresses = request.env['HTTP_X_FORWARDED_FOR']
  ip_addresses ? ip_addresses.strip.split(/[,\s]+/) : []
end
matches?(request) click to toggle source
# File lib/supplejack_api/harvester_constraint.rb, line 18
def matches?(request)
  forwarded_ips(request).each { |ip| return false unless @ips.include?(ip) }
  @ips.include?(request.remote_ip)
end