Class: ActiveGraph::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/active_graph/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 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



68
69
70
# File 'lib/active_graph/config.rb', line 68

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.



62
63
64
# File 'lib/active_graph/config.rb', line 62

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

.association_model_namespaceObject



119
120
121
# File 'lib/active_graph/config.rb', line 119

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

.association_model_namespace_stringObject



123
124
125
126
127
# File 'lib/active_graph/config.rb', line 123

def association_model_namespace_string
  namespace = ActiveGraph::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



34
35
36
37
38
39
40
# File 'lib/active_graph/config.rb', line 34

def configuration
  return @configuration if @configuration

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

.default_fileInteger

Returns The location of the default configuration file.

Returns:

  • (Integer)

    The location of the default configuration file.



15
16
17
# File 'lib/active_graph/config.rb', line 15

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.



21
22
23
24
25
# File 'lib/active_graph/config.rb', line 21

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



28
29
30
# File 'lib/active_graph/config.rb', line 28

def defaults
  @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.



80
81
82
# File 'lib/active_graph/config.rb', line 80

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

.delete_allObject

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

Returns:

  • nil



87
88
89
# File 'lib/active_graph/config.rb', line 87

def delete_all
  @configuration = nil
end

.enums_case_sensitiveObject



129
130
131
# File 'lib/active_graph/config.rb', line 129

def enums_case_sensitive
  ActiveGraph::Config[:enums_case_sensitive] || false
end

.fail_on_pending_migrationsObject



101
102
103
# File 'lib/active_graph/config.rb', line 101

def fail_on_pending_migrations
  ActiveGraph::Config[:fail_on_pending_migrations].nil? ? true : ActiveGraph::Config[:fail_on_pending_migrations]
end

.fetch(key, default) ⇒ Object



72
73
74
# File 'lib/active_graph/config.rb', line 72

def fetch(key, default)
  configuration.fetch(key, default)
end

.include_root_in_jsonObject



105
106
107
108
# File 'lib/active_graph/config.rb', line 105

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

.module_handlingObject



110
111
112
# File 'lib/active_graph/config.rb', line 110

def module_handling
  ActiveGraph::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.



115
116
117
# File 'lib/active_graph/config.rb', line 115

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

.to_hashHash

Returns The config as a hash.

Returns:

  • (Hash)

    The config as a hash.



92
93
94
# File 'lib/active_graph/config.rb', line 92

def to_hash
  configuration.to_hash
end

.to_yamlString

Returns The config as a YAML.

Returns:

  • (String)

    The config as a YAML



97
98
99
# File 'lib/active_graph/config.rb', line 97

def to_yaml
  configuration.to_yaml
end

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

Yields the configuration

Examples:

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

Yields:

  • config

Yield Parameters:

Returns:

  • nil



52
53
54
55
56
# File 'lib/active_graph/config.rb', line 52

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