forked from olbrich/ruby-units
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
202 lines (173 loc) · 10.5 KB
/
CHANGELOG.txt
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
Change Log for Ruby-units
=========================
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