Class: UnitManager::InitializeUnit

Inherits:
Object
  • Object
show all
Defined in:
lib/unit_manager/initialize_unit.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInitializeUnit

Returns a new instance of InitializeUnit.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/unit_manager/initialize_unit.rb', line 8

def initialize
  units_hash = open(unit_config_path, 'r') { |f| YAML.load(f) }

  units = units_hash['units'].each_with_object({}) do |unit, units|
    split_equation = unit['equation'].split
    raise InvalidEquation, "too long equation invalid: #{unit['equation']}" if UnitManager::Unit::MAX_EQUATION_SIZE < split_equation.size
    raise InvalidEquation, "<value> does not exist equation invalid: #{unit['equation']}" unless split_equation.include?('<value>')
    raise InvalidEquation, "equationv contains invalid symbol: #{unit['equation']}" if split_equation.any? {|equation_symbol| UnitManager::Unit::INVALID_EQUATION_SYMBOL.include?(equation_symbol)}

    units["#{unit['key']}"] = UnitManager::Unit.new(key: unit['key'], name: unit['name'], equation: unit['equation'])
  end

  @units = units
end

Instance Attribute Details

#unitsObject (readonly)

Returns the value of attribute units.



6
7
8
# File 'lib/unit_manager/initialize_unit.rb', line 6

def units
  @units
end

Instance Method Details

#unit_config_pathObject



23
24
25
26
27
28
29
30
31
# File 'lib/unit_manager/initialize_unit.rb', line 23

def unit_config_path
  gem_install_path = __dir__.slice!(0, __dir__.size-17)

  unit_config_path_file = File.open("#{gem_install_path}/config/unit_config_path.txt", 'r')
  unit_config_path = unit_config_path_file.read
  unit_config_path_file.close

  unit_config_path
end