Method: Ooor::OoorBehavior::ClassMethods#format_config

Defined in:
lib/ooor.rb

#format_config(config) ⇒ Object

gives a hash config from a connection string or a yaml file, injects default values



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/ooor.rb', line 102

def format_config(config)
  if config.is_a?(String) && config.end_with?('.yml')
    env = defined?(Rails.env) ? Rails.env : nil
    config = load_config_file(config, env)
  end
  if config.is_a?(String)
    cs = config
    config = HashWithIndifferentAccess.new()
  elsif config[:ooor_url]
    cs = config[:ooor_url]
  elsif ENV['OOOR_URL']
    cs = ENV['OOOR_URL'].dup()
  end
  config.merge!(parse_connection_string(cs)) if cs
  defaults = HashWithIndifferentAccess.new({
    url: 'http://localhost:8069',
    username: 'admin'
  })
  defaults[:password] = ENV['OOOR_PASSWORD'] if ENV['OOOR_PASSWORD']
  defaults[:username] = ENV['OOOR_USERNAME'] if ENV['OOOR_USERNAME']
  defaults[:database] = ENV['OOOR_DATABASE'] if ENV['OOOR_DATABASE']
  defaults.merge(config)
end