Module: Alchemist

Defined in:
lib/alchemist.rb,
lib/alchemist/library.rb,
lib/alchemist/version.rb,
lib/alchemist/geospatial.rb,
lib/alchemist/measurement.rb,
lib/alchemist/configuration.rb,
lib/alchemist/prefix_parser.rb,
lib/alchemist/module_builder.rb,
lib/alchemist/conversion_table.rb,
lib/alchemist/compound_measurement.rb,
lib/alchemist/conversion_calculator.rb,
lib/alchemist/measurement_convertor.rb,
lib/alchemist/objects/planets/earth.rb

Defined Under Namespace

Classes: CompoundMeasurement, Configuration, ConversionCalculator, ConversionTable, Earth, GeospatialArgumentError, IncompatibleTypeError, Library, Measurement, MeasurementConvertor, ModuleBuilder, PrefixParser

Constant Summary collapse

VERSION =
"0.1.8"

Class Method Summary collapse

Class Method Details

.configObject



37
38
39
# File 'lib/alchemist.rb', line 37

def self.config
  @configuration ||= Configuration.new
end

.libraryObject



33
34
35
# File 'lib/alchemist.rb', line 33

def self.library
  @library ||= Library.new
end

.measure(value, unit, exponent = 1.0) ⇒ Object



24
25
26
# File 'lib/alchemist.rb', line 24

def self.measure value, unit, exponent = 1.0
  Measurement.new value, unit, exponent
end

.measure_prefixed(value, prefix, unit) ⇒ Object



28
29
30
31
# File 'lib/alchemist.rb', line 28

def self.measure_prefixed value, prefix, unit
  exponent = library.exponent_for(unit, prefix)
  Measurement.new value, unit, exponent, prefix: prefix
end

.register(types, names, value) ⇒ Object



41
42
43
# File 'lib/alchemist.rb', line 41

def self.register(types, names, value)
  library.register(types, names, value)
end

.reset!Object



45
46
47
48
# File 'lib/alchemist.rb', line 45

def self.reset!
  @library = nil
  @configuration = nil
end

.setup(category = nil) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/alchemist.rb', line 16

def self.setup category = nil
  if category
    load_category category
  else
    load_all_categories
  end
end