Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 213 lines (190 sloc) 11.869 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
Change Log for Ruby-units
=========================
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
Something went wrong with that request. Please try again.