lib/ruby_units/unit_definitions/prefix.rb
# frozen_string_literal: true
{
"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],
"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],
"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)],
"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)],
"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)]
}.each do |name, definition|
RubyUnits::Unit.define(name) do |unit|
aliases, scalar = definition
unit.aliases = aliases
unit.scalar = scalar
unit.kind = :prefix
end
end