Module: Unitsml::Unitsdb

Defined in:
lib/unitsml/unitsdb.rb,
lib/unitsml/unitsdb/unit.rb,
lib/unitsml/unitsdb/units.rb,
lib/unitsml/unitsdb/finders.rb,
lib/unitsml/unitsdb/database.rb,
lib/unitsml/unitsdb/prefixes.rb,
lib/unitsml/unitsdb/dimension.rb,
lib/unitsml/unitsdb/dimensions.rb,
lib/unitsml/unitsdb/quantities.rb,
lib/unitsml/unitsdb/prefix_reference.rb,
lib/unitsml/unitsdb/dimension_details.rb

Defined Under Namespace

Modules: Finders Classes: Database, Dimension, DimensionDetails, Dimensions, PrefixReference, Prefixes, Quantities, Unit, Units

Constant Summary collapse

CACHE_INSTANCE_VARIABLES =
%i[
  @units
  @prefixes
  @dimensions
  @quantities
  @prefixes_array
  @sized_prefixes
  @database
].freeze

Class Method Summary collapse

Class Method Details

.databaseObject



68
69
70
# File 'lib/unitsml/unitsdb.rb', line 68

def database
  @database ||= load_database
end

.dimensionsObject



43
44
45
46
47
48
# File 'lib/unitsml/unitsdb.rb', line 43

def dimensions
  @dimensions ||= Dimensions.new(
    dimensions: database.dimensions,
    lutaml_register: Configuration.context.id,
  )
end

.prefixesObject



36
37
38
39
40
41
# File 'lib/unitsml/unitsdb.rb', line 36

def prefixes
  @prefixes ||= Prefixes.new(
    prefixes: database.prefixes,
    lutaml_register: Configuration.context.id,
  )
end

.prefixes_arrayObject



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

def prefixes_array
  @prefixes_array ||= prefixes.ascii_symbols.sort_by(&:length)
end

.prefixes_by_size(size) ⇒ Object



61
62
63
64
65
66
# File 'lib/unitsml/unitsdb.rb', line 61

def prefixes_by_size(size)
  @sized_prefixes ||= {}
  return @sized_prefixes[size] if @sized_prefixes.key?(size)

  @sized_prefixes[size] = prefixes_array.select { |p| p.size == size }
end

.quantitiesObject



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

def quantities
  @quantities ||= Quantities.new(
    quantities: database.quantities,
    lutaml_register: Configuration.context.id,
  )
end

.reset_cachesObject



72
73
74
75
76
# File 'lib/unitsml/unitsdb.rb', line 72

def reset_caches
  CACHE_INSTANCE_VARIABLES.each do |ivar|
    remove_instance_variable(ivar) if instance_variable_defined?(ivar)
  end
end

.unitsObject



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

def units
  @units ||= Units.new(
    units: database.units,
    lutaml_register: Configuration.context.id,
  )
end