diff --git a/.rubocop.yml b/.rubocop.yml index 1a8689e..8e9abbb 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -30,3 +30,5 @@ Metrics/PerceivedComplexity: Enabled: false Metrics/AbcSize: Enabled: false +Layout/ExtraSpacing: + AllowForAlignment: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6502178..61b555c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,12 +1,12 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2024-09-01 18:40:26 UTC using RuboCop version 1.66.0. +# on 2025-12-28 23:46:28 UTC using RuboCop version 1.82.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 +# Offense count: 1 Lint/BinaryOperatorWithIdenticalOperands: Exclude: - 'spec/ruby_units/unit_spec.rb' @@ -14,7 +14,7 @@ Lint/BinaryOperatorWithIdenticalOperands: # Offense count: 2 # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns. # SupportedStyles: snake_case, normalcase, non_integer -# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64 +# AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64 Naming/VariableNumber: Exclude: - 'spec/ruby_units/unit_spec.rb' @@ -33,7 +33,7 @@ RSpec/BeforeAfterAll: - '**/spec/support/**/*.rb' - 'spec/ruby_units/temperature_spec.rb' -# Offense count: 95 +# Offense count: 79 # Configuration parameters: Prefixes, AllowedPatterns. # Prefixes: when, with, without RSpec/ContextWording: @@ -42,7 +42,7 @@ RSpec/ContextWording: - 'spec/ruby_units/unit_spec.rb' - 'spec/ruby_units/utf-8/unit_spec.rb' -# Offense count: 12 +# Offense count: 13 # Configuration parameters: IgnoredMetadata. RSpec/DescribeClass: Exclude: @@ -53,6 +53,7 @@ RSpec/DescribeClass: - '**/spec/views/**/*' - 'spec/ruby_units/bugs_spec.rb' - 'spec/ruby_units/definition_spec.rb' + - 'spec/ruby_units/initialization_spec.rb' - 'spec/ruby_units/temperature_spec.rb' - 'spec/ruby_units/unit_spec.rb' @@ -92,11 +93,11 @@ RSpec/MultipleDescribes: Exclude: - 'spec/ruby_units/unit_spec.rb' -# Offense count: 10 +# Offense count: 30 RSpec/MultipleExpectations: Max: 6 -# Offense count: 59 +# Offense count: 60 # Configuration parameters: EnforcedStyle, IgnoreSharedExamples. # SupportedStyles: always, named_only RSpec/NamedSubject: @@ -134,8 +135,8 @@ RSpec/RepeatedExampleGroupDescription: - 'spec/ruby_units/unit_spec.rb' # Offense count: 1 -# Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata. -# Include: **/*_spec.rb +# Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector. +# SupportedInflectors: default, active_support RSpec/SpecFilePathFormat: Exclude: - '**/spec/routing/**/*' @@ -143,20 +144,14 @@ RSpec/SpecFilePathFormat: # Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: EnforcedStyle. +# Configuration parameters: EnforcedStyle, EnforcedStyleForClasses, EnforcedStyleForModules. # SupportedStyles: nested, compact +# SupportedStylesForClasses: ~, nested, compact +# SupportedStylesForModules: ~, nested, compact Style/ClassAndModuleChildren: Exclude: - 'lib/ruby_units/definition.rb' -# Offense count: 1 -# Configuration parameters: AllowedConstants. -Style/Documentation: - Exclude: - - 'spec/**/*' - - 'test/**/*' - - 'lib/ruby_units/configuration.rb' - # Offense count: 5 # This cop supports unsafe autocorrection (--autocorrect-all). Style/GlobalStdStream: @@ -169,13 +164,6 @@ Style/OpenStructUse: Exclude: - 'Guardfile' -# Offense count: 1 -# Configuration parameters: AllowedMethods. -# AllowedMethods: respond_to_missing? -Style/OptionalBooleanParameter: - Exclude: - - 'lib/ruby_units/date.rb' - # Offense count: 1 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: AllowSend. diff --git a/Gemfile.lock b/Gemfile.lock index dcd9b19..9e79c3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -179,9 +179,9 @@ GEM rubocop-ast (>= 1.48.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.48.0) + rubocop-ast (1.49.0) parser (>= 3.3.7.2) - prism (~> 1.4) + prism (~> 1.7) rubocop-rake (0.7.1) lint_roller (~> 1.1) rubocop (>= 1.72.1) diff --git a/Guardfile b/Guardfile index de43215..911e696 100644 --- a/Guardfile +++ b/Guardfile @@ -28,6 +28,6 @@ guard :rspec, cmd: "bundle exec rspec" do rspec.spec_helper = "spec/spec_helper.rb" watch(%r{^spec/.+_spec\.rb$}) - watch(%r{^lib/(.+)\.rb$}) { |m| rspec.spec.call(m[1]) } - watch(rspec.spec_helper) { rspec.spec_dir } + watch(%r{^lib/(.+)\.rb$}) { |m| rspec.spec.call(m[1]) } + watch(rspec.spec_helper) { rspec.spec_dir } end diff --git a/lib/ruby_units/unit.rb b/lib/ruby_units/unit.rb index d704b1d..4cccdde 100644 --- a/lib/ruby_units/unit.rb +++ b/lib/ruby_units/unit.rb @@ -55,8 +55,8 @@ class << self self.unit_values = {} @unit_regex = nil @unit_match_regex = nil - UNITY = "<1>" - UNITY_ARRAY = [UNITY].freeze + UNITY = "<1>" + UNITY_ARRAY = [UNITY].freeze SIGN_REGEX = /(?:[+-])?/ # +, -, or nothing @@ -75,36 +75,36 @@ class << self # and 'inches', but they aren't defined at the point in the code where we # need this regex. FEET_INCH_UNITS_REGEX = /(?:'|ft|feet)\s*(?#{RATIONAL_NUMBER}|#{SCI_NUMBER})\s*(?:"|in|inch(?:es)?)/ - FEET_INCH_REGEX = /(?#{INTEGER_REGEX})\s*#{FEET_INCH_UNITS_REGEX}/ + FEET_INCH_REGEX = /(?#{INTEGER_REGEX})\s*#{FEET_INCH_UNITS_REGEX}/ # ideally we would like to generate this regex from the alias for a 'pound' # and 'ounce', but they aren't defined at the point in the code where we # need this regex. - LBS_OZ_UNIT_REGEX = /(?:#|lbs?|pounds?|pound-mass)+[\s,]*(?#{RATIONAL_NUMBER}|#{UNSIGNED_INTEGER_REGEX})\s*(?:ozs?|ounces?)/ - LBS_OZ_REGEX = /(?#{INTEGER_REGEX})\s*#{LBS_OZ_UNIT_REGEX}/ + LBS_OZ_UNIT_REGEX = /(?:#|lbs?|pounds?|pound-mass)+[\s,]*(?#{RATIONAL_NUMBER}|#{UNSIGNED_INTEGER_REGEX})\s*(?:ozs?|ounces?)/ + LBS_OZ_REGEX = /(?#{INTEGER_REGEX})\s*#{LBS_OZ_UNIT_REGEX}/ # ideally we would like to generate this regex from the alias for a 'stone' # and 'pound', but they aren't defined at the point in the code where we # need this regex. also note that the plural of 'stone' is still 'stone', # but we accept 'stones' anyway. STONE_LB_UNIT_REGEX = /(?:sts?|stones?)+[\s,]*(?#{RATIONAL_NUMBER}|#{UNSIGNED_INTEGER_REGEX})\s*(?:#|lbs?|pounds?|pound-mass)*/ - STONE_LB_REGEX = /(?#{INTEGER_REGEX})\s*#{STONE_LB_UNIT_REGEX}/ + STONE_LB_REGEX = /(?#{INTEGER_REGEX})\s*#{STONE_LB_UNIT_REGEX}/ # Time formats: 12:34:56,78, (hh:mm:ss,msec) etc. - TIME_REGEX = /(?\d+):(?\d+):?(?:(?\d+))?(?:[.](?\d+))?/ + TIME_REGEX = /(?\d+):(?\d+):?(?:(?\d+))?(?:[.](?\d+))?/ # Complex numbers: 1+2i, 1.0+2.0i, -1-1i, etc. - COMPLEX_NUMBER = /(?#{SCI_NUMBER})?(?#{SCI_NUMBER})i\b/ + COMPLEX_NUMBER = /(?#{SCI_NUMBER})?(?#{SCI_NUMBER})i\b/ # Any Complex, Rational, or scientific number - ANY_NUMBER = /(#{COMPLEX_NUMBER}|#{RATIONAL_NUMBER}|#{SCI_NUMBER})/ - ANY_NUMBER_REGEX = /(?:#{ANY_NUMBER})?\s?([^-\d.].*)?/ - NUMBER_REGEX = /(?#{SCI_NUMBER}*)\s*(?.+)?/ # a number followed by a unit - UNIT_STRING_REGEX = %r{#{SCI_NUMBER}*\s*([^/]*)/*(.+)*} - TOP_REGEX = /(?[^ *]+)(?:\^|\*\*)(?[\d-]+)/ - BOTTOM_REGEX = /(?[^* ]+)(?:\^|\*\*)(?\d+)/ - NUMBER_UNIT_REGEX = /#{SCI_NUMBER}?(.*)/ - COMPLEX_REGEX = /#{COMPLEX_NUMBER}\s?(?.+)?/ - RATIONAL_REGEX = /#{RATIONAL_NUMBER}\s?(?.+)?/ - KELVIN = [""].freeze - FAHRENHEIT = [""].freeze - RANKINE = [""].freeze - CELSIUS = [""].freeze + ANY_NUMBER = /(#{COMPLEX_NUMBER}|#{RATIONAL_NUMBER}|#{SCI_NUMBER})/ + ANY_NUMBER_REGEX = /(?:#{ANY_NUMBER})?\s?([^-\d.].*)?/ + NUMBER_REGEX = /(?#{SCI_NUMBER}*)\s*(?.+)?/ # a number followed by a unit + UNIT_STRING_REGEX = %r{#{SCI_NUMBER}*\s*([^/]*)/*(.+)*} + TOP_REGEX = /(?[^ *]+)(?:\^|\*\*)(?[\d-]+)/ + BOTTOM_REGEX = /(?[^* ]+)(?:\^|\*\*)(?\d+)/ + NUMBER_UNIT_REGEX = /#{SCI_NUMBER}?(.*)/ + COMPLEX_REGEX = /#{COMPLEX_NUMBER}\s?(?.+)?/ + RATIONAL_REGEX = /#{RATIONAL_NUMBER}\s?(?.+)?/ + KELVIN = [""].freeze + FAHRENHEIT = [""].freeze + RANKINE = [""].freeze + CELSIUS = [""].freeze # Temperature conversion constants CELSIUS_OFFSET_TO_KELVIN = 273.15 # offset to convert Celsius to Kelvin @@ -1229,9 +1229,9 @@ def convert_to(other) target_num = target.numerator target_den = target.denominator - source_numerator_values = to_scalar.call(@numerator) + source_numerator_values = to_scalar.call(@numerator) source_denominator_values = to_scalar.call(@denominator) - target_numerator_values = to_scalar.call(target_num) + target_numerator_values = to_scalar.call(target_num) target_denominator_values = to_scalar.call(target_den) # @type [Rational, Numeric] scalar_is_integer = @scalar.is_a?(Integer) @@ -1295,10 +1295,10 @@ def as_json(*) def units(with_prefix: true, format: nil) return "" if @numerator == UNITY_ARRAY && @denominator == UNITY_ARRAY - output_numerator = ["1"] + output_numerator = ["1"] output_denominator = [] - num = @numerator.clone.compact - den = @denominator.clone.compact + num = @numerator.clone.compact + den = @denominator.clone.compact process_unit_array = lambda do |unit_array| definitions = unit_array.map { unit_class.definition(_1) } @@ -1605,11 +1605,11 @@ def apply_signature_items(vector, items, sign) def update_base_scalar if base? @base_scalar = @scalar - @signature = unit_signature + @signature = unit_signature else - base = to_base + base = to_base @base_scalar = base.scalar - @signature = base.signature + @signature = base.signature end end @@ -2103,7 +2103,7 @@ def parse(passed_unit_string = "0") if unit copy(unit) - @scalar *= mult + @scalar *= mult @base_scalar *= mult return self end @@ -2199,7 +2199,7 @@ def parse(passed_unit_string = "0") @scalar /= bottom_scalar - @numerator ||= UNITY_ARRAY + @numerator ||= UNITY_ARRAY @denominator ||= UNITY_ARRAY @numerator = top.scan(unit_match_regex).delete_if(&:empty?).compact if top @denominator = bottom.scan(unit_match_regex).delete_if(&:empty?).compact if bottom diff --git a/lib/ruby_units/unit_definitions/base.rb b/lib/ruby_units/unit_definitions/base.rb index 12ff722..628f59a 100644 --- a/lib/ruby_units/unit_definitions/base.rb +++ b/lib/ruby_units/unit_definitions/base.rb @@ -4,99 +4,99 @@ RubyUnits::Unit.new("1") RubyUnits::Unit.define("meter") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[m meter meters metre metres] - unit.kind = :length + unit.aliases = %w[m meter meters metre metres] + unit.kind = :length end RubyUnits::Unit.define("kilogram") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[kg kilogram kilograms] - unit.kind = :mass + unit.aliases = %w[kg kilogram kilograms] + unit.kind = :mass end RubyUnits::Unit.define("second") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[s sec second seconds] - unit.kind = :time + unit.aliases = %w[s sec second seconds] + unit.kind = :time end RubyUnits::Unit.define("mole") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[mol mole] - unit.kind = :substance + unit.aliases = %w[mol mole] + unit.kind = :substance end RubyUnits::Unit.define("ampere") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[A ampere amperes amp amps] - unit.kind = :current + unit.aliases = %w[A ampere amperes amp amps] + unit.kind = :current end RubyUnits::Unit.define("radian") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[rad radian radians] - unit.kind = :angle + unit.aliases = %w[rad radian radians] + unit.kind = :angle end RubyUnits::Unit.define("kelvin") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[degK kelvin] - unit.kind = :temperature + unit.aliases = %w[degK kelvin] + unit.kind = :temperature end RubyUnits::Unit.define("tempK") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[tempK] - unit.kind = :temperature + unit.aliases = %w[tempK] + unit.kind = :temperature end RubyUnits::Unit.define("byte") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[B byte bytes] - unit.kind = :information + unit.aliases = %w[B byte bytes] + unit.kind = :information end RubyUnits::Unit.define("dollar") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[USD dollar] - unit.kind = :currency + unit.aliases = %w[USD dollar] + unit.kind = :currency end RubyUnits::Unit.define("candela") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[cd candela] - unit.kind = :luminosity + unit.aliases = %w[cd candela] + unit.kind = :luminosity end RubyUnits::Unit.define("each") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[each] - unit.kind = :counting + unit.aliases = %w[each] + unit.kind = :counting end RubyUnits::Unit.define("steradian") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[sr steradian steradians] - unit.kind = :solid_angle + unit.aliases = %w[sr steradian steradians] + unit.kind = :solid_angle end RubyUnits::Unit.define("decibel") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[dB decibel decibels] - unit.kind = :logarithmic + unit.aliases = %w[dB decibel decibels] + unit.kind = :logarithmic end diff --git a/lib/ruby_units/unit_definitions/prefix.rb b/lib/ruby_units/unit_definitions/prefix.rb index 56d5a3f..7dec0c2 100644 --- a/lib/ruby_units/unit_definitions/prefix.rb +++ b/lib/ruby_units/unit_definitions/prefix.rb @@ -2,40 +2,40 @@ { "googol" => [%w[googol], 1e100], - "yobi" => [%w[Yi Yobi yobi], 2**80], - "zebi" => [%w[Zi Zebi zebi], 2**70], - "exbi" => [%w[Ei Exbi exbi], 2**60], - "pebi" => [%w[Pi Pebi pebi], 2**50], - "tebi" => [%w[Ti Tebi tebi], 2**40], - "gibi" => [%w[Gi Gibi gibi], 2**30], - "mebi" => [%w[Mi Mebi mebi], 2**20], - "kibi" => [%w[Ki Kibi kibi], 2**10], - "yotta" => [%w[Y Yotta yotta], 1e24], - "zetta" => [%w[Z Zetta zetta], 1e21], + "yobi" => [%w[Yi Yobi yobi], 2**80], + "zebi" => [%w[Zi Zebi zebi], 2**70], + "exbi" => [%w[Ei Exbi exbi], 2**60], + "pebi" => [%w[Pi Pebi pebi], 2**50], + "tebi" => [%w[Ti Tebi tebi], 2**40], + "gibi" => [%w[Gi Gibi gibi], 2**30], + "mebi" => [%w[Mi Mebi mebi], 2**20], + "kibi" => [%w[Ki Kibi kibi], 2**10], + "yotta" => [%w[Y Yotta yotta], 1e24], + "zetta" => [%w[Z Zetta zetta], 1e21], "exa" => [%w[E Exa exa], 1e18], - "peta" => [%w[P Peta peta], 1e15], - "tera" => [%w[T Tera tera], 1e12], - "giga" => [%w[G Giga giga], 1e9], - "mega" => [%w[M Mega mega], 1e6], - "kilo" => [%w[k kilo], 1e3], + "peta" => [%w[P Peta peta], 1e15], + "tera" => [%w[T Tera tera], 1e12], + "giga" => [%w[G Giga giga], 1e9], + "mega" => [%w[M Mega mega], 1e6], + "kilo" => [%w[k kilo], 1e3], "hecto" => [%w[h Hecto hecto], 1e2], "deca" => [%w[da Deca deca deka], 1e1], "1" => [%w[1], 1], "deci" => [%w[d Deci deci], Rational(1, 1e1)], - "centi" => [%w[c Centi centi], Rational(1, 1e2)], - "milli" => [%w[m Milli milli], Rational(1, 1e3)], + "centi" => [%w[c Centi centi], Rational(1, 1e2)], + "milli" => [%w[m Milli milli], Rational(1, 1e3)], "micro" => [%w[u ยต Micro micro mc], Rational(1, 1e6)], - "nano" => [%w[n Nano nano], Rational(1, 1e9)], - "pico" => [%w[p Pico pico], Rational(1, 1e12)], + "nano" => [%w[n Nano nano], Rational(1, 1e9)], + "pico" => [%w[p Pico pico], Rational(1, 1e12)], "femto" => [%w[f Femto femto], Rational(1, 1e15)], "atto" => [%w[a Atto atto], Rational(1, 1e18)], - "zepto" => [%w[z Zepto zepto], Rational(1, 1e21)], - "yocto" => [%w[y Yocto yocto], Rational(1, 1e24)] + "zepto" => [%w[z Zepto zepto], Rational(1, 1e21)], + "yocto" => [%w[y Yocto yocto], Rational(1, 1e24)] }.each do |name, definition| RubyUnits::Unit.define(name) do |unit| aliases, scalar = definition - unit.aliases = aliases - unit.scalar = scalar - unit.kind = :prefix + unit.aliases = aliases + unit.scalar = scalar + unit.kind = :prefix end end diff --git a/lib/ruby_units/unit_definitions/standard.rb b/lib/ruby_units/unit_definitions/standard.rb index e0cbae8..caf6667 100644 --- a/lib/ruby_units/unit_definitions/standard.rb +++ b/lib/ruby_units/unit_definitions/standard.rb @@ -4,104 +4,104 @@ RubyUnits::Unit.define("inch") do |inch| inch.definition = RubyUnits::Unit.new("254/10000 meter") - inch.aliases = %w[in inch inches "] + inch.aliases = %w[in inch inches "] end RubyUnits::Unit.define("foot") do |foot| foot.definition = RubyUnits::Unit.new("12 inches") - foot.aliases = %w[ft foot feet '] + foot.aliases = %w[ft foot feet '] end RubyUnits::Unit.define("survey-foot") do |sft| sft.definition = RubyUnits::Unit.new("1200/3937 meter") - sft.aliases = %w[sft sfoot sfeet] + sft.aliases = %w[sft sfoot sfeet] end RubyUnits::Unit.define("yard") do |yard| yard.definition = RubyUnits::Unit.new("3 ft") - yard.aliases = %w[yd yard yards] + yard.aliases = %w[yd yard yards] end RubyUnits::Unit.define("mile") do |mile| mile.definition = RubyUnits::Unit.new("5280 ft") - mile.aliases = %w[mi mile miles] + mile.aliases = %w[mi mile miles] end RubyUnits::Unit.define("naut-mile") do |naut| naut.definition = RubyUnits::Unit.new("1852 m") - naut.aliases = %w[nmi NM] + naut.aliases = %w[nmi NM] # Don't use the 'M' abbreviation here since it conflicts with 'Molar' end # on land RubyUnits::Unit.define("league") do |league| league.definition = RubyUnits::Unit.new("3 miles") - league.aliases = %w[league leagues] + league.aliases = %w[league leagues] end # at sea RubyUnits::Unit.define("naut-league") do |naut_league| naut_league.definition = RubyUnits::Unit.new("3 nmi") - naut_league.aliases = %w[nleague nleagues] + naut_league.aliases = %w[nleague nleagues] end RubyUnits::Unit.define("furlong") do |furlong| furlong.definition = RubyUnits::Unit.new("1/8 mile") - furlong.aliases = %w[fur furlong furlongs] + furlong.aliases = %w[fur furlong furlongs] end RubyUnits::Unit.define("rod") do |rod| - rod.definition = RubyUnits::Unit.new("33/2 feet") - rod.aliases = %w[rd rod rods] + rod.definition = RubyUnits::Unit.new("33/2 feet") + rod.aliases = %w[rd rod rods] end RubyUnits::Unit.define("fathom") do |fathom| fathom.definition = RubyUnits::Unit.new("6 ft") - fathom.aliases = %w[fathom fathoms] + fathom.aliases = %w[fathom fathoms] end RubyUnits::Unit.define("mil") do |mil| mil.definition = RubyUnits::Unit.new("1/1000 inch") - mil.aliases = %w[mil mils] + mil.aliases = %w[mil mils] end RubyUnits::Unit.define("angstrom") do |ang| ang.definition = RubyUnits::Unit.new("1/10 nm") - ang.aliases = %w[ang angstrom angstroms] + ang.aliases = %w[ang angstrom angstroms] end # typesetting RubyUnits::Unit.define("pica") do |pica| pica.definition = RubyUnits::Unit.new("1/72 ft") - pica.aliases = %w[pica picas] + pica.aliases = %w[pica picas] # Don't use 'P' as an abbreviation since it conflicts with 'Poise' # Don't use 'pc' as an abbreviation since it conflicts with 'parsec' end RubyUnits::Unit.define("point") do |point| point.definition = RubyUnits::Unit.new("1/12 pica") - point.aliases = %w[point points] + point.aliases = %w[point points] end RubyUnits::Unit.define("dot") do |dot| - dot.definition = RubyUnits::Unit.new("1 each") - dot.aliases = %w[dot dots] - dot.kind = :counting + dot.definition = RubyUnits::Unit.new("1 each") + dot.aliases = %w[dot dots] + dot.kind = :counting end RubyUnits::Unit.define("pixel") do |pixel| - pixel.definition = RubyUnits::Unit.new("1 each") - pixel.aliases = %w[px pixel pixels] - pixel.kind = :counting + pixel.definition = RubyUnits::Unit.new("1 each") + pixel.aliases = %w[px pixel pixels] + pixel.kind = :counting end RubyUnits::Unit.define("ppi") do |ppi| - ppi.definition = RubyUnits::Unit.new("1 pixel/inch") + ppi.definition = RubyUnits::Unit.new("1 pixel/inch") end RubyUnits::Unit.define("dpi") do |dpi| - dpi.definition = RubyUnits::Unit.new("1 dot/inch") + dpi.definition = RubyUnits::Unit.new("1 dot/inch") end # Mass @@ -110,91 +110,91 @@ RubyUnits::Unit.define("AMU") do |amu| amu.definition = RubyUnits::Unit.new("0.012 kg/mol") / (12 * avagadro_constant) - amu.aliases = %w[u AMU amu] + amu.aliases = %w[u AMU amu] end RubyUnits::Unit.define("dalton") do |dalton| dalton.definition = RubyUnits::Unit.new("1 amu") - dalton.aliases = %w[Da dalton daltons] + dalton.aliases = %w[Da dalton daltons] end RubyUnits::Unit.define("metric-ton") do |mton| mton.definition = RubyUnits::Unit.new("1000 kg") - mton.aliases = %w[tonne] + mton.aliases = %w[tonne] end # defined as a rational number to preserve accuracy and minimize round-off errors during # calculations RubyUnits::Unit.define("pound") do |pound| pound.definition = RubyUnits::Unit.new(Rational(45_359_237, 1e8), "kg") - pound.aliases = %w[lbs lb lbm pound-mass pound pounds #] + pound.aliases = %w[lbs lb lbm pound-mass pound pounds #] end RubyUnits::Unit.define("ounce") do |ounce| ounce.definition = RubyUnits::Unit.new("1/16 lbs") - ounce.aliases = %w[oz ounce ounces] + ounce.aliases = %w[oz ounce ounces] end RubyUnits::Unit.define("gram") do |gram| gram.definition = RubyUnits::Unit.new("1/1000 kg") - gram.aliases = %w[g gram grams gramme grammes] + gram.aliases = %w[g gram grams gramme grammes] end RubyUnits::Unit.define("short-ton") do |ton| ton.definition = RubyUnits::Unit.new("2000 lbs") - ton.aliases = %w[tn ton tons short-tons] + ton.aliases = %w[tn ton tons short-tons] end RubyUnits::Unit.define("carat") do |carat| carat.definition = RubyUnits::Unit.new("1/5000 kg") - carat.aliases = %w[ct carat carats] + carat.aliases = %w[ct carat carats] end RubyUnits::Unit.define("stone") do |stone| stone.definition = RubyUnits::Unit.new("14 lbs") - stone.aliases = %w[st stone] + stone.aliases = %w[st stone] end # time RubyUnits::Unit.define("minute") do |min| min.definition = RubyUnits::Unit.new("60 seconds") - min.aliases = %w[min minute minutes] + min.aliases = %w[min minute minutes] end RubyUnits::Unit.define("hour") do |hour| hour.definition = RubyUnits::Unit.new("60 minutes") - hour.aliases = %w[h hr hrs hour hours] + hour.aliases = %w[h hr hrs hour hours] end RubyUnits::Unit.define("day") do |day| - day.definition = RubyUnits::Unit.new("24 hours") - day.aliases = %w[d day days] + day.definition = RubyUnits::Unit.new("24 hours") + day.aliases = %w[d day days] end RubyUnits::Unit.define("week") do |week| - week.definition = RubyUnits::Unit.new("7 days") - week.aliases = %w[wk week weeks] + week.definition = RubyUnits::Unit.new("7 days") + week.aliases = %w[wk week weeks] end RubyUnits::Unit.define("fortnight") do |fortnight| - fortnight.definition = RubyUnits::Unit.new("2 weeks") - fortnight.aliases = %w[fortnight fortnights] + fortnight.definition = RubyUnits::Unit.new("2 weeks") + fortnight.aliases = %w[fortnight fortnights] end RubyUnits::Unit.define("year") do |year| year.definition = RubyUnits::Unit.new("31556926 seconds") # works out to 365.24219907407405 days - year.aliases = %w[y yr year years annum] + year.aliases = %w[y yr year years annum] end RubyUnits::Unit.define("decade") do |decade| decade.definition = RubyUnits::Unit.new("10 years") - decade.aliases = %w[decade decades] + decade.aliases = %w[decade decades] end RubyUnits::Unit.define("century") do |century| - century.definition = RubyUnits::Unit.new("100 years") - century.aliases = %w[century centuries] + century.definition = RubyUnits::Unit.new("100 years") + century.aliases = %w[century centuries] end # area @@ -205,7 +205,7 @@ RubyUnits::Unit.define("acre") do |acre| acre.definition = (RubyUnits::Unit.new("1 mi")**2) / 640 - acre.aliases = %w[acre acres] + acre.aliases = %w[acre acres] end RubyUnits::Unit.define("sqft") do |sqft| @@ -220,42 +220,42 @@ RubyUnits::Unit.define("liter") do |liter| liter.definition = RubyUnits::Unit.new("1/1000 m^3") - liter.aliases = %w[l L liter liters litre litres] + liter.aliases = %w[l L liter liters litre litres] end RubyUnits::Unit.define("gallon") do |gallon| gallon.definition = RubyUnits::Unit.new("231 in^3") - gallon.aliases = %w[gal gallon gallons] + gallon.aliases = %w[gal gallon gallons] end RubyUnits::Unit.define("quart") do |quart| - quart.definition = RubyUnits::Unit.new("1/4 gal") - quart.aliases = %w[qt quart quarts] + quart.definition = RubyUnits::Unit.new("1/4 gal") + quart.aliases = %w[qt quart quarts] end RubyUnits::Unit.define("pint") do |pint| pint.definition = RubyUnits::Unit.new("1/8 gal") - pint.aliases = %w[pt pint pints] + pint.aliases = %w[pt pint pints] end RubyUnits::Unit.define("cup") do |cup| cup.definition = RubyUnits::Unit.new("1/16 gal") - cup.aliases = %w[cu cup cups] + cup.aliases = %w[cu cup cups] end RubyUnits::Unit.define("fluid-ounce") do |floz| floz.definition = RubyUnits::Unit.new("1/128 gal") - floz.aliases = %w[floz fluid-ounce fluid-ounces] + floz.aliases = %w[floz fluid-ounce fluid-ounces] end RubyUnits::Unit.define("tablespoon") do |tbsp| tbsp.definition = RubyUnits::Unit.new("1/2 floz") - tbsp.aliases = %w[tbs tbsp tablespoon tablespoons] + tbsp.aliases = %w[tbs tbsp tablespoon tablespoons] end RubyUnits::Unit.define("teaspoon") do |tsp| tsp.definition = RubyUnits::Unit.new("1/3 tablespoon") - tsp.aliases = %w[tsp teaspoon teaspoons] + tsp.aliases = %w[tsp teaspoon teaspoons] end ## @@ -265,90 +265,90 @@ # http://en.wikipedia.org/wiki/Board_foot RubyUnits::Unit.define("bdft") do |bdft| bdft.definition = RubyUnits::Unit.new("1/12 ft^3") - bdft.aliases = %w[fbm boardfoot boardfeet bf] + bdft.aliases = %w[fbm boardfoot boardfeet bf] end # volumetric flow RubyUnits::Unit.define("cfm") do |cfm| cfm.definition = RubyUnits::Unit.new("1 ft^3/minute") - cfm.aliases = %w[cfm CFM CFPM] + cfm.aliases = %w[cfm CFM CFPM] end # speed RubyUnits::Unit.define("kph") do |kph| - kph.definition = RubyUnits::Unit.new("1 kilometer/hour") + kph.definition = RubyUnits::Unit.new("1 kilometer/hour") end RubyUnits::Unit.define("mph") do |mph| - mph.definition = RubyUnits::Unit.new("1 mile/hour") + mph.definition = RubyUnits::Unit.new("1 mile/hour") end RubyUnits::Unit.define("fps") do |fps| - fps.definition = RubyUnits::Unit.new("1 foot/second") + fps.definition = RubyUnits::Unit.new("1 foot/second") end RubyUnits::Unit.define("knot") do |knot| - knot.definition = RubyUnits::Unit.new("1 nmi/hour") - knot.aliases = %w[kt kn kts knot knots] + knot.definition = RubyUnits::Unit.new("1 nmi/hour") + knot.aliases = %w[kt kn kts knot knots] end RubyUnits::Unit.define("gee") do |gee| # approximated as a rational number to minimize round-off errors - gee.definition = RubyUnits::Unit.new(Rational(196_133, 20_000), "m/s^2") # equivalent to 9.80665 m/s^2 - gee.aliases = %w[gee standard-gravitation] + gee.definition = RubyUnits::Unit.new(Rational(196_133, 20_000), "m/s^2") # equivalent to 9.80665 m/s^2 + gee.aliases = %w[gee standard-gravitation] end # temperature differences RubyUnits::Unit.define("newton") do |newton| newton.definition = RubyUnits::Unit.new("1 kg*m/s^2") - newton.aliases = %w[N newton newtons] + newton.aliases = %w[N newton newtons] end RubyUnits::Unit.define("dyne") do |dyne| dyne.definition = RubyUnits::Unit.new("1/100000 N") - dyne.aliases = %w[dyn dyne] + dyne.aliases = %w[dyn dyne] end RubyUnits::Unit.define("pound-force") do |lbf| - lbf.definition = RubyUnits::Unit.new("1 lb") * RubyUnits::Unit.new("1 gee") - lbf.aliases = %w[lbf pound-force] + lbf.definition = RubyUnits::Unit.new("1 lb") * RubyUnits::Unit.new("1 gee") + lbf.aliases = %w[lbf pound-force] end RubyUnits::Unit.define("poundal") do |poundal| - poundal.definition = RubyUnits::Unit.new("1 lb") * RubyUnits::Unit.new("1 ft/s^2") - poundal.aliases = %w[pdl poundal poundals] + poundal.definition = RubyUnits::Unit.new("1 lb") * RubyUnits::Unit.new("1 ft/s^2") + poundal.aliases = %w[pdl poundal poundals] end temp_convert_factor = Rational(2_501_999_792_983_609, 4_503_599_627_370_496) # approximates 1/1.8 RubyUnits::Unit.define("celsius") do |celsius| - celsius.definition = RubyUnits::Unit.new("1 degK") - celsius.aliases = %w[degC celsius centigrade] + celsius.definition = RubyUnits::Unit.new("1 degK") + celsius.aliases = %w[degC celsius centigrade] end RubyUnits::Unit.define("fahrenheit") do |fahrenheit| fahrenheit.definition = RubyUnits::Unit.new(temp_convert_factor, "degK") - fahrenheit.aliases = %w[degF fahrenheit] + fahrenheit.aliases = %w[degF fahrenheit] end RubyUnits::Unit.define("rankine") do |rankine| - rankine.definition = RubyUnits::Unit.new("1 degF") - rankine.aliases = %w[degR rankine] + rankine.definition = RubyUnits::Unit.new("1 degF") + rankine.aliases = %w[degR rankine] end RubyUnits::Unit.define("tempC") do |temp_c| - temp_c.definition = RubyUnits::Unit.new("1 tempK") + temp_c.definition = RubyUnits::Unit.new("1 tempK") end RubyUnits::Unit.define("tempF") do |temp_f| - temp_f.definition = RubyUnits::Unit.new(temp_convert_factor, "tempK") + temp_f.definition = RubyUnits::Unit.new(temp_convert_factor, "tempK") end RubyUnits::Unit.define("tempR") do |temp_r| - temp_r.definition = RubyUnits::Unit.new("1 tempF") + temp_r.definition = RubyUnits::Unit.new("1 tempF") end # astronomy @@ -357,245 +357,245 @@ RubyUnits::Unit.define("light-second") do |ls| ls.definition = RubyUnits::Unit.new("1 s") * speed_of_light - ls.aliases = %w[ls lsec light-second] + ls.aliases = %w[ls lsec light-second] end RubyUnits::Unit.define("light-minute") do |lmin| lmin.definition = RubyUnits::Unit.new("1 min") * speed_of_light - lmin.aliases = %w[lmin light-minute] + lmin.aliases = %w[lmin light-minute] end RubyUnits::Unit.define("light-year") do |ly| ly.definition = RubyUnits::Unit.new("1 y") * speed_of_light - ly.aliases = %w[ly light-year] + ly.aliases = %w[ly light-year] end RubyUnits::Unit.define("parsec") do |parsec| parsec.definition = RubyUnits::Unit.new("3.26163626 ly") - parsec.aliases = %w[pc parsec parsecs] + parsec.aliases = %w[pc parsec parsecs] end # once was '149597900000 m' but there appears to be a more accurate estimate according to wikipedia # see http://en.wikipedia.org/wiki/Astronomical_unit RubyUnits::Unit.define("AU") do |au| au.definition = RubyUnits::Unit.new("149597870700 m") - au.aliases = %w[AU astronomical-unit] + au.aliases = %w[AU astronomical-unit] end RubyUnits::Unit.define("redshift") do |red| red.definition = RubyUnits::Unit.new("1.302773e26 m") - red.aliases = %w[z red-shift] + red.aliases = %w[z red-shift] end # mass RubyUnits::Unit.define("slug") do |slug| slug.definition = RubyUnits::Unit.new("1 lbf*s^2/ft") - slug.aliases = %w[slug slugs] + slug.aliases = %w[slug slugs] end # pressure RubyUnits::Unit.define("pascal") do |pascal| pascal.definition = RubyUnits::Unit.new("1 kg/m*s^2") - pascal.aliases = %w[Pa pascal pascals] + pascal.aliases = %w[Pa pascal pascals] end RubyUnits::Unit.define("bar") do |bar| - bar.definition = RubyUnits::Unit.new("100 kPa") - bar.aliases = %w[bar bars] + bar.definition = RubyUnits::Unit.new("100 kPa") + bar.aliases = %w[bar bars] end RubyUnits::Unit.define("atm") do |atm| - atm.definition = RubyUnits::Unit.new("101325 Pa") - atm.aliases = %w[atm ATM atmosphere atmospheres] + atm.definition = RubyUnits::Unit.new("101325 Pa") + atm.aliases = %w[atm ATM atmosphere atmospheres] end RubyUnits::Unit.define("mmHg") do |mmhg| - density_of_mercury = RubyUnits::Unit.new("7653360911758079/562949953421312 g/cm^3") # 13.5951 g/cm^3 at 0 tempC - mmhg.definition = RubyUnits::Unit.new("1 mm") * RubyUnits::Unit.new("1 gee") * density_of_mercury + density_of_mercury = RubyUnits::Unit.new("7653360911758079/562949953421312 g/cm^3") # 13.5951 g/cm^3 at 0 tempC + mmhg.definition = RubyUnits::Unit.new("1 mm") * RubyUnits::Unit.new("1 gee") * density_of_mercury end RubyUnits::Unit.define("inHg") do |inhg| density_of_mercury = RubyUnits::Unit.new("7653360911758079/562949953421312 g/cm^3") # 13.5951 g/cm^3 at 0 tempC - inhg.definition = RubyUnits::Unit.new("1 in") * RubyUnits::Unit.new("1 gee") * density_of_mercury + inhg.definition = RubyUnits::Unit.new("1 in") * RubyUnits::Unit.new("1 gee") * density_of_mercury end RubyUnits::Unit.define("torr") do |torr| torr.definition = RubyUnits::Unit.new("1/760 atm") - torr.aliases = %w[Torr torr] + torr.aliases = %w[Torr torr] end RubyUnits::Unit.define("psi") do |psi| - psi.definition = RubyUnits::Unit.new("1 lbf/in^2") + psi.definition = RubyUnits::Unit.new("1 lbf/in^2") end RubyUnits::Unit.define("cmh2o") do |cmh2o| - density_of_water = RubyUnits::Unit.new("1 g/cm^3") # at 4 tempC - cmh2o.definition = RubyUnits::Unit.new("1 cm") * RubyUnits::Unit.new("1 gee") * density_of_water - cmh2o.aliases = %w[cmH2O cmh2o cmAq] + density_of_water = RubyUnits::Unit.new("1 g/cm^3") # at 4 tempC + cmh2o.definition = RubyUnits::Unit.new("1 cm") * RubyUnits::Unit.new("1 gee") * density_of_water + cmh2o.aliases = %w[cmH2O cmh2o cmAq] end RubyUnits::Unit.define("inh2o") do |inh2o| - density_of_water = RubyUnits::Unit.new("1 g/cm^3") # at 4 tempC - inh2o.definition = RubyUnits::Unit.new("1 in") * RubyUnits::Unit.new("1 gee") * density_of_water - inh2o.aliases = %w[inH2O inh2o inAq] + density_of_water = RubyUnits::Unit.new("1 g/cm^3") # at 4 tempC + inh2o.definition = RubyUnits::Unit.new("1 in") * RubyUnits::Unit.new("1 gee") * density_of_water + inh2o.aliases = %w[inH2O inh2o inAq] end # viscosity RubyUnits::Unit.define("poise") do |poise| - poise.definition = RubyUnits::Unit.new("dPa*s") - poise.aliases = %w[P poise] + poise.definition = RubyUnits::Unit.new("dPa*s") + poise.aliases = %w[P poise] end RubyUnits::Unit.define("stokes") do |stokes| stokes.definition = RubyUnits::Unit.new("1 cm^2/s") - stokes.aliases = %w[St stokes] + stokes.aliases = %w[St stokes] end # #energy RubyUnits::Unit.define("joule") do |joule| - joule.definition = RubyUnits::Unit.new("1 N*m") - joule.aliases = %w[J joule joules] + joule.definition = RubyUnits::Unit.new("1 N*m") + joule.aliases = %w[J joule joules] end RubyUnits::Unit.define("erg") do |erg| - erg.definition = RubyUnits::Unit.new("1 g*cm^2/s^2") - erg.aliases = %w[erg ergs] + erg.definition = RubyUnits::Unit.new("1 g*cm^2/s^2") + erg.aliases = %w[erg ergs] end # power RubyUnits::Unit.define("watt") do |watt| watt.definition = RubyUnits::Unit.new("1 N*m/s") - watt.aliases = %w[W Watt watt watts] + watt.aliases = %w[W Watt watt watts] end RubyUnits::Unit.define("horsepower") do |hp| hp.definition = RubyUnits::Unit.new("33000 ft*lbf/min") - hp.aliases = %w[hp horsepower] + hp.aliases = %w[hp horsepower] end # energy RubyUnits::Unit.define("btu") do |btu| - btu.definition = RubyUnits::Unit.new("2320092679909671/2199023255552 J") # 1055.056 J --- ISO standard - btu.aliases = %w[Btu btu Btus btus] + btu.definition = RubyUnits::Unit.new("2320092679909671/2199023255552 J") # 1055.056 J --- ISO standard + btu.aliases = %w[Btu btu Btus btus] end RubyUnits::Unit.define("therm") do |therm| - therm.definition = RubyUnits::Unit.new("100 kBtu") - therm.aliases = %w[thm therm therms Therm] + therm.definition = RubyUnits::Unit.new("100 kBtu") + therm.aliases = %w[thm therm therms Therm] end # "small" calorie RubyUnits::Unit.define("calorie") do |calorie| - calorie.definition = RubyUnits::Unit.new("4.184 J") - calorie.aliases = %w[cal calorie calories] + calorie.definition = RubyUnits::Unit.new("4.184 J") + calorie.aliases = %w[cal calorie calories] end # "big" calorie RubyUnits::Unit.define("Calorie") do |calorie| - calorie.definition = RubyUnits::Unit.new("1 kcal") - calorie.aliases = %w[Cal Calorie Calories] + calorie.definition = RubyUnits::Unit.new("1 kcal") + calorie.aliases = %w[Cal Calorie Calories] end RubyUnits::Unit.define("molar") do |molar| - molar.definition = RubyUnits::Unit.new("1 mole/l") - molar.aliases = %w[M molar] + molar.definition = RubyUnits::Unit.new("1 mole/l") + molar.aliases = %w[M molar] end # potential RubyUnits::Unit.define("volt") do |volt| volt.definition = RubyUnits::Unit.new("1 W/A") - volt.aliases = %w[V volt volts] + volt.aliases = %w[V volt volts] end # capacitance RubyUnits::Unit.define("farad") do |farad| - farad.definition = RubyUnits::Unit.new("1 A*s/V") - farad.aliases = %w[F farad farads] + farad.definition = RubyUnits::Unit.new("1 A*s/V") + farad.aliases = %w[F farad farads] end # charge RubyUnits::Unit.define("coulomb") do |coulomb| - coulomb.definition = RubyUnits::Unit.new("1 A*s") - coulomb.aliases = %w[C coulomb coulombs] + coulomb.definition = RubyUnits::Unit.new("1 A*s") + coulomb.aliases = %w[C coulomb coulombs] end # conductance RubyUnits::Unit.define("siemens") do |siemens| - siemens.definition = RubyUnits::Unit.new("1 A/V") - siemens.aliases = %w[S siemens] + siemens.definition = RubyUnits::Unit.new("1 A/V") + siemens.aliases = %w[S siemens] end # inductance RubyUnits::Unit.define("henry") do |henry| - henry.definition = RubyUnits::Unit.new("1 J/A^2") - henry.aliases = %w[H henry henries] + henry.definition = RubyUnits::Unit.new("1 J/A^2") + henry.aliases = %w[H henry henries] end # resistance RubyUnits::Unit.define("ohm") do |ohm| - ohm.definition = RubyUnits::Unit.new("1 V/A") - ohm.aliases = %w[Ohm ohm ohms] + ohm.definition = RubyUnits::Unit.new("1 V/A") + ohm.aliases = %w[Ohm ohm ohms] end # magnetism RubyUnits::Unit.define("weber") do |weber| - weber.definition = RubyUnits::Unit.new("1 V*s") - weber.aliases = %w[Wb weber webers] + weber.definition = RubyUnits::Unit.new("1 V*s") + weber.aliases = %w[Wb weber webers] end RubyUnits::Unit.define("tesla") do |tesla| - tesla.definition = RubyUnits::Unit.new("1 V*s/m^2") - tesla.aliases = %w[T tesla teslas] + tesla.definition = RubyUnits::Unit.new("1 V*s/m^2") + tesla.aliases = %w[T tesla teslas] end RubyUnits::Unit.define("gauss") do |gauss| - gauss.definition = RubyUnits::Unit.new("100 microT") - gauss.aliases = %w[G gauss] + gauss.definition = RubyUnits::Unit.new("100 microT") + gauss.aliases = %w[G gauss] end RubyUnits::Unit.define("maxwell") do |maxwell| - maxwell.definition = RubyUnits::Unit.new("1 gauss*cm^2") - maxwell.aliases = %w[Mx maxwell maxwells] + maxwell.definition = RubyUnits::Unit.new("1 gauss*cm^2") + maxwell.aliases = %w[Mx maxwell maxwells] end RubyUnits::Unit.define("oersted") do |oersted| - oersted.definition = RubyUnits::Unit.new(250.0 / Math::PI, "A/m") - oersted.aliases = %w[Oe oersted oersteds] + oersted.definition = RubyUnits::Unit.new(250.0 / Math::PI, "A/m") + oersted.aliases = %w[Oe oersted oersteds] end # activity RubyUnits::Unit.define("katal") do |katal| - katal.definition = RubyUnits::Unit.new("1 mole/sec") - katal.aliases = %w[kat katal] + katal.definition = RubyUnits::Unit.new("1 mole/sec") + katal.aliases = %w[kat katal] end RubyUnits::Unit.define("unit") do |unit| - unit.definition = RubyUnits::Unit.new("1/60 microkatal") - unit.aliases = %w[U enzUnit units] + unit.definition = RubyUnits::Unit.new("1/60 microkatal") + unit.aliases = %w[U enzUnit units] end # frequency RubyUnits::Unit.define("hertz") do |hz| - hz.definition = RubyUnits::Unit.new("1 1/s") - hz.aliases = %w[Hz hertz] + hz.definition = RubyUnits::Unit.new("1 1/s") + hz.aliases = %w[Hz hertz] end # angle RubyUnits::Unit.define("degree") do |deg| - deg.definition = RubyUnits::Unit.new(Math::PI / 180.0, "radian") - deg.aliases = %w[deg degree degrees] + deg.definition = RubyUnits::Unit.new(Math::PI / 180.0, "radian") + deg.aliases = %w[deg degree degrees] end RubyUnits::Unit.define("gon") do |grad| - grad.definition = RubyUnits::Unit.new(Math::PI / 200.0, "radian") - grad.aliases = %w[gon grad gradian grads] + grad.definition = RubyUnits::Unit.new(Math::PI / 200.0, "radian") + grad.aliases = %w[gon grad gradian grads] end # rotation @@ -604,120 +604,120 @@ end RubyUnits::Unit.define("rpm") do |rpm| - rpm.definition = RubyUnits::Unit.new("1 rotation/min") + rpm.definition = RubyUnits::Unit.new("1 rotation/min") end # memory RubyUnits::Unit.define("bit") do |bit| - bit.definition = RubyUnits::Unit.new("1/8 byte") - bit.aliases = %w[b bit] + bit.definition = RubyUnits::Unit.new("1/8 byte") + bit.aliases = %w[b bit] end # currency RubyUnits::Unit.define("cents") do |cents| - cents.definition = RubyUnits::Unit.new("1/100 dollar") + cents.definition = RubyUnits::Unit.new("1/100 dollar") end # luminosity RubyUnits::Unit.define("lumen") do |lumen| - lumen.definition = RubyUnits::Unit.new("1 cd*steradian") - lumen.aliases = %w[lm lumen] + lumen.definition = RubyUnits::Unit.new("1 cd*steradian") + lumen.aliases = %w[lm lumen] end RubyUnits::Unit.define("lux") do |lux| - lux.definition = RubyUnits::Unit.new("1 lumen/m^2") + lux.definition = RubyUnits::Unit.new("1 lumen/m^2") end # radiation RubyUnits::Unit.define("gray") do |gray| gray.definition = RubyUnits::Unit.new("1 J/kg") - gray.aliases = %w[Gy gray grays] + gray.aliases = %w[Gy gray grays] end RubyUnits::Unit.define("roentgen") do |roentgen| roentgen.definition = RubyUnits::Unit.new("2.58e-4 C/kg") - roentgen.aliases = %w[R roentgen] + roentgen.aliases = %w[R roentgen] end RubyUnits::Unit.define("sievert") do |sievert| - sievert.definition = RubyUnits::Unit.new("1 J/kg") - sievert.aliases = %w[Sv sievert sieverts] + sievert.definition = RubyUnits::Unit.new("1 J/kg") + sievert.aliases = %w[Sv sievert sieverts] end RubyUnits::Unit.define("becquerel") do |becquerel| - becquerel.definition = RubyUnits::Unit.new("1 1/s") - becquerel.aliases = %w[Bq becquerel becquerels] + becquerel.definition = RubyUnits::Unit.new("1 1/s") + becquerel.aliases = %w[Bq becquerel becquerels] end RubyUnits::Unit.define("curie") do |curie| - curie.definition = RubyUnits::Unit.new("37 GBq") - curie.aliases = %w[Ci curie curies] + curie.definition = RubyUnits::Unit.new("37 GBq") + curie.aliases = %w[Ci curie curies] end RubyUnits::Unit.define("count") do |count| - count.definition = RubyUnits::Unit.new("1 each") - count.kind = :counting + count.definition = RubyUnits::Unit.new("1 each") + count.kind = :counting end # rate RubyUnits::Unit.define("cpm") do |cpm| - cpm.definition = RubyUnits::Unit.new("1 count/min") + cpm.definition = RubyUnits::Unit.new("1 count/min") end RubyUnits::Unit.define("dpm") do |dpm| - dpm.definition = RubyUnits::Unit.new("1 count/min") + dpm.definition = RubyUnits::Unit.new("1 count/min") end RubyUnits::Unit.define("bpm") do |bpm| - bpm.definition = RubyUnits::Unit.new("1 count/min") + bpm.definition = RubyUnits::Unit.new("1 count/min") end # misc RubyUnits::Unit.define("dozen") do |dozen| - dozen.definition = RubyUnits::Unit.new("12 each") - dozen.aliases = %w[doz dz dozen] + dozen.definition = RubyUnits::Unit.new("12 each") + dozen.aliases = %w[doz dz dozen] dozen.kind = :counting end RubyUnits::Unit.define("gross") do |gross| - gross.definition = RubyUnits::Unit.new("12 dozen") - gross.aliases = %w[gr gross] + gross.definition = RubyUnits::Unit.new("12 dozen") + gross.aliases = %w[gr gross] gross.kind = :counting end RubyUnits::Unit.define("cell") do |cell| - cell.definition = RubyUnits::Unit.new("1 each") - cell.aliases = %w[cells cell] - cell.kind = :counting + cell.definition = RubyUnits::Unit.new("1 each") + cell.aliases = %w[cells cell] + cell.kind = :counting end RubyUnits::Unit.define("base-pair") do |bp| - bp.definition = RubyUnits::Unit.new("1 each") - bp.aliases = %w[bp base-pair] - bp.kind = :counting + bp.definition = RubyUnits::Unit.new("1 each") + bp.aliases = %w[bp base-pair] + bp.kind = :counting end RubyUnits::Unit.define("nucleotide") do |nt| - nt.definition = RubyUnits::Unit.new("1 each") - nt.aliases = %w[nt] - nt.kind = :counting + nt.definition = RubyUnits::Unit.new("1 each") + nt.aliases = %w[nt] + nt.kind = :counting end RubyUnits::Unit.define("molecule") do |molecule| - molecule.definition = RubyUnits::Unit.new("1 each") - molecule.aliases = %w[molecule molecules] - molecule.kind = :counting + molecule.definition = RubyUnits::Unit.new("1 each") + molecule.aliases = %w[molecule molecules] + molecule.kind = :counting end RubyUnits::Unit.define("percent") do |percent| - percent.definition = RubyUnits::Unit.new("1/100") - percent.aliases = %w[% percent] + percent.definition = RubyUnits::Unit.new("1/100") + percent.aliases = %w[% percent] end RubyUnits::Unit.define("ppm") do |ppm| - ppm.definition = RubyUnits::Unit.new(1) / 1_000_000 + ppm.definition = RubyUnits::Unit.new(1) / 1_000_000 end RubyUnits::Unit.define("ppb") do |ppb| - ppb.definition = RubyUnits::Unit.new(1) / 1_000_000_000 + ppb.definition = RubyUnits::Unit.new(1) / 1_000_000_000 end diff --git a/spec/ruby_units/definition_spec.rb b/spec/ruby_units/definition_spec.rb index 927af09..3069cf6 100644 --- a/spec/ruby_units/definition_spec.rb +++ b/spec/ruby_units/definition_spec.rb @@ -5,8 +5,8 @@ describe "Unit::Definition('eV')" do subject do Unit::Definition.new("eV") do |ev| - ev.aliases = %w[eV electron-volt electron_volt] - ev.definition = RubyUnits::Unit.new("1.602E-19 joule") + ev.aliases = %w[eV electron-volt electron_volt] + ev.definition = RubyUnits::Unit.new("1.602E-19 joule") ev.display_name = "electron-volt" end end diff --git a/spec/ruby_units/temperature_spec.rb b/spec/ruby_units/temperature_spec.rb index 6673870..ea23d5f 100644 --- a/spec/ruby_units/temperature_spec.rb +++ b/spec/ruby_units/temperature_spec.rb @@ -27,24 +27,24 @@ after(:all) do # define the temp units back to normal Unit.define("tempK") do |unit| - unit.scalar = 1 + unit.scalar = 1 unit.numerator = %w[] - unit.aliases = %w[tempK] - unit.kind = :temperature + unit.aliases = %w[tempK] + unit.kind = :temperature end Unit.define("tempC") do |tempc| - tempc.definition = RubyUnits::Unit.new("1 tempK") + tempc.definition = RubyUnits::Unit.new("1 tempK") end - temp_convert_factor = Rational(2_501_999_792_983_609, 4_503_599_627_370_496) # approximates 1/1.8 + temp_convert_factor = RubyUnits::Unit::RATIO_5_9 Unit.define("tempF") do |tempf| - tempf.definition = RubyUnits::Unit.new(temp_convert_factor, "tempK") + tempf.definition = RubyUnits::Unit.new(temp_convert_factor, "tempK") end Unit.define("tempR") do |tempr| - tempr.definition = RubyUnits::Unit.new("1 tempF") + tempr.definition = RubyUnits::Unit.new("1 tempF") end end