class Kudzu::Config

Constants

DEFAULT_CONFIG
SIMPLE_CONFIGS

Public Class Methods

new(config = {}, &block) click to toggle source
# File lib/kudzu/config.rb, line 28
def initialize(config = {}, &block)
  self.filters = {}
  DEFAULT_CONFIG.merge(config).each do |key, value|
    send("#{key}=", value) if respond_to?("#{key}=")
  end
  if config_file || block
    delegator = Delegator.new(self)
    delegator.instance_eval(File.read(config_file)) if config_file
    delegator.instance_eval(&block) if block
  end
end

Public Instance Methods

add_filter(base_url = nil, config = {}, &block) click to toggle source
# File lib/kudzu/config.rb, line 40
def add_filter(base_url = nil, config = {}, &block)
  base_uri = Addressable::URI.parse(base_url || '*')
  host = base_uri.host.presence || '*'
  path = base_uri.path.presence || '*'
  filters[host] ||= []
  filters[host] << Filter.new(path, config, &block)
end
find_filter(uri) click to toggle source
# File lib/kudzu/config.rb, line 48
def find_filter(uri)
  uri = Addressable::URI.parse(uri) if uri.is_a?(String)
  filters.each do |host, filters|
    next unless Kudzu::Common.match?(uri.host, host)
    filters.each do |filter|
      return filter if Kudzu::Common.match?(uri.path, filter.path)
    end
  end
  nil
end