ruby-units 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.txt +6 -0
- data/README.md +19 -6
- data/VERSION +1 -1
- data/lib/ruby-units.rb +8 -13
- data/lib/ruby_units.rb +8 -13
- data/lib/ruby_units/array.rb +4 -4
- data/lib/ruby_units/cache.rb +2 -2
- data/lib/ruby_units/definition.rb +6 -6
- data/lib/ruby_units/fixnum.rb +2 -2
- data/lib/ruby_units/math.rb +12 -12
- data/lib/ruby_units/namespaced.rb +16 -0
- data/lib/ruby_units/numeric.rb +3 -3
- data/lib/ruby_units/string.rb +5 -5
- data/lib/ruby_units/time.rb +9 -8
- data/lib/ruby_units/unit.rb +1408 -1385
- data/lib/ruby_units/unit_definitions.rb +3 -3
- data/lib/ruby_units/unit_definitions/base.rb +16 -16
- data/lib/ruby_units/unit_definitions/prefix.rb +2 -2
- data/lib/ruby_units/unit_definitions/standard.rb +268 -268
- data/lib/ruby_units/version.rb +7 -5
- data/ruby-units.gemspec +3 -2
- metadata +4 -3
| @@ -1,3 +1,3 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 1 | 
            +
            require_relative 'unit_definitions/prefix'
         | 
| 2 | 
            +
            require_relative 'unit_definitions/base'
         | 
| 3 | 
            +
            require_relative 'unit_definitions/standard'
         | 
| @@ -1,98 +1,98 @@ | |
| 1 1 | 
             
            # seed the cache
         | 
| 2 | 
            -
            Unit('1')
         | 
| 2 | 
            +
            RubyUnits::Unit.new('1')
         | 
| 3 3 |  | 
| 4 | 
            -
            Unit.define("meter") do |unit|
         | 
| 4 | 
            +
            RubyUnits::Unit.define("meter") do |unit|
         | 
| 5 5 | 
             
              unit.scalar    = 1
         | 
| 6 6 | 
             
              unit.numerator = %w{<meter>}
         | 
| 7 7 | 
             
              unit.aliases   = %w{m meter meters metre metres}
         | 
| 8 8 | 
             
              unit.kind      = :length
         | 
| 9 9 | 
             
            end
         | 
| 10 10 |  | 
| 11 | 
            -
            Unit.define("kilogram") do |unit|
         | 
| 11 | 
            +
            RubyUnits::Unit.define("kilogram") do |unit|
         | 
| 12 12 | 
             
              unit.scalar    = 1
         | 
| 13 13 | 
             
              unit.numerator = %w{<kilogram>}
         | 
| 14 14 | 
             
              unit.aliases   = %w{kg kilogram kilograms}
         | 
| 15 15 | 
             
              unit.kind      = :mass
         | 
| 16 16 | 
             
            end
         | 
| 17 17 |  | 
| 18 | 
            -
            Unit.define("second") do |unit|
         | 
| 18 | 
            +
            RubyUnits::Unit.define("second") do |unit|
         | 
| 19 19 | 
             
              unit.scalar    = 1
         | 
| 20 20 | 
             
              unit.numerator = %w{<second>}
         | 
| 21 21 | 
             
              unit.aliases   = %w{s sec second seconds}
         | 
| 22 22 | 
             
              unit.kind      = :time
         | 
| 23 23 | 
             
            end
         | 
| 24 24 |  | 
| 25 | 
            -
            Unit.define("mole") do |unit|
         | 
| 25 | 
            +
            RubyUnits::Unit.define("mole") do |unit|
         | 
| 26 26 | 
             
              unit.scalar    = 1
         | 
| 27 27 | 
             
              unit.numerator = %w{<mole>}
         | 
| 28 28 | 
             
              unit.aliases   = %w{mol mole}
         | 
| 29 29 | 
             
              unit.kind      = :substance
         | 
| 30 30 | 
             
            end
         | 
| 31 31 |  | 
| 32 | 
            -
            Unit.define("ampere") do |unit|
         | 
| 32 | 
            +
            RubyUnits::Unit.define("ampere") do |unit|
         | 
| 33 33 | 
             
              unit.scalar    = 1
         | 
| 34 34 | 
             
              unit.numerator = %w{<ampere>}
         | 
| 35 35 | 
             
              unit.aliases   = %w{A ampere amperes amp amps}
         | 
| 36 36 | 
             
              unit.kind      = :current
         | 
| 37 37 | 
             
            end
         | 
| 38 38 |  | 
| 39 | 
            -
            Unit.define("radian") do |unit|
         | 
| 39 | 
            +
            RubyUnits::Unit.define("radian") do |unit|
         | 
| 40 40 | 
             
              unit.scalar    = 1
         | 
| 41 41 | 
             
              unit.numerator = %w{<radian>}
         | 
| 42 42 | 
             
              unit.aliases   = %w{rad radian radians}
         | 
| 43 43 | 
             
              unit.kind      = :angle
         | 
| 44 44 | 
             
            end
         | 
| 45 45 |  | 
| 46 | 
            -
            Unit.define("kelvin") do |unit|
         | 
| 46 | 
            +
            RubyUnits::Unit.define("kelvin") do |unit|
         | 
| 47 47 | 
             
              unit.scalar    = 1
         | 
| 48 48 | 
             
              unit.numerator = %w{<kelvin>}
         | 
| 49 49 | 
             
              unit.aliases   = %w{degK kelvin}
         | 
| 50 50 | 
             
              unit.kind      = :temperature
         | 
| 51 51 | 
             
            end
         | 
| 52 52 |  | 
| 53 | 
            -
            Unit.define("tempK") do |unit|
         | 
| 53 | 
            +
            RubyUnits::Unit.define("tempK") do |unit|
         | 
| 54 54 | 
             
              unit.scalar    = 1
         | 
| 55 55 | 
             
              unit.numerator = %w{<tempK>}
         | 
| 56 56 | 
             
              unit.aliases   = %w{tempK}
         | 
| 57 57 | 
             
              unit.kind      = :temperature
         | 
| 58 58 | 
             
            end
         | 
| 59 59 |  | 
| 60 | 
            -
            Unit.define("byte") do |unit|
         | 
| 60 | 
            +
            RubyUnits::Unit.define("byte") do |unit|
         | 
| 61 61 | 
             
              unit.scalar    = 1
         | 
| 62 62 | 
             
              unit.numerator = %w{<byte>}
         | 
| 63 63 | 
             
              unit.aliases   = %w{B byte bytes}
         | 
| 64 | 
            -
              unit.kind      = : | 
| 64 | 
            +
              unit.kind      = :information
         | 
| 65 65 | 
             
            end
         | 
| 66 66 |  | 
| 67 | 
            -
            Unit.define("dollar") do |unit|
         | 
| 67 | 
            +
            RubyUnits::Unit.define("dollar") do |unit|
         | 
| 68 68 | 
             
              unit.scalar    = 1
         | 
| 69 69 | 
             
              unit.numerator = %w{<dollar>}
         | 
| 70 70 | 
             
              unit.aliases   = %w{USD dollar}
         | 
| 71 71 | 
             
              unit.kind      = :currency
         | 
| 72 72 | 
             
            end
         | 
| 73 73 |  | 
| 74 | 
            -
            Unit.define("candela") do |unit|
         | 
| 74 | 
            +
            RubyUnits::Unit.define("candela") do |unit|
         | 
| 75 75 | 
             
              unit.scalar    = 1
         | 
| 76 76 | 
             
              unit.numerator = %w{<candela>}
         | 
| 77 77 | 
             
              unit.aliases   = %w{cd candela}
         | 
| 78 78 | 
             
              unit.kind      = :luminosity
         | 
| 79 79 | 
             
            end
         | 
| 80 80 |  | 
| 81 | 
            -
            Unit.define("each") do |unit|
         | 
| 81 | 
            +
            RubyUnits::Unit.define("each") do |unit|
         | 
| 82 82 | 
             
              unit.scalar    = 1
         | 
| 83 83 | 
             
              unit.numerator = %w{<each>}
         | 
| 84 84 | 
             
              unit.aliases   = %w{each}
         | 
| 85 85 | 
             
              unit.kind      = :counting
         | 
| 86 86 | 
             
            end
         | 
| 87 87 |  | 
| 88 | 
            -
            Unit.define("steradian") do |unit|
         | 
| 88 | 
            +
            RubyUnits::Unit.define("steradian") do |unit|
         | 
| 89 89 | 
             
              unit.scalar    = 1
         | 
| 90 90 | 
             
              unit.numerator = %w{<steradian>}
         | 
| 91 91 | 
             
              unit.aliases   = %w{sr steradian steradians}
         | 
| 92 92 | 
             
              unit.kind      = :solid_angle
         | 
| 93 93 | 
             
            end
         | 
| 94 94 |  | 
| 95 | 
            -
            Unit.define("decibel") do |unit|
         | 
| 95 | 
            +
            RubyUnits::Unit.define("decibel") do |unit|
         | 
| 96 96 | 
             
              unit.scalar    = 1
         | 
| 97 97 | 
             
              unit.numerator = %w{<decibel>}
         | 
| 98 98 | 
             
              unit.aliases   = %w{dB decibel decibels}
         | 
| @@ -31,10 +31,10 @@ | |
| 31 31 | 
             
              'zepto'  => [%w{z Zepto zepto},     Rational(1,1e21)],
         | 
| 32 32 | 
             
              'yocto'  => [%w{y Yocto yocto},     Rational(1,1e24)]
         | 
| 33 33 | 
             
            }.each do |name, definition|
         | 
| 34 | 
            -
              Unit.define(name) do |unit|
         | 
| 34 | 
            +
              RubyUnits::Unit.define(name) do |unit|
         | 
| 35 35 | 
             
                aliases, scalar = definition
         | 
| 36 36 | 
             
                unit.aliases    = aliases
         | 
| 37 37 | 
             
                unit.scalar     = scalar
         | 
| 38 38 | 
             
                unit.kind       = :prefix
         | 
| 39 39 | 
             
              end
         | 
| 40 | 
            -
            end
         | 
| 40 | 
            +
            end
         | 
| @@ -1,705 +1,705 @@ | |
| 1 1 | 
             
            # length units
         | 
| 2 2 |  | 
| 3 | 
            -
            Unit.define('inch') do |inch|
         | 
