class Alchemist::ModuleBuilder

Public Class Methods

new(category) click to toggle source
# File lib/alchemist/module_builder.rb, line 3
def initialize category
  define_inspect_method(category)
  define_unit_methods(category)
end

Public Instance Methods

define_unit_method(names) click to toggle source
# File lib/alchemist/module_builder.rb, line 8
def define_unit_method(names)
  names.each do |name|
    define_method(name.to_sym) { Alchemist.measure self, name.to_sym }
  end
end

Private Instance Methods

define_inspect_method(category) click to toggle source
# File lib/alchemist/module_builder.rb, line 16
def define_inspect_method(category)
  define_method :inspect do
    "#<Module(#{category})>"
  end
end
define_unit_methods(category) click to toggle source
# File lib/alchemist/module_builder.rb, line 22
def define_unit_methods(category)
  unit_names(category).map do |name|
    define_method name do
      Alchemist.measure self, name.to_sym
    end
    prefixes_for(name).map do |prefix|
      define_method "#{prefix}#{name}" do
        Alchemist.measure_prefixed self, prefix.to_sym, name.to_sym
      end
    end
  end
end
library() click to toggle source
# File lib/alchemist/module_builder.rb, line 35
def library
  Alchemist.library
end
prefixes_for(name) click to toggle source
# File lib/alchemist/module_builder.rb, line 43
def prefixes_for(name)
  if library.si_units.include?(name.to_s)
    library.unit_prefixes.keys
  else
    []
  end
end
unit_names(category) click to toggle source
# File lib/alchemist/module_builder.rb, line 39
def unit_names(category)
  library.unit_names(category)
end