Class: Neo4j::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/neo4j/config.rb

Overview

Keeps configuration for neo4j

Configurations keys

Constant Summary collapse

DEFAULT_FILE =
File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'neo4j', 'config.yml'))
CLASS_NAME_PROPERTY_KEY =
'class_name_property'

Class Method Summary collapse

Class Method Details

.[](key) ⇒ Object

Returns the the value of a config entry.

Parameters:

  • key (Symbol)

    The key of the config entry value we want

Returns:

  • the the value of a config entry



70
71
72
# File 'lib/neo4j/config.rb', line 70

def [](key)
  configuration[key.to_s]
end

.[]=(key, val) ⇒ Object

Sets the value of a config entry.

Parameters:

  • key (Symbol)

    the key to set the parameter for

  • val

    the value of the parameter.



64
65
66
# File 'lib/neo4j/config.rb', line 64

def []=(key, val)
  configuration[key.to_s] = val
end

.association_model_namespaceObject



113
114
115
# File 'lib/neo4j/config.rb', line 113

def association_model_namespace
  Neo4j::Config[:association_model_namespace] || nil
end

.association_model_namespace_stringObject



117
118
119
120
121
# File 'lib/neo4j/config.rb', line 117

def association_model_namespace_string
  namespace = Neo4j::Config[:association_model_namespace]
  return nil if namespace.nil?
  "::#{namespace}"
end

.configurationHash

Reads from the default_file if configuration is not set already

Returns:

  • (Hash)

    the configuration



36
37
38
39
40
41
42
# File 'lib/neo4j/config.rb', line 36

def configuration
  return @configuration if @configuration

  @configuration = ActiveSupport::HashWithIndifferentAccess.new
  @configuration.merge!(defaults)
  @configuration
end

.default_fileFixnum

Returns The location of the default configuration file.

Returns:

  • (Fixnum)

    The location of the default configuration file.



16
17
18
# File 'lib/neo4j/config.rb', line 16

def default_file
  @default_file ||= DEFAULT_FILE
end

.default_file=(file_path) ⇒ Object

Sets the location of the configuration YAML file and old deletes configurations.

Parameters:

  • file_path (String)

    represent the path to the file.



22
23
24
25
26
# File 'lib/neo4j/config.rb', line 22

def default_file=(file_path)
  delete_all
  @defaults = nil
  @default_file = File.expand_path(file_path)
end

.defaultsHash

Returns the default file loaded by yaml.

Returns:

  • (Hash)

    the default file loaded by yaml



29
30
31
32
# File 'lib/neo4j/config.rb', line 29

def defaults
  require 'yaml'
  @defaults ||= ActiveSupport::HashWithIndifferentAccess.new(YAML.load_file(default_file))
end

.delete(key) ⇒ Object

Remove the value of a config entry.

Parameters:

  • key (Symbol)

    the key of the configuration entry to delete

Returns:

  • The value of the removed entry.



78
79
80
# File 'lib/neo4j/config.rb', line 78

def delete(key)
  configuration.delete(key)
end

.delete_allObject

Remove all configuration. This can be useful for testing purpose.

Returns:

  • nil



85
86
87
# File 'lib/neo4j/config.rb', line 85

def delete_all
  @configuration = nil
end

.include_root_in_jsonObject



99
100
101
102
# File 'lib/neo4j/config.rb', line 99

def include_root_in_json
  # we use ternary because a simple || will always evaluate true
  Neo4j::Config[:include_root_in_json].nil? ? true : Neo4j::Config[:include_root_in_json]
end

.module_handlingObject



104
105
106
# File 'lib/neo4j/config.rb', line 104

def module_handling
  Neo4j::Config[:module_handling] || :none
end

.timestamp_typeClass

Returns The configured timestamps type (e.g. Integer) or the default DateTime.

Returns:

  • (Class)

    The configured timestamps type (e.g. Integer) or the default DateTime.



109
110
111
# File 'lib/neo4j/config.rb', line 109

def timestamp_type
  Neo4j::Config[:timestamp_type] || DateTime
end

.to_hashHash

Returns The config as a hash.

Returns:

  • (Hash)

    The config as a hash.



90
91
92
# File 'lib/neo4j/config.rb', line 90

def to_hash
  configuration.to_hash
end

.to_yamlString

Returns The config as a YAML.

Returns:

  • (String)

    The config as a YAML



95
96
97
# File 'lib/neo4j/config.rb', line 95

def to_yaml
  configuration.to_yaml
end

.use {|config| ... } ⇒ Object

Yields the configuration

Examples:

Neo4j::Config.use do |config|
  config[:storage_path] = '/var/neo4j'
end

Yields:

  • config

Yield Parameters:

Returns:

  • nil



54
55
56
57
58
# File 'lib/neo4j/config.rb', line 54

def use
  @configuration ||= ActiveSupport::HashWithIndifferentAccess.new
  yield @configuration
  nil
end