assert_config_keys_valid!(config)
click to toggle source
def assert_config_keys_valid!(config)
bad_keys = config.keys.reject{|k| config_key_valid?(k)}
unless bad_keys.empty?
bad_keys_s = bad_keys.map(&:inspect).join(", ")
raise Error, "config has bad keys: #{bad_keys_s}"
end
end
assert_raw_keys_valid!(raw)
click to toggle source
def assert_raw_keys_valid!(raw)
bad_keys = raw.keys.reject{|k| raw_key_valid?(k)}
unless bad_keys.empty?
config_path_s = config_path.to_s.inspect
bad_keys_s = bad_keys.map(&:inspect).join(", ")
raise Error, "config #{to_s} has bad keys: #{bad_keys_s}"
end
end
assert_values_valid!(data)
click to toggle source
def assert_values_valid!(data)
bad_data = data.reject{|k, v| String === v}
bad_keys = bad_data.keys
unless bad_keys.empty?
bad_keys_s = bad_keys.map(&:inspect).join(", ")
raise Error, "config has bad values for keys: #{bad_keys_s}"
end
end
config_key_valid?(key)
click to toggle source
def config_key_valid?(key)
config_key_validity_pattern === key
end
config_key_validity_pattern()
click to toggle source
def config_key_validity_pattern
self.class.config_key_validity_pattern
end
key_permitted?(key)
click to toggle source
def key_permitted?(key)
String === key &&
config_key_validity_pattern === key &&
!forbidden_keys.any?{|k| k === key}
end
load!()
click to toggle source
def load!
self.data = load unless data
end
raw_key_prefix()
click to toggle source
def raw_key_prefix
@key_prefix ||= "LIBRARIAN_#{adapter_name.upcase}_"
end
raw_key_suffix_validity_pattern()
click to toggle source
def raw_key_suffix_validity_pattern
self.class.raw_key_suffix_validity_pattern
end
raw_key_valid?(key)
click to toggle source
def raw_key_valid?(key)
return false unless key.start_with?(raw_key_prefix)
suffix = key[raw_key_prefix.size..-1]
raw_key_suffix_validity_pattern =~ suffix
end
translate_config_to_raw(config)
click to toggle source
def translate_config_to_raw(config)
assert_config_keys_valid!(config)
assert_values_valid!(config)
Hash[config.map do |key, value|
key = key.gsub(/\./, "__").gsub(/\-/, "_").upcase
key = "#{raw_key_prefix}#{key}"
[key, value]
end]
end
translate_raw_to_config(raw)
click to toggle source
def translate_raw_to_config(raw)
assert_raw_keys_valid!(raw)
assert_values_valid!(raw)
Hash[raw.map do |key, value|
key = key[raw_key_prefix.size .. -1]
key = key.downcase.gsub(/__/, ".").gsub(/_/, "-")
[key, value]
end]
end
value_permitted?(key, value)
click to toggle source
def value_permitted?(key, value)
return true if value.nil?
String === value
end