| 4 | 
            -
              inch.definition = Unit('254/10000 meter')
         | 
| 3 | 
            +
            RubyUnits::Unit.define('inch') do |inch|
         | 
| 4 | 
            +
              inch.definition = RubyUnits::Unit.new('254/10000 meter')
         | 
| 5 5 | 
             
              inch.aliases    = %w{in inch inches "}
         | 
| 6 6 | 
             
            end
         | 
| 7 7 |  | 
| 8 | 
            -
            Unit.define('foot') do |foot|
         | 
| 9 | 
            -
              foot.definition = Unit('12 inches')
         | 
| 8 | 
            +
            RubyUnits::Unit.define('foot') do |foot|
         | 
| 9 | 
            +
              foot.definition = RubyUnits::Unit.new('12 inches')
         | 
| 10 10 | 
             
              foot.aliases    = %w{ft foot feet '}
         | 
| 11 11 | 
             
            end
         | 
| 12 12 |  | 
| 13 | 
            -
            Unit.define('survey-foot') do |sft|
         | 
| 14 | 
            -
              sft.definition = Unit('1200/3937 meter')
         | 
| 13 | 
            +
            RubyUnits::Unit.define('survey-foot') do |sft|
         | 
| 14 | 
            +
              sft.definition = RubyUnits::Unit.new('1200/3937 meter')
         | 
| 15 15 | 
             
              sft.aliases    = %w{sft sfoot sfeet}
         | 
| 16 16 | 
             
            end
         | 
| 17 17 |  | 
| 18 | 
            -
            Unit.define('yard') do |yard|
         | 
| 19 | 
            -
              yard.definition = Unit('3 ft')
         | 
| 18 | 
            +
            RubyUnits::Unit.define('yard') do |yard|
         | 
| 19 | 
            +
              yard.definition = RubyUnits::Unit.new('3 ft')
         | 
| 20 20 | 
             
              yard.aliases    = %w{yd yard yards}
         | 
| 21 21 | 
             
            end
         | 
| 22 22 |  | 
| 23 | 
            -
            Unit.define('mile') do |mile|
         | 
| 24 | 
            -
              mile.definition = Unit('5280 ft')
         | 
| 23 | 
            +
            RubyUnits::Unit.define('mile') do |mile|
         | 
| 24 | 
            +
              mile.definition = RubyUnits::Unit.new('5280 ft')
         | 
| 25 25 | 
             
              mile.aliases    = %w{mi mile miles}
         | 
| 26 26 | 
             
            end
         | 
| 27 27 |  | 
| 28 | 
            -
            Unit.define('naut-mile') do |naut|
         | 
| 29 | 
            -
              naut.definition = Unit('1852 m')
         | 
| 28 | 
            +
            RubyUnits::Unit.define('naut-mile') do |naut|
         | 
| 29 | 
            +
              naut.definition = RubyUnits::Unit.new('1852 m')
         | 
| 30 30 | 
             
              naut.aliases    = %w{nmi M NM}
         | 
| 31 31 | 
             
            end
         | 
| 32 32 |  | 
| 33 33 | 
             
            # on land
         | 
| 34 | 
            -
            Unit.define('league') do |league|
         | 
| 35 | 
            -
              league.definition = Unit('3 miles')
         | 
| 34 | 
            +
            RubyUnits::Unit.define('league') do |league|
         | 
| 35 | 
            +
              league.definition = RubyUnits::Unit.new('3 miles')
         | 
| 36 36 | 
             
              league.aliases    = %w{league leagues}
         | 
| 37 37 | 
             
            end
         | 
| 38 38 |  | 
| 39 39 | 
             
            # at sea
         | 
| 40 | 
            -
            Unit.define('naut-league') do |naut_league|
         | 
| 41 | 
            -
              naut_league.definition = Unit('3 nmi')
         | 
| 40 | 
            +
            RubyUnits::Unit.define('naut-league') do |naut_league|
         | 
| 41 | 
            +
              naut_league.definition = RubyUnits::Unit.new('3 nmi')
         | 
| 42 42 | 
             
              naut_league.aliases    = %w{nleague nleagues}
         | 
| 43 43 | 
             
            end
         | 
| 44 44 |  | 
| 45 | 
            -
            Unit.define('furlong') do |furlong|
         | 
| 46 | 
            -
              furlong.definition = Unit('1/8 mile')
         | 
| 45 | 
            +
            RubyUnits::Unit.define('furlong') do |furlong|
         | 
| 46 | 
            +
              furlong.definition = RubyUnits::Unit.new('1/8 mile')
         | 
| 47 47 | 
             
              furlong.aliases    = %w{fur furlong furlongs}
         | 
| 48 48 | 
             
            end
         | 
| 49 49 |  | 
| 50 | 
            -
            Unit.define('rod') do |rod|
         | 
| 51 | 
            -
              rod.definition  = Unit('33/2 feet')
         | 
| 50 | 
            +
            RubyUnits::Unit.define('rod') do |rod|
         | 
| 51 | 
            +
              rod.definition  = RubyUnits::Unit.new('33/2 feet')
         | 
| 52 52 | 
             
              rod.aliases     = %w{rd rod rods}
         | 
| 53 53 | 
             
            end
         | 
| 54 54 |  | 
| 55 | 
            -
            Unit.define('fathom') do |fathom|
         | 
| 56 | 
            -
              fathom.definition = Unit('6 ft')
         | 
| 55 | 
            +
            RubyUnits::Unit.define('fathom') do |fathom|
         | 
| 56 | 
            +
              fathom.definition = RubyUnits::Unit.new('6 ft')
         | 
| 57 57 | 
             
              fathom.aliases    = %w{fathom fathoms}
         | 
| 58 58 | 
             
            end
         | 
| 59 59 |  | 
| 60 | 
            -
            Unit.define('mil') do |mil|
         | 
| 61 | 
            -
              mil.definition = Unit('1/1000 inch')
         | 
| 60 | 
            +
            RubyUnits::Unit.define('mil') do |mil|
         | 
| 61 | 
            +
              mil.definition = RubyUnits::Unit.new('1/1000 inch')
         | 
| 62 62 | 
             
              mil.aliases    = %w{mil mils}
         | 
| 63 63 | 
             
            end
         | 
| 64 64 |  | 
| 65 | 
            -
            Unit.define('angstrom') do |ang|
         | 
| 66 | 
            -
              ang.definition = Unit('1/10 nm')
         | 
| 65 | 
            +
            RubyUnits::Unit.define('angstrom') do |ang|
         | 
| 66 | 
            +
              ang.definition = RubyUnits::Unit.new('1/10 nm')
         | 
| 67 67 | 
             
              ang.aliases    = %w{ang angstrom angstroms}
         | 
| 68 68 | 
             
            end
         | 
| 69 69 |  | 
| 70 70 | 
             
            # typesetting
         | 
| 71 71 |  | 
| 72 | 
            -
            Unit.define('point') do |point|
         | 
| 73 | 
            -
              point.definition = Unit('1/72 ft')
         | 
| 72 | 
            +
            RubyUnits::Unit.define('point') do |point|
         | 
| 73 | 
            +
              point.definition = RubyUnits::Unit.new('1/72 ft')
         | 
| 74 74 | 
             
              point.aliases    = %w{point points}
         | 
| 75 75 | 
             
            end
         | 
| 76 76 |  | 
| 77 | 
            -
            Unit.define('pica') do |pica|
         | 
| 78 | 
            -
              pica.definition = Unit('12 point')
         | 
| 77 | 
            +
            RubyUnits::Unit.define('pica') do |pica|
         | 
| 78 | 
            +
              pica.definition = RubyUnits::Unit.new('12 point')
         | 
| 79 79 | 
             
              pica.aliases    = %w{P pica picas}
         | 
| 80 80 | 
             
            end
         | 
| 81 81 |  | 
| 82 | 
            -
            Unit.define('dot') do |dot|
         | 
| 83 | 
            -
              dot.definition  = Unit('1 each')
         | 
| 82 | 
            +
            RubyUnits::Unit.define('dot') do |dot|
         | 
| 83 | 
            +
              dot.definition  = RubyUnits::Unit.new('1 each')
         | 
| 84 84 | 
             
              dot.aliases     = %w{dot dots}
         | 
| 85 85 | 
             
              dot.kind        = :counting
         | 
| 86 86 | 
             
            end
         | 
| 87 87 |  | 
| 88 | 
            -
            Unit.define('pixel') do |pixel|
         | 
| 89 | 
            -
              pixel.definition  = Unit('1 each')
         | 
| 88 | 
            +
            RubyUnits::Unit.define('pixel') do |pixel|
         | 
| 89 | 
            +
              pixel.definition  = RubyUnits::Unit.new('1 each')
         | 
| 90 90 | 
             
              pixel.aliases     = %w{px pixel pixels}
         | 
| 91 91 | 
             
              pixel.kind        = :counting
         | 
| 92 92 | 
             
            end
         | 
| 93 93 |  | 
| 94 | 
            -
            Unit.define('ppi') do |ppi|
         | 
| 95 | 
            -
              ppi.definition  = Unit('1 pixel/inch')
         | 
| 94 | 
            +
            RubyUnits::Unit.define('ppi') do |ppi|
         | 
| 95 | 
            +
              ppi.definition  = RubyUnits::Unit.new('1 pixel/inch')
         | 
| 96 96 | 
             
            end
         | 
| 97 97 |  | 
| 98 | 
            -
            Unit.define('dpi') do |dpi|
         | 
| 99 | 
            -
              dpi.definition  = Unit('1 dot/inch')
         | 
| 98 | 
            +
            RubyUnits::Unit.define('dpi') do |dpi|
         | 
| 99 | 
            +
              dpi.definition  = RubyUnits::Unit.new('1 dot/inch')
         | 
| 100 100 | 
             
            end
         | 
| 101 101 |  | 
| 102 102 | 
             
            # Mass
         | 
| 103 103 |  | 
| 104 | 
            -
            avagadro_constant = Unit('6.02214129e23 1/mol')
         | 
| 104 | 
            +
            avagadro_constant = RubyUnits::Unit.new('6.02214129e23 1/mol')
         | 
| 105 105 |  | 
| 106 | 
            -
            Unit.define('AMU') do |amu|
         | 
| 107 | 
            -
              amu.definition = Unit('12 kg/mol') / (12 * avagadro_constant)
         | 
| 106 | 
            +
            RubyUnits::Unit.define('AMU') do |amu|
         | 
| 107 | 
            +
              amu.definition = RubyUnits::Unit.new('12 kg/mol') / (12 * avagadro_constant)
         | 
| 108 108 | 
             
              amu.aliases    = %w{u AMU amu}
         | 
| 109 109 | 
             
            end
         | 
| 110 110 |  | 
| 111 | 
            -
            Unit.define('dalton') do |dalton|
         | 
| 112 | 
            -
              dalton.definition = Unit('1 amu')
         | 
| 111 | 
            +
            RubyUnits::Unit.define('dalton') do |dalton|
         | 
| 112 | 
            +
              dalton.definition = RubyUnits::Unit.new('1 amu')
         | 
| 113 113 | 
             
              dalton.aliases    = %w{Da dalton daltons}
         | 
| 114 114 | 
             
            end
         | 
| 115 115 |  | 
| 116 | 
            -
            standard_gravitation = Unit('9.80665 m/s^2')
         | 
| 116 | 
            +
            standard_gravitation = RubyUnits::Unit.new('9.80665 m/s^2')
         | 
| 117 117 |  | 
| 118 | 
            -
            Unit.define('metric-ton') do |mton|
         | 
| 119 | 
            -
              mton.definition = Unit('1000 kg')
         | 
| 118 | 
            +
            RubyUnits::Unit.define('metric-ton') do |mton|
         | 
| 119 | 
            +
              mton.definition = RubyUnits::Unit.new('1000 kg')
         | 
| 120 120 | 
             
              mton.aliases    = %w{tonne}
         | 
| 121 121 | 
             
            end
         | 
| 122 122 |  | 
| 123 123 | 
             
            # defined as a rational number to preserve accuracy and minimize round-off errors during
         | 
| 124 124 | 
             
            # calculations
         | 
| 125 | 
            -
            Unit.define('pound') do |pound|
         | 
| 126 | 
            -
              pound.definition = Unit(Rational(45359237,1e8), 'kg')
         | 
| 125 | 
            +
            RubyUnits::Unit.define('pound') do |pound|
         | 
| 126 | 
            +
              pound.definition = RubyUnits::Unit.new(Rational(45359237,1e8), 'kg')
         | 
| 127 127 | 
             
              pound.aliases    = %w{lbs lb lbm pound-mass pound pounds #}
         | 
| 128 128 | 
             
            end
         | 
| 129 129 |  | 
| 130 | 
            -
            Unit.define('ounce') do |ounce|
         | 
| 131 | 
            -
              ounce.definition = Unit('1/16 lbs')
         | 
| 130 | 
            +
            RubyUnits::Unit.define('ounce') do |ounce|
         | 
| 131 | 
            +
              ounce.definition = RubyUnits::Unit.new('1/16 lbs')
         | 
| 132 132 | 
             
              ounce.aliases    = %w{oz ounce ounces}
         | 
| 133 133 | 
             
            end
         | 
| 134 134 |  | 
| 135 | 
            -
            Unit.define('gram') do |gram|
         | 
| 136 | 
            -
              gram.definition = Unit('1/1000 kg')
         | 
| 135 | 
            +
            RubyUnits::Unit.define('gram') do |gram|
         | 
| 136 | 
            +
              gram.definition = RubyUnits::Unit.new('1/1000 kg')
         | 
| 137 137 | 
             
              gram.aliases    = %w{g gram grams gramme grammes}
         | 
| 138 138 | 
             
            end
         | 
| 139 139 |  | 
| 140 | 
            -
            Unit.define('short-ton') do |ton|
         | 
| 141 | 
            -
              ton.definition = Unit('2000 lbs')
         | 
| 140 | 
            +
            RubyUnits::Unit.define('short-ton') do |ton|
         | 
| 141 | 
            +
              ton.definition = RubyUnits::Unit.new('2000 lbs')
         | 
| 142 142 | 
             
              ton.aliases    = %w{ton tn}
         | 
| 143 143 | 
             
            end
         | 
| 144 144 |  | 
| 145 | 
            -
            Unit.define('carat') do |carat|
         | 
| 146 | 
            -
              carat.definition = Unit('1/5000 kg')
         | 
| 145 | 
            +
            RubyUnits::Unit.define('carat') do |carat|
         | 
| 146 | 
            +
              carat.definition = RubyUnits::Unit.new('1/5000 kg')
         | 
| 147 147 | 
             
              carat.aliases    = %w{ct carat carats}
         | 
| 148 148 | 
             
            end
         | 
| 149 149 |  | 
| 150 150 | 
             
            # time
         | 
| 151 151 |  | 
| 152 | 
            -
            Unit.define('minute') do |min|
         | 
| 153 | 
            -
              min.definition = Unit('60 seconds')
         | 
| 152 | 
            +
            RubyUnits::Unit.define('minute') do |min|
         | 
| 153 | 
            +
              min.definition = RubyUnits::Unit.new('60 seconds')
         | 
| 154 154 | 
             
              min.aliases    = %w{min minute minutes}
         | 
| 155 155 | 
             
            end
         | 
| 156 156 |  | 
| 157 | 
            -
            Unit.define('hour') do |hour|
         | 
| 158 | 
            -
              hour.definition = Unit('60 minutes')
         | 
| 157 | 
            +
            RubyUnits::Unit.define('hour') do |hour|
         | 
| 158 | 
            +
              hour.definition = RubyUnits::Unit.new('60 minutes')
         | 
| 159 159 | 
             
              hour.aliases    = %w{h hr hrs hour hours}
         | 
| 160 160 | 
             
            end
         | 
| 161 161 |  | 
| 162 | 
            -
            Unit.define('day') do |day|
         | 
| 163 | 
            -
              day.definition  = Unit('24 hours')
         | 
| 162 | 
            +
            RubyUnits::Unit.define('day') do |day|
         | 
| 163 | 
            +
              day.definition  = RubyUnits::Unit.new('24 hours')
         | 
| 164 164 | 
             
              day.aliases     = %w{d day days}
         | 
| 165 165 | 
             
            end
         | 
| 166 166 |  | 
| 167 | 
            -
            Unit.define('week') do |week|
         | 
| 168 | 
            -
              week.definition   = Unit('7 days')
         | 
| 167 | 
            +
            RubyUnits::Unit.define('week') do |week|
         | 
| 168 | 
            +
              week.definition   = RubyUnits::Unit.new('7 days')
         | 
| 169 169 | 
             
              week.aliases      = %w{wk week weeks}
         | 
| 170 170 | 
             
            end
         | 
| 171 171 |  | 
| 172 | 
            -
            Unit.define('fortnight') do |fortnight|
         | 
| 173 | 
            -
              fortnight.definition  = Unit('2 weeks')
         | 
| 172 | 
            +
            RubyUnits::Unit.define('fortnight') do |fortnight|
         | 
| 173 | 
            +
              fortnight.definition  = RubyUnits::Unit.new('2 weeks')
         | 
| 174 174 | 
             
              fortnight.aliases     = %w{fortnight fortnights}
         | 
| 175 175 | 
             
            end
         | 
| 176 176 |  | 
| 177 | 
            -
            Unit.define('year') do |year|
         | 
| 178 | 
            -
              year.definition = Unit('31556926 seconds') # works out to 365.24219907407405 days
         | 
| 177 | 
            +
            RubyUnits::Unit.define('year') do |year|
         | 
| 178 | 
            +
              year.definition = RubyUnits::Unit.new('31556926 seconds') # works out to 365.24219907407405 days
         | 
| 179 179 | 
             
              year.aliases    = %w{y yr year years annum}
         | 
| 180 180 | 
             
            end
         | 
| 181 181 |  | 
| 182 | 
            -
            Unit.define('decade') do |decade|
         | 
| 183 | 
            -
              decade.definition = Unit('10 years')
         | 
| 182 | 
            +
            RubyUnits::Unit.define('decade') do |decade|
         | 
| 183 | 
            +
              decade.definition = RubyUnits::Unit.new('10 years')
         | 
| 184 184 | 
             
              decade.aliases    = %w{decade decades}
         | 
| 185 185 | 
             
            end
         | 
| 186 186 |  | 
| 187 | 
            -
            Unit.define('century') do |century|
         | 
| 188 | 
            -
              century.definition  = Unit('100 years')
         | 
| 187 | 
            +
            RubyUnits::Unit.define('century') do |century|
         | 
| 188 | 
            +
              century.definition  = RubyUnits::Unit.new('100 years')
         | 
| 189 189 | 
             
              century.aliases     = %w{century centuries}
         | 
| 190 190 | 
             
            end
         | 
| 191 191 |  | 
| 192 192 | 
             
            # area
         | 
| 193 193 |  | 
| 194 | 
            -
            Unit.define('hectare') do |hectare|
         | 
| 195 | 
            -
              hectare.definition = Unit('10000 m^2')
         | 
| 194 | 
            +
            RubyUnits::Unit.define('hectare') do |hectare|
         | 
| 195 | 
            +
              hectare.definition = RubyUnits::Unit.new('10000 m^2')
         | 
| 196 196 | 
             
            end
         | 
| 197 197 |  | 
| 198 | 
            -
            Unit.define('acre') do |acre|
         | 
| 199 | 
            -
              acre.definition = Unit('1 mi')**2 / 640
         | 
| 198 | 
            +
            RubyUnits::Unit.define('acre') do |acre|
         | 
| 199 | 
            +
              acre.definition = RubyUnits::Unit.new('1 mi')**2 / 640
         | 
| 200 200 | 
             
              acre.aliases    = %w{acre acres}
         | 
| 201 201 | 
             
            end
         | 
| 202 202 |  | 
| 203 | 
            -
            Unit.define('sqft') do |sqft|
         | 
| 204 | 
            -
              sqft.definition = Unit('1 ft^2')
         | 
| 203 | 
            +
            RubyUnits::Unit.define('sqft') do |sqft|
         | 
| 204 | 
            +
              sqft.definition = RubyUnits::Unit.new('1 ft^2')
         | 
| 205 205 | 
             
            end
         | 
| 206 206 |  | 
| 207 | 
            -
            Unit.define('sqin') do |sqin|
         | 
| 208 | 
            -
              sqin.definition = Unit('1 in^2')
         | 
| 207 | 
            +
            RubyUnits::Unit.define('sqin') do |sqin|
         | 
| 208 | 
            +
              sqin.definition = RubyUnits::Unit.new('1 in^2')
         | 
| 209 209 | 
             
            end
         | 
| 210 210 |  | 
| 211 211 | 
             
            # volume
         | 
| 212 212 |  | 
| 213 | 
            -
            Unit.define('liter') do |liter|
         | 
| 214 | 
            -
              liter.definition = Unit('1/1000 m^3')
         | 
| 213 | 
            +
            RubyUnits::Unit.define('liter') do |liter|
         | 
| 214 | 
            +
              liter.definition = RubyUnits::Unit.new('1/1000 m^3')
         | 
| 215 215 | 
             
              liter.aliases    = %w{l L liter liters litre litres}
         | 
| 216 216 | 
             
            end
         | 
| 217 217 |  | 
| 218 | 
            -
            Unit.define('gallon') do |gallon|
         | 
| 219 | 
            -
              gallon.definition = Unit('231 in^3')
         | 
| 218 | 
            +
            RubyUnits::Unit.define('gallon') do |gallon|
         | 
| 219 | 
            +
              gallon.definition = RubyUnits::Unit.new('231 in^3')
         | 
| 220 220 | 
             
              gallon.aliases    = %w{gal gallon gallons}
         | 
| 221 221 | 
             
            end
         | 
| 222 222 |  | 
| 223 | 
            -
            Unit.define('quart') do |quart|
         | 
| 224 | 
            -
              quart.definition  = Unit('1/4 gal')
         | 
| 223 | 
            +
            RubyUnits::Unit.define('quart') do |quart|
         | 
| 224 | 
            +
              quart.definition  = RubyUnits::Unit.new('1/4 gal')
         | 
| 225 225 | 
             
              quart.aliases     = %w{qt quart quarts}
         | 
| 226 226 | 
             
            end
         | 
| 227 227 |  | 
| 228 | 
            -
            Unit.define('pint') do |pint|
         | 
| 229 | 
            -
              pint.definition = Unit('1/8 gal')
         | 
| 228 | 
            +
            RubyUnits::Unit.define('pint') do |pint|
         | 
| 229 | 
            +
              pint.definition = RubyUnits::Unit.new('1/8 gal')
         | 
| 230 230 | 
             
              pint.aliases    = %w{pt pint pints}
         | 
| 231 231 | 
             
            end
         | 
| 232 232 |  | 
| 233 | 
            -
            Unit.define('cup') do |cup|
         | 
| 234 | 
            -
              cup.definition = Unit('1/16 gal')
         | 
| 233 | 
            +
            RubyUnits::Unit.define('cup') do |cup|
         | 
| 234 | 
            +
              cup.definition = RubyUnits::Unit.new('1/16 gal')
         | 
| 235 235 | 
             
              cup.aliases    = %w{cu cup cups}
         | 
| 236 236 | 
             
            end
         | 
| 237 237 |  | 
| 238 | 
            -
            Unit.define('fluid-ounce') do |floz|
         | 
| 239 | 
            -
              floz.definition = Unit('1/128 gal')
         | 
| 238 | 
            +
            RubyUnits::Unit.define('fluid-ounce') do |floz|
         | 
| 239 | 
            +
              floz.definition = RubyUnits::Unit.new('1/128 gal')
         | 
| 240 240 | 
             
              floz.aliases    = %w{floz fluid-ounce fluid-ounces}
         | 
| 241 241 | 
             
            end
         | 
| 242 242 |  | 
| 243 | 
            -
            Unit.define('tablespoon') do |tbsp|
         | 
| 244 | 
            -
              tbsp.definition = Unit('1/2 floz')
         | 
| 243 | 
            +
            RubyUnits::Unit.define('tablespoon') do |tbsp|
         | 
| 244 | 
            +
              tbsp.definition = RubyUnits::Unit.new('1/2 floz')
         | 
| 245 245 | 
             
              tbsp.aliases    = %w{tbs tbsp tablespoon tablespoons}
         | 
| 246 246 | 
             
            end
         | 
| 247 247 |  | 
| 248 | 
            -
            Unit.define('teaspoon') do |tsp|
         | 
| 249 | 
            -
              tsp.definition = Unit('1/3 tablespoon')
         | 
| 248 | 
            +
            RubyUnits::Unit.define('teaspoon') do |tsp|
         | 
| 249 | 
            +
              tsp.definition = RubyUnits::Unit.new('1/3 tablespoon')
         | 
| 250 250 | 
             
              tsp.aliases    = %w{tsp teaspoon teaspoons}
         | 
| 251 251 | 
             
            end
         | 
| 252 252 |  | 
| 253 253 | 
             
            # volumetric flow
         | 
| 254 254 |  | 
| 255 | 
            -
            Unit.define('cfm') do |cfm|
         | 
| 256 | 
            -
              cfm.definition = Unit('1 ft^3/minute')
         | 
| 255 | 
            +
            RubyUnits::Unit.define('cfm') do |cfm|
         | 
| 256 | 
            +
              cfm.definition = RubyUnits::Unit.new('1 ft^3/minute')
         | 
| 257 257 | 
             
              cfm.aliases    = %w{cfm CFM CFPM}
         | 
| 258 258 | 
             
            end
         | 
| 259 259 |  | 
| 260 260 | 
             
            # speed
         | 
| 261 261 |  | 
| 262 | 
            -
            Unit.define('kph') do |kph|
         | 
| 263 | 
            -
              kph.definition  = Unit('1 kilometer/hour')
         | 
| 262 | 
            +
            RubyUnits::Unit.define('kph') do |kph|
         | 
| 263 | 
            +
              kph.definition  = RubyUnits::Unit.new('1 kilometer/hour')
         | 
| 264 264 | 
             
            end
         | 
| 265 265 |  | 
| 266 | 
            -
            Unit.define('mph') do |mph|
         | 
| 267 | 
            -
              mph.definition  = Unit('1 mile/hour')
         | 
| 266 | 
            +
            RubyUnits::Unit.define('mph') do |mph|
         | 
| 267 | 
            +
              mph.definition  = RubyUnits::Unit.new('1 mile/hour')
         | 
| 268 268 | 
             
            end
         | 
| 269 269 |  | 
| 270 | 
            -
            Unit.define('fps') do |fps|
         | 
| 271 | 
            -
              fps.definition  = Unit('1 foot/second')
         | 
| 270 | 
            +
            RubyUnits::Unit.define('fps') do |fps|
         | 
| 271 | 
            +
              fps.definition  = RubyUnits::Unit.new('1 foot/second')
         | 
| 272 272 | 
             
            end
         | 
| 273 273 |  | 
| 274 | 
            -
            Unit.define('knot') do |knot|
         | 
| 275 | 
            -
              knot.definition   = Unit('1 nmi/hour')
         | 
| 274 | 
            +
            RubyUnits::Unit.define('knot') do |knot|
         | 
| 275 | 
            +
              knot.definition   = RubyUnits::Unit.new('1 nmi/hour')
         | 
| 276 276 | 
             
              knot.aliases      = %w{kt kn kts knot knots}
         | 
| 277 277 | 
             
            end
         | 
| 278 278 |  | 
| 279 | 
            -
            Unit.define('gee') do |gee|
         | 
| 279 | 
            +
            RubyUnits::Unit.define('gee') do |gee|
         | 
| 280 280 | 
             
              # approximated as a rational number to minimize round-off errors
         | 
| 281 | 
            -
              gee.definition    = Unit(Rational(196133,20000), 'm/s^2') # equivalent to 9.80665 m/s^2
         | 
| 281 | 
            +
              gee.definition    = RubyUnits::Unit.new(Rational(196133,20000), 'm/s^2') # equivalent to 9.80665 m/s^2
         | 
| 282 282 | 
             
              gee.aliases       = %w{gee standard-gravitation}
         | 
| 283 283 | 
             
            end
         | 
| 284 284 |  | 
| 285 285 | 
             
            # temperature differences
         | 
| 286 286 |  | 
| 287 | 
            -
            Unit.define('newton') do |newton|
         | 
| 288 | 
            -
              newton.definition = Unit('1 kg*m/s^2')
         | 
| 287 | 
            +
            RubyUnits::Unit.define('newton') do |newton|
         | 
| 288 | 
            +
              newton.definition = RubyUnits::Unit.new('1 kg*m/s^2')
         | 
| 289 289 | 
             
              newton.aliases    = %w{N newton newtons}
         | 
| 290 290 | 
             
            end
         | 
| 291 291 |  | 
| 292 | 
            -
            Unit.define('dyne') do |dyne|
         | 
| 293 | 
            -
              dyne.definition = Unit('1/100000 N')
         | 
| 292 | 
            +
            RubyUnits::Unit.define('dyne') do |dyne|
         | 
| 293 | 
            +
              dyne.definition = RubyUnits::Unit.new('1/100000 N')
         | 
| 294 294 | 
             
              dyne.aliases    = %w{dyn dyne}
         | 
| 295 295 | 
             
            end
         | 
| 296 296 |  | 
| 297 | 
            -
            Unit.define('pound-force') do |lbf|
         | 
| 298 | 
            -
              lbf.definition  = Unit('1 lb') * Unit('1 gee')
         | 
| 297 | 
            +
            RubyUnits::Unit.define('pound-force') do |lbf|
         | 
| 298 | 
            +
              lbf.definition  = RubyUnits::Unit.new('1 lb') * RubyUnits::Unit.new('1 gee')
         | 
| 299 299 | 
             
              lbf.aliases     = %w{lbf pound-force}
         | 
| 300 300 | 
             
            end
         | 
| 301 301 |  | 
| 302 | 
            -
            Unit.define('poundal') do |poundal|
         | 
| 303 | 
            -
              poundal.definition  = Unit('1 lb') * Unit('1 ft/s^2')
         | 
| 302 | 
            +
            RubyUnits::Unit.define('poundal') do |poundal|
         | 
| 303 | 
            +
              poundal.definition  = RubyUnits::Unit.new('1 lb') * RubyUnits::Unit.new('1 ft/s^2')
         | 
| 304 304 | 
             
              poundal.aliases     = %w{pdl poundal poundals}
         | 
| 305 305 | 
             
            end
         | 
| 306 306 |  | 
| 307 307 | 
             
            temp_convert_factor = Rational(2501999792983609,4503599627370496) # approximates 1/1.8
         | 
| 308 308 |  | 
| 309 | 
            -
            Unit.define('celsius') do |celsius|
         | 
| 310 | 
            -
              celsius.definition  = Unit('1 degK')
         | 
| 309 | 
            +
            RubyUnits::Unit.define('celsius') do |celsius|
         | 
| 310 | 
            +
              celsius.definition  = RubyUnits::Unit.new('1 degK')
         | 
| 311 311 | 
             
              celsius.aliases     = %w{degC celsius centigrade}
         | 
| 312 312 | 
             
            end
         | 
| 313 313 |  | 
| 314 | 
            -
            Unit.define('fahrenheit') do |fahrenheit|
         | 
| 315 | 
            -
              fahrenheit.definition = Unit(temp_convert_factor, 'degK')  
         | 
| 314 | 
            +
            RubyUnits::Unit.define('fahrenheit') do |fahrenheit|
         | 
| 315 | 
            +
              fahrenheit.definition = RubyUnits::Unit.new(temp_convert_factor, 'degK')  
         | 
| 316 316 | 
             
              fahrenheit.aliases    = %w{degF fahrenheit}
         | 
| 317 317 | 
             
            end
         | 
| 318 318 |  | 
| 319 | 
            -
            Unit.define('rankine') do |rankine|
         | 
| 320 | 
            -
              rankine.definition  = Unit('1 degF')
         | 
| 319 | 
            +
            RubyUnits::Unit.define('rankine') do |rankine|
         | 
| 320 | 
            +
              rankine.definition  = RubyUnits::Unit.new('1 degF')
         | 
| 321 321 | 
             
              rankine.aliases     = %w{degR rankine}
         | 
| 322 322 | 
             
            end
         | 
| 323 323 |  | 
| 324 | 
            -
            Unit.define('tempC') do |tempC|
         | 
| 325 | 
            -
              tempC.definition  = Unit('1 tempK')
         | 
| 324 | 
            +
            RubyUnits::Unit.define('tempC') do |tempC|
         | 
| 325 | 
            +
              tempC.definition  = RubyUnits::Unit.new('1 tempK')
         | 
| 326 326 | 
             
            end
         | 
| 327 327 |  | 
| 328 | 
            -
            Unit.define('tempF') do |tempF|
         | 
| 329 | 
            -
              tempF.definition  = Unit(temp_convert_factor, 'tempK')
         | 
| 328 | 
            +
            RubyUnits::Unit.define('tempF') do |tempF|
         | 
| 329 | 
            +
              tempF.definition  = RubyUnits::Unit.new(temp_convert_factor, 'tempK')
         | 
| 330 330 | 
             
            end
         | 
| 331 331 |  | 
| 332 | 
            -
            Unit.define('tempR') do |tempR|
         | 
| 333 | 
            -
              tempR.definition  = Unit('1 tempF')
         | 
| 332 | 
            +
            RubyUnits::Unit.define('tempR') do |tempR|
         | 
| 333 | 
            +
              tempR.definition  = RubyUnits::Unit.new('1 tempF')
         | 
| 334 334 | 
             
            end
         | 
| 335 335 |  | 
| 336 336 | 
             
            # astronomy
         | 
| 337 337 |  | 
| 338 | 
            -
            speed_of_light = Unit('299792458 m/s')
         | 
| 338 | 
            +
            speed_of_light = RubyUnits::Unit.new('299792458 m/s')
         | 
| 339 339 |  | 
| 340 | 
            -
            Unit.define('light-second') do |ls|
         | 
| 341 | 
            -
              ls.definition = Unit('1 s') * speed_of_light
         | 
| 340 | 
            +
            RubyUnits::Unit.define('light-second') do |ls|
         | 
| 341 | 
            +
              ls.definition = RubyUnits::Unit.new('1 s') * speed_of_light
         | 
| 342 342 | 
             
              ls.aliases    = %w{ls lsec light-second}
         | 
| 343 343 | 
             
            end
         | 
| 344 344 |  | 
| 345 | 
            -
            Unit.define('light-minute') do |lmin|
         | 
| 346 | 
            -
              lmin.definition = Unit('1 min') * speed_of_light
         | 
| 345 | 
            +
            RubyUnits::Unit.define('light-minute') do |lmin|
         | 
| 346 | 
            +
              lmin.definition = RubyUnits::Unit.new('1 min') * speed_of_light
         | 
| 347 347 | 
             
              lmin.aliases    = %w{lmin light-minute}
         | 
| 348 348 | 
             
            end
         | 
| 349 349 |  | 
| 350 | 
            -
            Unit.define('light-year') do |ly|
         | 
| 351 | 
            -
              ly.definition = Unit('1 y') * speed_of_light
         | 
| 350 | 
            +
            RubyUnits::Unit.define('light-year') do |ly|
         | 
| 351 | 
            +
              ly.definition = RubyUnits::Unit.new('1 y') * speed_of_light
         | 
| 352 352 | 
             
              ly.aliases    = %w{ly light-year}
         | 
| 353 353 | 
             
            end
         | 
| 354 354 |  | 
| 355 | 
            -
            Unit.define('parsec') do |parsec|
         | 
| 356 | 
            -
              parsec.definition = Unit('3.26163626 ly')
         | 
| 355 | 
            +
            RubyUnits::Unit.define('parsec') do |parsec|
         | 
| 356 | 
            +
              parsec.definition = RubyUnits::Unit.new('3.26163626 ly')
         | 
| 357 357 | 
             
              parsec.aliases    = %w{pc parsec parsecs}
         | 
| 358 358 | 
             
            end
         | 
| 359 359 |  | 
| 360 360 | 
             
            # once was '149597900000 m' but there appears to be a more accurate estimate according to wikipedia
         | 
| 361 361 | 
             
            # see http://en.wikipedia.org/wiki/Astronomical_unit
         | 
| 362 | 
            -
            Unit.define('AU') do |au|
         | 
| 363 | 
            -
              au.definition = Unit('149597870700 m')
         | 
| 362 | 
            +
            RubyUnits::Unit.define('AU') do |au|
         | 
| 363 | 
            +
              au.definition = RubyUnits::Unit.new('149597870700 m')
         | 
| 364 364 | 
             
              au.aliases    = %w{AU astronomical-unit}
         | 
| 365 365 | 
             
            end
         | 
| 366 366 |  | 
| 367 | 
            -
            Unit.define('redshift') do |red|
         | 
| 368 | 
            -
              red.definition = Unit('1.302773e26 m')
         | 
| 367 | 
            +
            RubyUnits::Unit.define('redshift') do |red|
         | 
| 368 | 
            +
              red.definition = RubyUnits::Unit.new('1.302773e26 m')
         | 
| 369 369 | 
             
              red.aliases    = %w{z red-shift}
         | 
| 370 370 | 
             
            end
         | 
| 371 371 |  | 
| 372 372 | 
             
            # mass
         | 
| 373 373 |  | 
| 374 | 
            -
            Unit.define('slug') do |slug|
         | 
| 375 | 
            -
              slug.definition = Unit('1 lbf*s^2/ft')
         | 
| 374 | 
            +
            RubyUnits::Unit.define('slug') do |slug|
         | 
| 375 | 
            +
              slug.definition = RubyUnits::Unit.new('1 lbf*s^2/ft')
         | 
| 376 376 | 
             
              slug.aliases    = %w{slug slugs} 
         | 
| 377 377 | 
             
            end
         | 
| 378 378 |  | 
| 379 379 | 
             
            # pressure
         | 
| 380 380 |  | 
| 381 | 
            -
            Unit.define('pascal') do |pascal|
         | 
| 382 | 
            -
              pascal.definition = Unit('1 kg/m*s^2')
         | 
| 381 | 
            +
            RubyUnits::Unit.define('pascal') do |pascal|
         | 
| 382 | 
            +
              pascal.definition = RubyUnits::Unit.new('1 kg/m*s^2')
         | 
| 383 383 | 
             
              pascal.aliases    = %w{Pa pascal pascals}
         | 
| 384 384 | 
             
            end
         | 
| 385 385 |  | 
| 386 | 
            -
            Unit.define('bar') do |bar|
         | 
| 387 | 
            -
              bar.definition  = Unit('100 kPa')
         | 
| 386 | 
            +
            RubyUnits::Unit.define('bar') do |bar|
         | 
| 387 | 
            +
              bar.definition  = RubyUnits::Unit.new('100 kPa')
         | 
| 388 388 | 
             
              bar.aliases     = %w{bar bars}
         | 
| 389 389 | 
             
            end
         | 
| 390 390 |  | 
| 391 | 
            -
            Unit.define('atm') do |atm|
         | 
| 392 | 
            -
              atm.definition  = Unit('101325 Pa')
         | 
| 391 | 
            +
            RubyUnits::Unit.define('atm') do |atm|
         | 
| 392 | 
            +
              atm.definition  = RubyUnits::Unit.new('101325 Pa')
         | 
| 393 393 | 
             
              atm.aliases     = %w{atm ATM atmosphere atmospheres}
         | 
| 394 394 | 
             
            end
         | 
| 395 395 |  | 
| 396 | 
            -
            Unit.define('mmHg') do |mmhg|
         | 
| 397 | 
            -
              density_of_mercury  = Unit('7653360911758079/562949953421312 g/cm^3') # 13.5951 g/cm^3 at 0 tempC
         | 
| 398 | 
            -
              mmhg.definition     = Unit('1 mm') * Unit('1 gee') * density_of_mercury
         | 
| 396 | 
            +
            RubyUnits::Unit.define('mmHg') do |mmhg|
         | 
| 397 | 
            +
              density_of_mercury  = RubyUnits::Unit.new('7653360911758079/562949953421312 g/cm^3') # 13.5951 g/cm^3 at 0 tempC
         | 
| 398 | 
            +
              mmhg.definition     = RubyUnits::Unit.new('1 mm') * RubyUnits::Unit.new('1 gee') * density_of_mercury
         | 
| 399 399 | 
             
            end
         | 
| 400 400 |  | 
| 401 | 
            -
            Unit.define('inHg') do |inhg|
         | 
| 402 | 
            -
              density_of_mercury = Unit('7653360911758079/562949953421312 g/cm^3') # 13.5951 g/cm^3 at 0 tempC
         | 
| 403 | 
            -
              inhg.definition    = Unit('1 in') * Unit('1 gee') * density_of_mercury
         | 
| 401 | 
            +
            RubyUnits::Unit.define('inHg') do |inhg|
         | 
| 402 | 
            +
              density_of_mercury = RubyUnits::Unit.new('7653360911758079/562949953421312 g/cm^3') # 13.5951 g/cm^3 at 0 tempC
         | 
| 403 | 
            +
              inhg.definition    = RubyUnits::Unit.new('1 in') * RubyUnits::Unit.new('1 gee') * density_of_mercury
         | 
| 404 404 | 
             
            end
         | 
| 405 405 |  | 
| 406 | 
            -
            Unit.define('torr') do |torr|
         | 
| 407 | 
            -
              torr.definition = Unit('1/760 atm')
         | 
| 406 | 
            +
            RubyUnits::Unit.define('torr') do |torr|
         | 
| 407 | 
            +
              torr.definition = RubyUnits::Unit.new('1/760 atm')
         | 
| 408 408 | 
             
              torr.aliases    = %w{Torr torr}
         | 
| 409 409 | 
             
            end
         | 
| 410 410 |  | 
| 411 | 
            -
            Unit.define('psi') do |psi|
         | 
| 412 | 
            -
              psi.definition  = Unit('1 lbf/in^2')
         | 
| 411 | 
            +
            RubyUnits::Unit.define('psi') do |psi|
         | 
| 412 | 
            +
              psi.definition  = RubyUnits::Unit.new('1 lbf/in^2')
         | 
| 413 413 | 
             
            end
         | 
| 414 414 |  | 
| 415 | 
            -
            Unit.define('cmh2o') do |cmh2o|
         | 
| 416 | 
            -
              density_of_water  = Unit('1 g/cm^3') # at 4 tempC
         | 
| 417 | 
            -
              cmh2o.definition  = Unit('1 cm') * Unit('1 gee') * density_of_water
         | 
| 415 | 
            +
            RubyUnits::Unit.define('cmh2o') do |cmh2o|
         | 
| 416 | 
            +
              density_of_water  = RubyUnits::Unit.new('1 g/cm^3') # at 4 tempC
         | 
| 417 | 
            +
              cmh2o.definition  = RubyUnits::Unit.new('1 cm') * RubyUnits::Unit.new('1 gee') * density_of_water
         | 
| 418 418 | 
             
              cmh2o.aliases     = %w{cmH2O cmh2o cmAq}
         | 
| 419 419 | 
             
            end
         | 
| 420 420 |  | 
| 421 | 
            -
            Unit.define('inh2o') do |inh2o|
         | 
| 422 | 
            -
              density_of_water  = Unit('1 g/cm^3') # at 4 tempC
         | 
| 423 | 
            -
              inh2o.definition  = Unit('1 in') * Unit('1 gee') * density_of_water
         | 
| 421 | 
            +
            RubyUnits::Unit.define('inh2o') do |inh2o|
         | 
| 422 | 
            +
              density_of_water  = RubyUnits::Unit.new('1 g/cm^3') # at 4 tempC
         | 
| 423 | 
            +
              inh2o.definition  = RubyUnits::Unit.new('1 in') * RubyUnits::Unit.new('1 gee') * density_of_water
         | 
| 424 424 | 
             
              inh2o.aliases     = %w{inH2O inh2o inAq}  
         | 
| 425 425 | 
             
            end
         | 
| 426 426 |  | 
| 427 427 | 
             
            #viscosity
         | 
| 428 428 |  | 
| 429 | 
            -
            Unit.define('poise') do |poise|
         | 
| 430 | 
            -
              poise.definition  = Unit('dPa*s')
         | 
| 429 | 
            +
            RubyUnits::Unit.define('poise') do |poise|
         | 
| 430 | 
            +
              poise.definition  = RubyUnits::Unit.new('dPa*s')
         | 
| 431 431 | 
             
              poise.aliases     = %w{P poise}
         | 
| 432 432 | 
             
            end
         | 
| 433 433 |  | 
| 434 | 
            -
            Unit.define('stokes') do |stokes|
         | 
| 435 | 
            -
              stokes.definition = Unit('1 cm^2/s')
         | 
| 434 | 
            +
            RubyUnits::Unit.define('stokes') do |stokes|
         | 
| 435 | 
            +
              stokes.definition = RubyUnits::Unit.new('1 cm^2/s')
         | 
| 436 436 | 
             
              stokes.aliases    = %w{St stokes}
         | 
| 437 437 | 
             
            end
         | 
| 438 438 |  | 
| 439 439 | 
             
            # #energy
         | 
| 440 440 |  | 
| 441 | 
            -
            Unit.define('joule') do |joule|
         | 
| 442 | 
            -
              joule.definition  = Unit('1 N*m')
         | 
| 441 | 
            +
            RubyUnits::Unit.define('joule') do |joule|
         | 
| 442 | 
            +
              joule.definition  = RubyUnits::Unit.new('1 N*m')
         | 
| 443 443 | 
             
              joule.aliases     = %w{J joule joules}
         | 
| 444 444 | 
             
            end
         | 
| 445 445 |  | 
| 446 | 
            -
            Unit.define('erg') do |erg|
         | 
| 447 | 
            -
              erg.definition  = Unit('1 g*cm^2/s^2')
         | 
| 446 | 
            +
            RubyUnits::Unit.define('erg') do |erg|
         | 
| 447 | 
            +
              erg.definition  = RubyUnits::Unit.new('1 g*cm^2/s^2')
         | 
| 448 448 | 
             
              erg.aliases     = %w{erg ergs}
         | 
| 449 449 | 
             
            end
         | 
| 450 450 |  | 
| 451 451 | 
             
            #power
         | 
| 452 452 |  | 
| 453 | 
            -
            Unit.define('watt') do |watt|
         | 
| 454 | 
            -
              watt.definition = Unit('1 N*m/s')
         | 
| 453 | 
            +
            RubyUnits::Unit.define('watt') do |watt|
         | 
| 454 | 
            +
              watt.definition = RubyUnits::Unit.new('1 N*m/s')
         | 
| 455 455 | 
             
              watt.aliases    = %w{W Watt watt watts}
         | 
| 456 456 | 
             
            end
         | 
| 457 457 |  | 
| 458 | 
            -
            Unit.define('horsepower') do |hp|
         | 
| 459 | 
            -
              hp.definition = Unit('33000 ft*lbf/min')
         | 
| 458 | 
            +
            RubyUnits::Unit.define('horsepower') do |hp|
         | 
| 459 | 
            +
              hp.definition = RubyUnits::Unit.new('33000 ft*lbf/min')
         | 
| 460 460 | 
             
              hp.aliases    = %w{hp horsepower}
         | 
| 461 461 | 
             
            end
         | 
| 462 462 |  | 
| 463 463 | 
             
            # energy
         | 
| 464 | 
            -
            Unit.define('btu') do |btu|
         | 
| 465 | 
            -
              btu.definition  = Unit('2320092679909671/2199023255552 J') # 1055.056 J  --- ISO standard
         | 
| 464 | 
            +
            RubyUnits::Unit.define('btu') do |btu|
         | 
| 465 | 
            +
              btu.definition  = RubyUnits::Unit.new('2320092679909671/2199023255552 J') # 1055.056 J  --- ISO standard
         | 
| 466 466 | 
             
              btu.aliases     = %w{Btu btu Btus btus}
         | 
| 467 467 | 
             
            end
         | 
| 468 468 |  | 
| 469 | 
            -
            Unit.define('therm') do |therm|
         | 
| 470 | 
            -
              therm.definition  = Unit('100 kBtu')
         | 
| 469 | 
            +
            RubyUnits::Unit.define('therm') do |therm|
         | 
| 470 | 
            +
              therm.definition  = RubyUnits::Unit.new('100 kBtu')
         | 
| 471 471 | 
             
              therm.aliases     = %w{thm therm therms Therm}
         | 
| 472 472 | 
             
            end
         | 
| 473 473 |  | 
| 474 474 | 
             
            # "small" calorie
         | 
| 475 | 
            -
            Unit.define('calorie') do |calorie|
         | 
| 476 | 
            -
              calorie.definition  = Unit('4.184 J')
         | 
| 475 | 
            +
            RubyUnits::Unit.define('calorie') do |calorie|
         | 
| 476 | 
            +
              calorie.definition  = RubyUnits::Unit.new('4.184 J')
         | 
| 477 477 | 
             
              calorie.aliases     = %w{cal calorie calories}
         | 
| 478 478 | 
             
            end
         | 
| 479 479 |  | 
| 480 480 | 
             
            # "big" calorie
         | 
| 481 | 
            -
            Unit.define('Calorie') do |calorie|
         | 
| 482 | 
            -
              calorie.definition  = Unit('1 kcal')
         | 
| 481 | 
            +
            RubyUnits::Unit.define('Calorie') do |calorie|
         | 
| 482 | 
            +
              calorie.definition  = RubyUnits::Unit.new('1 kcal')
         | 
| 483 483 | 
             
              calorie.aliases     = %w{Cal Calorie Calories}
         | 
| 484 484 | 
             
            end
         | 
| 485 485 |  | 
| 486 | 
            -
            Unit.define('molar') do |molar|
         | 
| 487 | 
            -
              molar.definition  = Unit('1 mole/l')
         | 
| 486 | 
            +
            RubyUnits::Unit.define('molar') do |molar|
         | 
| 487 | 
            +
              molar.definition  = RubyUnits::Unit.new('1 mole/l')
         | 
| 488 488 | 
             
              molar.aliases     = %w{M molar}
         | 
| 489 489 | 
             
            end
         | 
| 490 490 |  | 
| 491 491 | 
             
            # potential
         | 
| 492 | 
            -
            Unit.define('volt') do |volt|
         | 
| 493 | 
            -
              volt.definition = Unit('1 W/A')
         | 
| 492 | 
            +
            RubyUnits::Unit.define('volt') do |volt|
         | 
| 493 | 
            +
              volt.definition = RubyUnits::Unit.new('1 W/A')
         | 
| 494 494 | 
             
              volt.aliases    = %w{V volt volts}
         | 
| 495 495 | 
             
            end
         | 
| 496 496 |  | 
| 497 497 | 
             
            # capacitance
         | 
| 498 | 
            -
            Unit.define('farad') do |farad|
         | 
| 499 | 
            -
              farad.definition  = Unit('1 A*s/V')
         | 
| 498 | 
            +
            RubyUnits::Unit.define('farad') do |farad|
         | 
| 499 | 
            +
              farad.definition  = RubyUnits::Unit.new('1 A*s/V')
         | 
| 500 500 | 
             
              farad.aliases     = %w{F farad farads}
         | 
| 501 501 | 
             
            end
         | 
| 502 502 |  | 
| 503 503 | 
             
            # charge
         | 
| 504 | 
            -
            Unit.define('coulomb') do |coulomb|
         | 
| 505 | 
            -
              coulomb.definition  = Unit('1 A*s')
         | 
| 504 | 
            +
            RubyUnits::Unit.define('coulomb') do |coulomb|
         | 
| 505 | 
            +
              coulomb.definition  = RubyUnits::Unit.new('1 A*s')
         | 
| 506 506 | 
             
              coulomb.aliases     = %w{C coulomb coulombs}
         | 
| 507 507 | 
             
            end
         | 
| 508 508 |  | 
| 509 509 | 
             
            # conductance
         | 
| 510 | 
            -
            Unit.define('siemens') do |siemens|
         | 
| 511 | 
            -
              siemens.definition  = Unit('1 A/V')
         | 
| 510 | 
            +
            RubyUnits::Unit.define('siemens') do |siemens|
         | 
| 511 | 
            +
              siemens.definition  = RubyUnits::Unit.new('1 A/V')
         | 
| 512 512 | 
             
              siemens.aliases     = %w{S siemens}
         | 
| 513 513 | 
             
            end
         | 
| 514 514 |  | 
| 515 515 | 
             
            # inductance
         | 
| 516 | 
            -
            Unit.define('henry') do |henry|
         | 
| 517 | 
            -
              henry.definition  = Unit('1 J/A^2')
         | 
| 516 | 
            +
            RubyUnits::Unit.define('henry') do |henry|
         | 
| 517 | 
            +
              henry.definition  = RubyUnits::Unit.new('1 J/A^2')
         | 
| 518 518 | 
             
              henry.aliases     = %w{H henry henries}
         | 
| 519 519 | 
             
            end
         | 
| 520 520 |  | 
| 521 521 | 
             
            # resistance
         | 
| 522 | 
            -
            Unit.define('ohm') do |ohm|
         | 
| 523 | 
            -
              ohm.definition  = Unit('1 V/A')
         | 
| 522 | 
            +
            RubyUnits::Unit.define('ohm') do |ohm|
         | 
| 523 | 
            +
              ohm.definition  = RubyUnits::Unit.new('1 V/A')
         | 
| 524 524 | 
             
              ohm.aliases     = %w{Ohm ohm ohms}
         | 
| 525 525 | 
             
            end
         | 
| 526 526 |  | 
| 527 527 | 
             
            # magnetism 
         | 
| 528 528 |  | 
| 529 | 
            -
            Unit.define('weber') do |weber|
         | 
| 530 | 
            -
              weber.definition  = Unit('1 V*s')
         | 
| 529 | 
            +
            RubyUnits::Unit.define('weber') do |weber|
         | 
| 530 | 
            +
              weber.definition  = RubyUnits::Unit.new('1 V*s')
         | 
| 531 531 | 
             
              weber.aliases     = %w{Wb weber webers}
         | 
| 532 532 | 
             
            end
         | 
| 533 533 |  | 
| 534 | 
            -
            Unit.define('tesla') do |tesla|
         | 
| 535 | 
            -
              tesla.definition  = Unit('1 V*s/m^2')
         | 
| 534 | 
            +
            RubyUnits::Unit.define('tesla') do |tesla|
         | 
| 535 | 
            +
              tesla.definition  = RubyUnits::Unit.new('1 V*s/m^2')
         | 
| 536 536 | 
             
              tesla.aliases     = %w{T tesla teslas}
         | 
| 537 537 | 
             
            end
         | 
| 538 538 |  | 
| 539 | 
            -
            Unit.define('gauss') do |gauss|
         | 
| 540 | 
            -
              gauss.definition  = Unit('100 microT')
         | 
| 539 | 
            +
            RubyUnits::Unit.define('gauss') do |gauss|
         | 
| 540 | 
            +
              gauss.definition  = RubyUnits::Unit.new('100 microT')
         | 
| 541 541 | 
             
              gauss.aliases     = %w{G gauss}
         | 
| 542 542 | 
             
            end
         | 
| 543 543 |  | 
| 544 | 
            -
            Unit.define('maxwell') do |maxwell|
         | 
| 545 | 
            -
              maxwell.definition  = Unit('1 gauss*cm^2')
         | 
| 544 | 
            +
            RubyUnits::Unit.define('maxwell') do |maxwell|
         | 
| 545 | 
            +
              maxwell.definition  = RubyUnits::Unit.new('1 gauss*cm^2')
         | 
| 546 546 | 
             
              maxwell.aliases     = %w{Mx maxwell maxwells}
         | 
| 547 547 | 
             
            end
         | 
| 548 548 |  | 
| 549 | 
            -
            Unit.define('oersted') do |oersted|
         | 
| 550 | 
            -
              oersted.definition  = Unit(250.0/Math::PI, 'A/m')
         | 
| 549 | 
            +
            RubyUnits::Unit.define('oersted') do |oersted|
         | 
| 550 | 
            +
              oersted.definition  = RubyUnits::Unit.new(250.0/Math::PI, 'A/m')
         | 
| 551 551 | 
             
              oersted.aliases     = %w{Oe oersted oersteds}
         | 
| 552 552 | 
             
            end
         | 
| 553 553 |  | 
| 554 554 | 
             
            #activity
         | 
| 555 | 
            -
            Unit.define('katal') do |katal|
         | 
| 556 | 
            -
              katal.definition  = Unit('1 mole/sec')
         | 
| 555 | 
            +
            RubyUnits::Unit.define('katal') do |katal|
         | 
| 556 | 
            +
              katal.definition  = RubyUnits::Unit.new('1 mole/sec')
         | 
| 557 557 | 
             
              katal.aliases     = %w{kat katal}
         | 
| 558 558 | 
             
            end
         | 
| 559 559 |  | 
| 560 | 
            -
            Unit.define('unit') do |unit|
         | 
| 561 | 
            -
              unit.definition   = Unit('1/60 microkatal')
         | 
| 562 | 
            -
              unit.aliases      = %w{U  | 
| 560 | 
            +
            RubyUnits::Unit.define('unit') do |unit|
         | 
| 561 | 
            +
              unit.definition   = RubyUnits::Unit.new('1/60 microkatal')
         | 
| 562 | 
            +
              unit.aliases      = %w{U enzRubyUnits::Unit}
         | 
| 563 563 | 
             
            end
         | 
| 564 564 |  | 
| 565 565 | 
             
            #frequency
         | 
| 566 566 |  | 
| 567 | 
            -
            Unit.define('hertz') do |hz|
         | 
| 568 | 
            -
              hz.definition   = Unit('1 1/s')
         | 
| 567 | 
            +
            RubyUnits::Unit.define('hertz') do |hz|
         | 
| 568 | 
            +
              hz.definition   = RubyUnits::Unit.new('1 1/s')
         | 
| 569 569 | 
             
              hz.aliases      = %w{Hz hertz}
         | 
| 570 570 | 
             
            end
         | 
| 571 571 |  | 
| 572 572 | 
             
            #angle
         | 
| 573 | 
            -
            Unit.define('degree') do |deg|
         | 
| 574 | 
            -
              deg.definition    = Unit(Math::PI / 180.0, 'radian')
         | 
| 573 | 
            +
            RubyUnits::Unit.define('degree') do |deg|
         | 
| 574 | 
            +
              deg.definition    = RubyUnits::Unit.new(Math::PI / 180.0, 'radian')
         | 
| 575 575 | 
             
              deg.aliases       = %w{deg degree degrees}
         | 
| 576 576 | 
             
            end
         | 
| 577 577 |  | 
| 578 | 
            -
            Unit.define('grad') do |grad|
         | 
| 579 | 
            -
              grad.definition   = Unit(Math::PI / 200.0, 'radian')
         | 
| 578 | 
            +
            RubyUnits::Unit.define('grad') do |grad|
         | 
| 579 | 
            +
              grad.definition   = RubyUnits::Unit.new(Math::PI / 200.0, 'radian')
         | 
| 580 580 | 
             
              grad.aliases      = %w{grad gradian grads}
         | 
| 581 581 | 
             
            end
         | 
| 582 582 |  | 
| 583 583 | 
             
            #rotation
         | 
| 584 | 
            -
            Unit.define('rotation') do |rotation|
         | 
| 585 | 
            -
              rotation.definition = Unit(2.0*Math::PI, 'radian')
         | 
| 584 | 
            +
            RubyUnits::Unit.define('rotation') do |rotation|
         | 
| 585 | 
            +
              rotation.definition = RubyUnits::Unit.new(2.0*Math::PI, 'radian')
         | 
| 586 586 | 
             
            end
         | 
| 587 587 |  | 
| 588 | 
            -
            Unit.define('rpm') do |rpm|
         | 
| 589 | 
            -
              rpm.definition  = Unit('1 rotation/min')
         | 
| 588 | 
            +
            RubyUnits::Unit.define('rpm') do |rpm|
         | 
| 589 | 
            +
              rpm.definition  = RubyUnits::Unit.new('1 rotation/min')
         | 
| 590 590 | 
             
            end
         | 
| 591 591 |  | 
| 592 592 | 
             
            #memory
         | 
| 593 | 
            -
            Unit.define('bit') do |bit|
         | 
| 594 | 
            -
              bit.definition  = Unit('1/8 byte')
         | 
| 593 | 
            +
            RubyUnits::Unit.define('bit') do |bit|
         | 
| 594 | 
            +
              bit.definition  = RubyUnits::Unit.new('1/8 byte')
         | 
| 595 595 | 
             
              bit.aliases     = %w{b bit}
         | 
| 596 596 | 
             
            end
         | 
| 597 597 |  | 
| 598 598 | 
             
            #currency
         | 
| 599 | 
            -
            Unit.define('cents') do |cents|
         | 
| 600 | 
            -
              cents.definition  = Unit('1/100 dollar')
         | 
| 599 | 
            +
            RubyUnits::Unit.define('cents') do |cents|
         | 
| 600 | 
            +
              cents.definition  = RubyUnits::Unit.new('1/100 dollar')
         | 
| 601 601 | 
             
            end
         | 
| 602 602 |  | 
| 603 603 | 
             
            #luminosity
         | 
| 604 | 
            -
            Unit.define('lumen') do |lumen|
         | 
| 605 | 
            -
              lumen.definition  = Unit('1 cd*steradian')
         | 
| 604 | 
            +
            RubyUnits::Unit.define('lumen') do |lumen|
         | 
| 605 | 
            +
              lumen.definition  = RubyUnits::Unit.new('1 cd*steradian')
         | 
| 606 606 | 
             
              lumen.aliases     = %w{lm lumen}
         | 
| 607 607 | 
             
            end
         | 
| 608 608 |  | 
| 609 | 
            -
            Unit.define('lux') do |lux|
         | 
| 610 | 
            -
              lux.definition  = Unit('1 lumen/m^2')
         | 
| 609 | 
            +
            RubyUnits::Unit.define('lux') do |lux|
         | 
| 610 | 
            +
              lux.definition  = RubyUnits::Unit.new('1 lumen/m^2')
         | 
| 611 611 | 
             
            end
         | 
| 612 612 |  | 
| 613 613 | 
             
            #radiation
         | 
| 614 | 
            -
            Unit.define('gray') do |gray|
         | 
| 615 | 
            -
              gray.definition = Unit('1 J/kg')
         | 
| 614 | 
            +
            RubyUnits::Unit.define('gray') do |gray|
         | 
| 615 | 
            +
              gray.definition = RubyUnits::Unit.new('1 J/kg')
         | 
| 616 616 | 
             
              gray.aliases    = %w{Gy gray grays}
         | 
| 617 617 | 
             
            end
         | 
| 618 618 |  | 
| 619 | 
            -
            Unit.define('roentgen') do |roentgen|
         | 
| 620 | 
            -
              roentgen.definition = Unit('2.58e-4 C/kg')
         | 
| 619 | 
            +
            RubyUnits::Unit.define('roentgen') do |roentgen|
         | 
| 620 | 
            +
              roentgen.definition = RubyUnits::Unit.new('2.58e-4 C/kg')
         | 
| 621 621 | 
             
              roentgen.aliases    = %w{R roentgen}
         | 
| 622 622 | 
             
            end
         | 
| 623 623 |  | 
| 624 | 
            -
            Unit.define('sievert') do |sievert|
         | 
| 625 | 
            -
              sievert.definition  = Unit('1 J/kg')
         | 
| 624 | 
            +
            RubyUnits::Unit.define('sievert') do |sievert|
         | 
| 625 | 
            +
              sievert.definition  = RubyUnits::Unit.new('1 J/kg')
         | 
| 626 626 | 
             
              sievert.aliases     = %w{Sv sievert sieverts}
         | 
| 627 627 | 
             
            end
         | 
| 628 628 |  | 
| 629 | 
            -
            Unit.define('becquerel') do |becquerel|
         | 
| 630 | 
            -
              becquerel.definition  = Unit('1 1/s')
         | 
| 629 | 
            +
            RubyUnits::Unit.define('becquerel') do |becquerel|
         | 
| 630 | 
            +
              becquerel.definition  = RubyUnits::Unit.new('1 1/s')
         | 
| 631 631 | 
             
              becquerel.aliases     = %w{Bq becquerel becquerels}
         | 
| 632 632 | 
             
            end
         | 
| 633 633 |  | 
| 634 | 
            -
            Unit.define('curie') do |curie|
         | 
| 635 | 
            -
              curie.definition  = Unit('37 GBq')
         | 
| 634 | 
            +
            RubyUnits::Unit.define('curie') do |curie|
         | 
| 635 | 
            +
              curie.definition  = RubyUnits::Unit.new('37 GBq')
         | 
| 636 636 | 
             
              curie.aliases     = %w{Ci curie curies}
         | 
| 637 637 | 
             
            end
         | 
| 638 638 |  | 
| 639 | 
            -
            Unit.define('count') do |count|
         | 
| 640 | 
            -
              count.definition  = Unit('1 each')
         | 
| 639 | 
            +
            RubyUnits::Unit.define('count') do |count|
         | 
| 640 | 
            +
              count.definition  = RubyUnits::Unit.new('1 each')
         | 
| 641 641 | 
             
              count.kind        = :counting
         | 
| 642 642 | 
             
            end
         | 
| 643 643 |  | 
| 644 644 | 
             
            # rate
         | 
| 645 | 
            -
            Unit.define('cpm') do |cpm|
         | 
| 646 | 
            -
              cpm.definition  = Unit('1 count/min')
         | 
| 645 | 
            +
            RubyUnits::Unit.define('cpm') do |cpm|
         | 
| 646 | 
            +
              cpm.definition  = RubyUnits::Unit.new('1 count/min')
         | 
| 647 647 | 
             
            end
         | 
| 648 648 |  | 
| 649 | 
            -
            Unit.define('dpm') do |dpm|
         | 
| 650 | 
            -
              dpm.definition  = Unit('1 count/min')
         | 
| 649 | 
            +
            RubyUnits::Unit.define('dpm') do |dpm|
         | 
| 650 | 
            +
              dpm.definition  = RubyUnits::Unit.new('1 count/min')
         | 
| 651 651 | 
             
            end
         | 
| 652 652 |  | 
| 653 | 
            -
            Unit.define('bpm') do |bpm|
         | 
| 654 | 
            -
              bpm.definition  = Unit('1 count/min')
         | 
| 653 | 
            +
            RubyUnits::Unit.define('bpm') do |bpm|
         | 
| 654 | 
            +
              bpm.definition  = RubyUnits::Unit.new('1 count/min')
         | 
| 655 655 | 
             
            end
         | 
| 656 656 |  | 
| 657 657 | 
             
            # misc
         | 
| 658 | 
            -
            Unit.define('dozen') do |dozen|
         | 
| 659 | 
            -
              dozen.definition  = Unit('12 each')
         | 
| 658 | 
            +
            RubyUnits::Unit.define('dozen') do |dozen|
         | 
| 659 | 
            +
              dozen.definition  = RubyUnits::Unit.new('12 each')
         | 
| 660 660 | 
             
              dozen.aliases     = %w{doz dz dozen}
         | 
| 661 661 | 
             
              dozen.kind       = :counting
         | 
| 662 662 | 
             
            end
         | 
| 663 663 |  | 
| 664 | 
            -
            Unit.define('gross') do |gross|
         | 
| 665 | 
            -
              gross.definition  = Unit('12 dozen')
         | 
| 664 | 
            +
            RubyUnits::Unit.define('gross') do |gross|
         | 
| 665 | 
            +
              gross.definition  = RubyUnits::Unit.new('12 dozen')
         | 
| 666 666 | 
             
              gross.aliases     = %w{gr gross}
         | 
| 667 667 | 
             
              gross.kind       = :counting
         | 
| 668 668 | 
             
            end
         | 
| 669 669 |  | 
| 670 | 
            -
            Unit.define('cell') do |cell|
         | 
| 671 | 
            -
              cell.definition   = Unit('1 each')
         | 
| 670 | 
            +
            RubyUnits::Unit.define('cell') do |cell|
         | 
| 671 | 
            +
              cell.definition   = RubyUnits::Unit.new('1 each')
         | 
| 672 672 | 
             
              cell.aliases      = %w{cells cell}
         | 
| 673 673 | 
             
              cell.kind         = :counting
         | 
| 674 674 | 
             
            end
         | 
| 675 675 |  | 
| 676 | 
            -
            Unit.define('base-pair') do |bp|
         | 
| 677 | 
            -
              bp.definition   = Unit('1 each')
         | 
| 676 | 
            +
            RubyUnits::Unit.define('base-pair') do |bp|
         | 
| 677 | 
            +
              bp.definition   = RubyUnits::Unit.new('1 each')
         | 
| 678 678 | 
             
              bp.aliases      = %w{bp base-pair}
         | 
| 679 679 | 
             
              bp.kind         = :counting
         | 
| 680 680 | 
             
            end
         | 
| 681 681 |  | 
| 682 | 
            -
            Unit.define('nucleotide') do |nt|
         | 
| 683 | 
            -
              nt.definition   = Unit('1 each')
         | 
| 682 | 
            +
            RubyUnits::Unit.define('nucleotide') do |nt|
         | 
| 683 | 
            +
              nt.definition   = RubyUnits::Unit.new('1 each')
         | 
| 684 684 | 
             
              nt.aliases      = %w{nt}
         | 
| 685 685 | 
             
              nt.kind         = :counting
         | 
| 686 686 | 
             
            end
         | 
| 687 687 |  | 
| 688 | 
            -
            Unit.define('molecule') do |molecule|
         | 
| 689 | 
            -
              molecule.definition   = Unit('1 each')
         | 
| 688 | 
            +
            RubyUnits::Unit.define('molecule') do |molecule|
         | 
| 689 | 
            +
              molecule.definition   = RubyUnits::Unit.new('1 each')
         | 
| 690 690 | 
             
              molecule.aliases      = %w{molecule molecules}
         | 
| 691 691 | 
             
              molecule.kind         = :counting
         | 
| 692 692 | 
             
            end
         | 
| 693 693 |  | 
| 694 | 
            -
            Unit.define('percent') do |percent|
         | 
| 695 | 
            -
              percent.definition  = Unit('1/100')
         | 
| 694 | 
            +
            RubyUnits::Unit.define('percent') do |percent|
         | 
| 695 | 
            +
              percent.definition  = RubyUnits::Unit.new('1/100')
         | 
| 696 696 | 
             
              percent.aliases     = %w{% percent}
         | 
| 697 697 | 
             
            end
         | 
| 698 698 |  | 
| 699 | 
            -
            Unit.define('ppm') do |ppm|
         | 
| 700 | 
            -
              ppm.definition  = Unit(1) / 1_000_000
         | 
| 699 | 
            +
            RubyUnits::Unit.define('ppm') do |ppm|
         | 
| 700 | 
            +
              ppm.definition  = RubyUnits::Unit.new(1) / 1_000_000
         | 
| 701 701 | 
             
            end
         | 
| 702 702 |  | 
| 703 | 
            -
            Unit.define('ppb') do |ppb|
         | 
| 704 | 
            -
              ppb.definition  = Unit(1) / 1_000_000_000
         | 
| 703 | 
            +
            RubyUnits::Unit.define('ppb') do |ppb|
         | 
| 704 | 
            +
              ppb.definition  = RubyUnits::Unit.new(1) / 1_000_000_000
         | 
| 705 705 | 
             
            end
         |