module Neo4j
# == Keeps configuration for neo4j.
#
# The most important configuration is Neo4j::Config[:storage_path] which is used to
# locate where the neo4j database is stored on the filesystem.
# If this directory is empty then a new database will be created, otherwise it will use the
# database from that directory.
#
class Config
# This code is copied from merb-core/config.rb.
class << self
# Returns the hash of default config values for neo4j
#
# ==== Returns
# Hash:: The defaults for the config.
def defaults
@defaults ||= {
:storage_path => 'tmp/neo4j',
:lucene => {
:fulltext => {"provider" => "lucene", "type" => "fulltext" },
:exact => {"provider" => "lucene", "type" => "exact" }}
}
end
# Yields the configuration.
#
# ==== Block parameters
# c:: The configuration parameters.
#
# ==== Examples
# Neo4j::Config.use do |config|
# config[:storage_path] = '/var/neo4j'
# end
#
# ==== Returns
# nil
def use
@configuration ||= {}
yield @configuration
nil
end
# Set the value of a config entry.
#
# ==== Parameters
# key:: The key to set the parameter for.
# val:: The value of the parameter.
#
def []=(key, val)
(@configuration ||= setup)[key] = val
end
# Gets the the value of a config entry
#
# ==== Parameters
# key:: The key of the config entry value we want
#
def [](key)
(@configuration ||= setup)[key]
end
# Remove the value of a config entry.
#
# ==== Parameters
# key