Class: Unitsml::Unitsdb::Units

Inherits:
Unitsdb::Units
  • Object
show all
Includes:
Finders
Defined in:
lib/unitsml/unitsdb/units.rb

Instance Method Summary collapse

Methods included from Finders

#find_first_in, #find_first_through

Instance Method Details

#filteredObject



16
17
18
19
20
# File 'lib/unitsml/unitsdb/units.rb', line 16

def filtered
  @filtered ||= symbols_ids.reject do |unit|
    %r{\*|\^|/|^1$}.match?(unit) || find_by_symbol_id(unit).prefixed
  end
end

#find_by_id(u_id) ⇒ Object



8
9
10
# File 'lib/unitsml/unitsdb/units.rb', line 8

def find_by_id(u_id)
  find_first_through(units, via: :identifiers, field: :id, value: u_id)
end

#find_by_name(u_name) ⇒ Object



12
13
14
# File 'lib/unitsml/unitsdb/units.rb', line 12

def find_by_name(u_name)
  find_first_through(units, via: :symbols, field: :id, value: u_name)
end

#find_by_symbol_id(sym_id) ⇒ Object



22
23
24
# File 'lib/unitsml/unitsdb/units.rb', line 22

def find_by_symbol_id(sym_id)
  symbols_hash[sym_id]
end

#symbols_hashObject



30
31
32
33
34
# File 'lib/unitsml/unitsdb/units.rb', line 30

def symbols_hash
  @symbols_hash ||= units.each_with_object({}) do |unit, object|
    unit.symbols&.each { |unit_sym| object[unit_sym.id] = unit }
  end
end

#symbols_idsObject



26
27
28
# File 'lib/unitsml/unitsdb/units.rb', line 26

def symbols_ids
  symbols_hash.keys
end