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