class Cloudflare::Rails::Railtie::Importer
Constants
- BASE_URL
- IPS_V4_URL
- IPS_V6_URL
Public Class Methods
fetch(url)
click to toggle source
# File lib/cloudflare/rails/railtie.rb, line 52 def fetch(url) uri = URI("#{BASE_URL}#{url}") resp = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: ::Rails.application.config.cloudflare.timeout) do |http| req = Net::HTTP::Get.new(uri) http.request(req) end if resp.is_a?(Net::HTTPSuccess) resp.body.split("\n").reject(&:blank?).map { |ip| IPAddr.new ip } else raise ResponseError, resp end end
fetch_with_cache(type)
click to toggle source
# File lib/cloudflare/rails/railtie.rb, line 71 def fetch_with_cache(type) ::Rails.cache.fetch("cloudflare-rails:#{type}", expires_in: ::Rails.application.config.cloudflare.expires_in) do send type end end
ips_v4()
click to toggle source
# File lib/cloudflare/rails/railtie.rb, line 48 def ips_v4 fetch IPS_V4_URL end
ips_v6()
click to toggle source
# File lib/cloudflare/rails/railtie.rb, line 44 def ips_v6 fetch IPS_V6_URL end