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