Class: Unitsml::Unitsdb::Dimension

Inherits:
Unitsdb::Dimension
  • Object
show all
Defined in:
lib/unitsml/unitsdb/dimension.rb

Constant Summary collapse

QUANTITY_KEYS =
%i[
  length
  mass
  time
  thermodynamic_temperature
  amount_of_substance
  luminous_intensity
  plane_angle
  electric_current
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ Dimension

Returns a new instance of Dimension.



22
23
24
25
26
27
28
# File 'lib/unitsml/unitsdb/dimension.rb', line 22

def initialize(attrs)
  @quantities = {}
  @parsables = {}
  @processed_keys = []
  @parsable = false
  super
end

Instance Attribute Details

#parsableObject (readonly)

Returns the value of attribute parsable.



17
18
19
# File 'lib/unitsml/unitsdb/dimension.rb', line 17

def parsable
  @parsable
end

#parsablesObject (readonly)

Returns the value of attribute parsables.



17
18
19
# File 'lib/unitsml/unitsdb/dimension.rb', line 17

def parsables
  @parsables
end

#processed_keysObject (readonly)

Returns the value of attribute processed_keys.



17
18
19
# File 'lib/unitsml/unitsdb/dimension.rb', line 17

def processed_keys
  @processed_keys
end

#vectorObject (readonly)

Returns the value of attribute vector.



17
18
19
# File 'lib/unitsml/unitsdb/dimension.rb', line 17

def vector
  @vector
end

Instance Method Details

#dim_symbolsObject



40
41
42
43
44
# File 'lib/unitsml/unitsdb/dimension.rb', line 40

def dim_symbols
  processed_keys.flat_map do |vec|
    dimension_symbols_for(public_send(vec)).map(&:id)
  end.compact
end

#idObject



56
57
58
# File 'lib/unitsml/unitsdb/dimension.rb', line 56

def id
  identifiers.find { |id| id.type == "nist" }&.id
end

#processed_symbolObject



46
47
48
# File 'lib/unitsml/unitsdb/dimension.rb', line 46

def processed_symbol
  public_send(processed_keys.first).symbol
end

#set_vectorObject



50
51
52
53
54
# File 'lib/unitsml/unitsdb/dimension.rb', line 50

def set_vector
  @set_vector ||= Utility::DIMS_VECTOR.map do |h|
    public_send(Utility.underscore(h))&.power
  end.join(":")
end