Class: ConfigLoader::Map

Inherits:
Object
  • Object
show all
Defined in:
lib/config_loader/map.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_name, running_env, project_root) ⇒ Map

Returns a new instance of Map.



9
10
11
12
13
14
# File 'lib/config_loader/map.rb', line 9

def initialize(file_name, running_env, project_root)
  raise MissingConfigFileNameError unless file_name
  @file_name    = "#{file_name}.yml"
  @running_env  = running_env
  @project_root = project_root
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name) ⇒ Object



29
30
31
# File 'lib/config_loader/map.rb', line 29

def method_missing(method_name)
  self[method_name]
end

Instance Attribute Details

#file_nameObject (readonly)

Returns the value of attribute file_name.



7
8
9
# File 'lib/config_loader/map.rb', line 7

def file_name
  @file_name
end

#project_rootObject (readonly)

Returns the value of attribute project_root.



7
8
9
# File 'lib/config_loader/map.rb', line 7

def project_root
  @project_root
end

#running_envObject (readonly)

Returns the value of attribute running_env.



7
8
9
# File 'lib/config_loader/map.rb', line 7

def running_env
  @running_env
end

Instance Method Details

#file_contentObject



16
17
18
19
# File 'lib/config_loader/map.rb', line 16

def file_content
  raise MissingConfigFileError unless File.exists?(full_file_name)
  File.open(full_file_name) { |file| YAML::load(file) }
end

#full_file_nameObject



21
22
23
# File 'lib/config_loader/map.rb', line 21

def full_file_name
  "#{project_root}/config/#{file_name}"
end

#loadObject



25
26
27
# File 'lib/config_loader/map.rb', line 25

def load
  file_content[@running_env]
end