class Geolocal::Configuration

Constants

OPTIONS

Public Class Methods

new() click to toggle source
# File lib/geolocal/configuration.rb, line 6
def initialize
  # configuration defaults
  @provider = 'Geolocal::Provider::DB_IP'
  @module = 'Geolocal'
  @file = nil       # default is computed
  @tmpdir = 'tmp/geolocal'
  @ipv4 = true
  @ipv6 = true
  @quiet = false
  @countries = {}
end

Public Instance Methods

file() click to toggle source

if not set, defaults to lib/module-name

# File lib/geolocal/configuration.rb, line 19
def file
  @file || "lib/#{module_file @module}.rb"
end
load_provider() click to toggle source
# File lib/geolocal/configuration.rb, line 33
def load_provider
  require_provider_file
  @provider.split('::').reduce(Module, :const_get)
end
module_file(modname) click to toggle source
# File lib/geolocal/configuration.rb, line 43
def module_file modname
  modname.gsub('::', '/').gsub(/([a-z])([A-Z])/, '\1_\2').downcase
end
require_provider_file() click to toggle source
# File lib/geolocal/configuration.rb, line 23
def require_provider_file
  begin
    # normal ruby/gem load path
    Kernel.require module_file(@provider)
  rescue LoadError
    # used when running source code locally
    Kernel.require "./lib/#{module_file(@provider)}.rb"
  end
end
to_hash() click to toggle source
# File lib/geolocal/configuration.rb, line 38
def to_hash
  # returned keys will always be symbols
  OPTIONS.reduce({}) { |a,v| a.merge! v => self.send(v) }
end