Class: UnitManager::InitializeUnit
- Inherits:
-
Object
- Object
- UnitManager::InitializeUnit
- Defined in:
- lib/unit_manager/initialize_unit.rb
Instance Attribute Summary collapse
-
#units ⇒ Object
readonly
Returns the value of attribute units.
Instance Method Summary collapse
-
#initialize ⇒ InitializeUnit
constructor
A new instance of InitializeUnit.
- #unit_config_path ⇒ Object
Constructor Details
#initialize ⇒ InitializeUnit
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
#units ⇒ Object (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_path ⇒ Object
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 |