Class: Cloudflare::Rails::Railtie::Importer
- Inherits:
-
Object
- Object
- Cloudflare::Rails::Railtie::Importer
- Includes:
- HTTParty
- Defined in:
- lib/cloudflare/rails/railtie.rb
Defined Under Namespace
Classes: ResponseError
Constant Summary collapse
- IPS_V4_URL =
'/ips-v4'.freeze
- IPS_V6_URL =
'/ips-v6'.freeze
Class Method Summary collapse
Class Method Details
.fetch(url) ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/cloudflare/rails/railtie.rb', line 53 def fetch(url) resp = get url, timeout: ::Rails.application.config.cloudflare.timeout if resp.success? resp.body.split("\n").reject(&:blank?).map { |ip| IPAddr.new ip } else raise ResponseError, resp.response end end |
.fetch_with_cache(type) ⇒ Object
62 63 64 65 66 |
# File 'lib/cloudflare/rails/railtie.rb', line 62 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 ⇒ Object
49 50 51 |
# File 'lib/cloudflare/rails/railtie.rb', line 49 def ips_v4 fetch IPS_V4_URL end |
.ips_v6 ⇒ Object
45 46 47 |
# File 'lib/cloudflare/rails/railtie.rb', line 45 def ips_v6 fetch IPS_V6_URL end |