configuration()
click to toggle source
def configuration
@configuration ||= Riddle::Configuration.new
end
each_with_prefix(prefix) { |gsub(/^| ... }
click to toggle source
def each_with_prefix(prefix)
inner.keys.select { |key| key[/^#{prefix}\s+/] }.each do |key|
yield key.gsub(/^#{prefix}\s+/, ''), inner[key]
end
end
inner()
click to toggle source
def inner
@inner ||= InnerParser.new(@input).parse!
end
set_indexer()
click to toggle source
def set_indexer
set_settings configuration.indexer, inner['indexer']
end
set_indices()
click to toggle source
def set_indices
each_with_prefix 'index' do |name, settings|
names = name.split(/\s*:\s*/)
type = (settings.delete('type') || ['plain']).first
index = INDEX_CLASSES[type].new names.first
index.parent = names.last if names.length > 1
(settings.delete('source') || []).each do |source_name|
index.sources << sources[source_name]
end
set_settings index, settings
configuration.indices << index
end
end
set_searchd()
click to toggle source
def set_searchd
set_settings configuration.searchd, inner['searchd']
end
set_setting(object, key, value)
click to toggle source
def set_setting(object, key, value)
if object.send(key).is_a?(Array)
object.send(key) << value
else
object.send "#{key}=", value
end
end
set_settings(object, hash)
click to toggle source
def set_settings(object, hash)
hash.each do |key, values|
values.each do |value|
set_setting object, key, value
end
end
end
set_sources()
click to toggle source
def set_sources
each_with_prefix 'source' do |name, settings|
names = name.split(/\s*:\s*/)
type = settings.delete('type').first
source = SOURCE_CLASSES[type].new names.first, type
source.parent = names.last if names.length > 1
set_settings source, settings
sources[source.name] = source
end
end
sources()
click to toggle source
def sources
@sources ||= {}
end