CHANGELOG.txt
Change Log for Ruby-units
=========================
see GitHub releases (https://github.com/olbrich/ruby-units/releases) for more recent releases. This file will no longer
be updated.
2020-12-29 2.3.2 * Remove Jeweler (see #178) also adds Code of Conduct
* Fix specs related to Complex comparisons (see #213)
* Add support for Ruby 3.0 (also drop support for 2.3 and 2.4) (see #211)
2018-09-26 2.3.1 * Addition and subtraction of unitless values. (see #175)
2018-03-06 2.3.0 * Fix add (+) and subtract (-) for BigDecimal scalars. (see #167)
* Update ruby versions (#163)
* fix: temperature converting rational issue (#164)
2017-12-07 2.2.1 * fix an issue with formatting of rational scalars (see #159)
2017-08-07 2.2.0 * add support for ruby 2.4.1
* drop support for ruby 2.1.0
* remove dependency on mathn (see #157)
2016-12-28 2.1.0 * add support for ruby 2.4.0
* allow configuration for optional separator on output
* Fix issue #105 -- change 'grad' to 'gon'
2015-11-07 2.0.0 * remove support for ruby versions less than 2.0
* remove `.unit` and `.u` from String
* remove `.unit` from Date
* Fix an issue with redefining units that have already been cached
* remove 'U()' and 'u()' constructors
* Fix issue #123 -- Fixes for singular unit parsing
2015-07-16 * Fix issue #129 -- doesn't handle number in the denominator
2015-05-09 * update test harness to use rspec 3
2014-02-21 1.4.5 * Fix issue #98 -- add mcg as a valid unit
2013-07-19 1.4.4 * Fix issue #4 -- .best_prefix method
* Fix issue #60 -- Consider placing Unit in a module
* Fix issue #75 -- Siemens is kind of conductance not resistance
* Fix issue #36 -- Don't require spaces in units
* Fix issue #68 -- ditto
* Fix issue #16 -- ditto
2013-06-11 1.4.3 * Fix issue #70 -- Support passing Time objects to Time.at
* Fix issue #72 -- Remove non-existent RakeFile from gemspec
* Fix issue #71 -- Fix YAML test failure
* Fix issue #49 -- Unit instances constructed using other Unit instances are incompatible within the framework
* Fix issue #61 -- Fix failing case of subtraction losing Units class
* Fix issue #63 -- fixes an issue with to_date on 1.8.7
* Fix issue #64 -- Aliases aren't considered in Unit.defined? method
2012-09-16 1.4.2 * Fix issue #54 -- pluralization of fluid-ounces
* Fix issue #53, 51 -- incorrect definition for gee
* Fix issue #52 -- add support for degree symbol
* Fix issue #50 -- fix conversion to json
2012-05-13 1.4.1 * Fix issue #40 -- Unit parsing truncates invalid portions of the unit
* Fix issue #41 -- initializing with a nil gives unexpected result
2012-02-01 * Fix issue #34 -- Time.at takes more than one parameter
* Fix issue #35 -- 'pt' is ambiguous
2012-01-02 1.4.0 * Fix some definitions that were just wrong (amu, dalton)
* Definition uses name of unit if no aliases provided
* Refactor definition process. New units are immediately available
2011-12-31 * Define standard units in terms of base and other standard units -- more internally consistent
and less prone to round-off errors.
* add 'poundal'
* remove 'wtpercent'
2011-12-30 * Bump version
* Define compound units with base units for consistency
* distinguish between a league and a nautical league
* NOTE: the new unit definition DSL is not backwardly compatible with the old method
(which is now deprecated).
* Fix issue #27
2011-12-18 * Can define a display_name for units (fixes #26)
2011-12-04 * Documentation improvements
* Add DSL for defining/redefining units
2011-11-24 * improve yard documentation
* add 'tbsp' as an alias for tablespoon
2011-10-17 1.3.2 * deprecate some string helper functions (make the gem compatible with rails)
* tighten up some time helper functions so they don't make as many assumptions
* time helpers no longer attempt to convert strings to time/date objects
2011-10-09 * Farads are not a base unit
* CFM added to default units
* multi specs run against ruby-1.9.3
* internally change Unit#to to Unit#convert_to, which is the preferred form
2011-04-23 1.3.0.a * Some internal restructuring
* Implement specs for core behaviors
* fixed several bugs found by specs
* implemented a few new methods for completeness
* specs run against 1.8.7, 1.9.2-head, jruby, and rubinius(rbx) using rvm
1.2.0 * Release 1.2.0 series
2010-11-07 1.2.0.a * a bunch of fixes to make ruby-units ruby 1.9 compatible
(ruby 1.9.3dev (2010-11-07 trunk 29711) [i386-darwin9.8.0])
2010-03-16 1.1.5 * another bugfix, and update url to point to github
2010-03-15 1.1.4 * fixed a couple of outstanding bugs
2007-12-13 1.1.3 * fixed a minor bug with string %
2007-12-12 1.1.2 * fixed a bug with format strings
* detect if ruby 1.8.6 is installed and use its' to_date function
2007-07-14 1.1.1 * fixed bug that would prevent creating '<pound-mass>' units, which
prevented rounding from working
* tests do not fail if Uncertain gem is not installed, you just get an
annoying warning message
2007-01-28 1.1.0 * completely revamped the temperature handling system (see README)
* fixed some spelling errors in some units
* fixed to_datetime and to_date to convert durations to datetimes and dates'
2007-01-24 1.0.2 * Minor changes in the way powers are calculated to support Uncertain
numbers better.
* Fixed parsing bug with Uncertain Numbers
* added resolution / typography units (pixels, points, pica)
Note that 'pt' means 'pints' and not 'points'
* added some pressure units ('inHg' & 'inH2O')
* changed default abbreviation of 'knots' to 'kt'
* Changed directory layout
* fixed a minor bug with Time.to_date so comparisons work properly
2007-01-17 1.0.1 * Force units are now defined correctly.
2007-01-12 1.0.0 * Improved handling of complex numbers. Now you can specify
'1+1i mm'.unit to get a complex unit.
* Taking the root of a negative unit will give you a complex unit
* fixed unary minus to work again
* Math.hypot now takes units. Both parameters must be the compatible
units or it will assert. Units will be converted to a common base
before use.
* Can now specify units in rational numbers, i.e., '1/4 cup'.unit
* Seems like a good time to move to 1.0 status
2006-12-15 0.3.9 * forgot to increment the version in the gem file..ooops.
2006-12-15 0.3.8 * Any object that supports a 'to_unit' method will now be
automatically coerced to a unit during math operations.
2006-12-14 0.3.7 * improved handling of percents and added a 'wt%' unit
equivalent to 1 g/dl.
* Improved handling for units with non-alphanumeric names
(like ' for feet, # for pound)
* Now you can enter durations as "HH:MM:SS, usec" or
"HH:MM:SS:usec"
2006-12-05 0.3.6 * Fixed bug where (unit/unit).ceil would fail
2006-11-20 0.3.5 * Minor bug fixes
* to_int now coerces the result to an actual Integer,
but only works properly for unitless Units.
2006-10-27 0.3.4 * Fixed a few more parsing bugs so that it will properly
complain about malformed units.
* Fixed a bug that prevents proper use of percents
* several minor tweaks
* some improved Date and DateTime handling
* can convert between Date, DateTime, and Time objects
* Time math will now return a DateTime if it goes out of
range.
2006-10-03 0.3.3 * Apparently I can't do math late at night.
Fixed a bug that would cause problems when adding
or subtracting units to a unit with a zero scalar.
* Date and DateTime objects can be converted to 'units'
2006-10-03 0.3.2 * More minor bug fixes
(now fixes a minor name collision with rails)
2006-10-02 0.3.1 * minor bug fixes
2006-10-02 0.3.0 * Performance enhanced by caching results of many
functions (Thanks to Kurt Stephens for pushing this.)
* Throws an exception if the unit is not recognized
* units can now identify what 'kind' they are
(:length, :mass, etc..)
* New constructors:
Unit(1,"mm")
Unit(1,"mm/s")
Unit(1,"mm","s")
2006-09-22 0.2.3 * added support for date/time parsing with the Chronic gem
parsing will use Chronic if it is loaded
* allows Date / Time / DateTime conversions
* better test coverage
* The 'string'.to_time returns a Time object
* 'string'.to_datetime returns a DateTime object
* 'string'.time returns a Time object or a DateTime if the
Time object fails
* 'string'.datetime returns a DateTime or a Time if the
DateTime fails
2006-09-19 0.2.2 * tweaked temperature handling a bit. Now enter
temperatures like this:
'0 tempC'.unit #=> 273.15 degK
They will always be converted to kelvin to avoid
problems when temperatures are used in equations.
* added Time.in("5 min")
* added Unit.to_unit to simplify some calls
2006-09-18 0.2.1 * Trig math functions (sin, cos, tan, sinh, cosh, tanh)
accept units that can be converted to radians
Math.sin("90 deg".unit) => 1.0
* Date and DateTime can be offset by a time unit
(Date.today + "1 day".unit) => 2006-09-19
Does not work with months since they aren't a consistent
size
* Tweaked time usage a bit
Time.now + "1 hr".unit => Mon Sep 18 11:51:29 EDT 2006
* can output time in 'hh:mm:ss' format by using
'unit.to_s(:time)'
* added time helper methods
ago,
since(Time/DateTime),
until(Time/DateTime),
from(Time/DateTime),
before(Time/DateTime), and
after(Time/DateTime)
* Time helpers also work on strings. In this case they
are first converted to units
'5 min'.from_now
'1 week'.ago
'min'.since(time)
'min'.until(time)
'1 day'.from()
* Can pass Strings to time helpers and they will be parsed
with ParseDate
* Fixed most parsing bugs (I think)
* Can pass a strftime format string to to_s to format time
output
* can use U'1 mm' or '1 mm'.u to specify units now
2006-09-17 * can now use the '%' format specifier like
'%0.2f' % '1 mm'.unit #=> '1.00 mm'
* works nicely with time now.
'1 week'.unit + Time.now => 1.159e+09 s
Time.at('1.159e+09 s'.unit)
=> Sat Sep 23 04:26:40 EDT 2006
"1.159e9 s".unit.time
=> Sat Sep 23 04:26:40 EDT 2006
* Time.now.unit => 1.159e9 s
* works well with 'Uncertain' numerics
(www.rubyforge.org/projects/uncertain)
* Improved parsing
2006-08-28 0.2.0 * Added 'ruby_unit.rb' file so that requires will still
work if the wrong name is used
* Added 'to' as an alias to '>>' so conversions can be
done as '1 m'.unit.to('1 cm')
* Added ability to convert temperatures to absolute values
using the following syntax:
'37 degC'.unit.to('tempF') #=> '98.6 degF'.unit
* Tweaked abbreviations a bit. 'ton' is now 'tn' instead
of 't'. It was causing parse collisions with 'atm'.
* fixed a bug in term elimination routine
* fixed a bug in parsing of powers, and added support for
'm**2' format
* Added support for taking roots of units. Just
exponentiate with a fraction (0.5, 1.0/3, 0.25)
* renamed 'quantity' to 'scalar'
* any type of Numeric can be used to initialize a Unit,
although this can't really be done with a string
* Units can not be forced to a float using to_f unless
they are unitless. This prevents some math functions
from forcing the conversion. To get the scalar, just
use 'unit.scalar'
* 'inspect' returns string representation
* better edge-case detection with math functions.
"0 mm".unit**-1 now throws a ZeroDivisionError exception
* Ranges can make a series of units, so long as the end
points have integer scalars.
* Fixed a parsing bug with feet/pounds and scientific
numbers
2006-08-22 0.1.1 * Added new format option "1 mm".to_unit("in") now
converts the result to the indicated units
* Fixed some naming issues so that the gem name matches
the require name.
* Added CHANGELOG
* Improved test coverage (100% code coverage via RCov)
* fixed a bug that prevented units with a prefix in the
denominator from converting properly
* can use .unit method on a string to create a new unit
object
* can now coerce or define units from arrays, strings,
numerics.
"1 mm".unit + [1, 'mm'] === "2 mm".unit
[1,'mm','s'].unit === "1 mm/s".unit
2.5.unit === "2.5".unit
* Added instructions on how to add custom units
2006-08-22 0.1.0 * Initial Release