ruby-units 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- =Ruby Units
1
+ = Ruby Units
2
2
 
3
3
  Kevin C. Olbrich, Ph.D.
4
4
 
@@ -8,21 +8,21 @@ http://www.sciwerks.com
8
8
 
9
9
  Project page: http://ruby-units.rubyforge.org/ruby-units
10
10
 
11
- ==Introduction
11
+ == Introduction
12
12
  Many technical applications make use of specialized calculations at some point.
13
13
  Frequently, these calculations require unit conversions to ensure accurate results.
14
14
  Needless to say, this is a pain to properly keep track of, and is prone to numerous errors.
15
15
 
16
- ==Solution
16
+ == Solution
17
17
  The 'Ruby units' gem is designed so simplify the handling of units for scientific calculations.
18
18
  The units of each quantity are specified when a Unit object is created and the Unit class will
19
19
  handle all subsequent conversions and manipulations to ensure an accurate result.
20
20
 
21
- ==Installation:
21
+ == Installation:
22
22
  This package may be installed using:
23
23
  gem install ruby-units
24
24
 
25
- ==Usage:
25
+ == Usage:
26
26
  unit = Unit.new("1") # constant only
27
27
  unit = Unit.new("mm") # unit only (defaults to a value of 1)
28
28
  unit = Unit.new("1 mm") # create a simple unit
@@ -40,17 +40,17 @@ This package may be installed using:
40
40
  unit = '1/4 cup'.unit # Rational number
41
41
  unit = '1+1i mm'.unit # Complex Number
42
42
 
43
- ==Rules:
43
+ == Rules:
44
44
  1. only 1 quantity per unit (with 2 exceptions... 6'5" and '8 lbs 8 oz')
45
45
  2. use SI notation when possible
46
46
  3. avoid using spaces in unit names
47
47
 
48
- ==Unit compatability:
48
+ == Unit compatability:
49
49
  Many methods require that the units of two operands are compatible. Compatible units are those that can be easily converted into each other, such as 'meters' and 'feet'.
50
50
 
51
51
  unit1 =~ unit2 #=> true if units are compatible
52
52
 
53
- ==Unit Math:
53
+ == Unit Math:
54
54
 
55
55
  <b>Method</b>:: <b>Comment</b>
56
56
  Unit#+():: Add. only works if units are compatible
@@ -71,7 +71,7 @@ Unit will coerce other objects into a Unit if used in a formula. This means tha
71
71
 
72
72
  This will work as expected so long as you start the formula with a Unit object.
73
73
 
74
- ==Conversions & comparisons
74
+ == Conversions & comparisons
75
75
 
76
76
  Units can be converted to other units in a couple of ways.
77
77
 
@@ -89,7 +89,7 @@ Units can be converted to other units in a couple of ways.
89
89
 
90
90
  Any object that defines a 'to_unit' method will be automatically coerced to a unit during calculations.
91
91
 
92
- ==Text Output
92
+ == Text Output
93
93
  Units will display themselves nicely based on the preferred abbreviation for the units and prefixes.
94
94
  Since Unit implements a Unit#to_s, all that is needed in most cases is:
95
95
  "#{Unit.new('1 mm')}" #=> "1 mm"
@@ -102,7 +102,7 @@ The to_s also accepts some options.
102
102
  U("100 kg").to_s(:lbs) #=> returns 220 lbs, 7 oz
103
103
 
104
104
 
105
- ==Time Helpers
105
+ == Time Helpers
106
106
 
107
107
  Time, Date, and DateTime objects can have time units added or subtracted.
108
108
 
@@ -129,16 +129,16 @@ Durations may be entered as 'HH:MM:SS, usec' and will be returned in 'hours'.
129
129
 
130
130
  If only one ":" is present, it is interpreted as the separator between hours and minutes.
131
131
 
132
- ==Ranges
132
+ == Ranges
133
133
 
134
134
  [U('0 h')..U('10 h')].each {|x| p x}
135
135
  works so long as the starting point has an integer scalar
136
136
 
137
- ==Math functions
137
+ == Math functions
138
138
  All Trig math functions (sin, cos, sinh, hypot...) can take a unit as their parameter.
139
139
  It will be converted to radians and then used if possible.
140
140
 
141
- ==Temperatures
141
+ == Temperatures
142
142
  Ruby-units makes a distinction between a temperature (which technically is a property) and
143
143
  degrees of temperature (which temperatures are measured in).
144
144
 
data/Rakefile CHANGED
@@ -12,14 +12,13 @@ begin
12
12
  rescue
13
13
  end
14
14
 
15
- Hoe.new('ruby-units', Unit::VERSION) do |p|
15
+ Hoe.spec('ruby-units') do |p|
16
+ p.version = Unit::VERSION
16
17
  p.rubyforge_name = 'ruby-units'
17
- p.summary = %q{A model that performs unit conversions and unit math}
18
+ p.summary = %q{A class that performs unit conversions and unit math}
18
19
  p.email = 'kevin.olbrich+ruby_units@gmail.com'
19
20
  p.url = 'http://rubyforge.org/projects/ruby-units'
20
21
  p.description = "This library handles unit conversions and unit math"
21
22
  p.changes = p.paragraphs_of('CHANGELOG.txt', 0..1).join("\n\n")
22
23
  p.author = 'Kevin Olbrich, Ph.D'
23
- end
24
-
25
- # vim: syntax=Ruby
24
+ end
@@ -33,14 +33,14 @@ require 'parsedate'
33
33
  # To add / override a unit definition, add a code block like this..
34
34
  #
35
35
  # class Unit < Numeric
36
- # UNIT_DEFINITIONS = {
36
+ # @@USER_DEFINITIONS = {
37
37
  # <name>' => [%w{prefered_name synonyms}, conversion_to_base, :classification, %w{<base> <units> <in> <numerator>} , %w{<base> <units> <in> <denominator>} ]
38
38
  # }
39
39
  # end
40
40
  # Unit.setup
41
41
  class Unit < Numeric
42
42
  # pre-generate hashes from unit definitions for performance.
43
- VERSION = '1.1.3'
43
+ VERSION = '1.1.4'
44
44
  @@USER_DEFINITIONS = {}
45
45
  @@PREFIX_VALUES = {}
46
46
  @@PREFIX_MAP = {}
@@ -90,7 +90,7 @@ class Unit < Numeric
90
90
  7959=>:pressure,
91
91
  7962=>:energy,
92
92
  7979=>:viscosity,
93
- 7981=>:force,
93
+ 7961=>:force,
94
94
  7997=>:mass_concentration,
95
95
  8000=>:mass,
96
96
  159999=>:magnetism,
@@ -159,7 +159,6 @@ class Unit < Numeric
159
159
  @is_base = from.is_base?
160
160
  @signature = from.signature
161
161
  @base_scalar = from.base_scalar
162
- @output = from.output rescue nil
163
162
  @unit_name = from.unit_name rescue nil
164
163
  end
165
164
 
@@ -192,7 +191,7 @@ class Unit < Numeric
192
191
  @base_scalar = nil
193
192
  @unit_name = nil
194
193
  @signature = nil
195
- @output = nil
194
+ @output = {}
196
195
  if options.size == 2
197
196
  begin
198
197
  cached = @@cached_units[options[1]] * options[0]
@@ -232,8 +231,10 @@ class Unit < Numeric
232
231
  @scalar = options[0].ajd
233
232
  @numerator = ['<day>']
234
233
  @denominator = UNITY_ARRAY
235
- when "": raise ArgumentError, "No Unit Specified"
236
- when String: parse(options[0])
234
+ when "":
235
+ raise ArgumentError, "No Unit Specified"
236
+ when String:
237
+ parse(options[0])
237
238
  else
238
239
  raise ArgumentError, "Invalid Unit Format"
239
240
  end
@@ -263,6 +264,7 @@ class Unit < Numeric
263
264
  def self.clear_cache
264
265
  @@cached_units = {}
265
266
  @@base_unit_cache = {}
267
+ Unit.new(1)
266
268
  end
267
269
 
268
270
  def self.base_unit_cache
@@ -349,23 +351,33 @@ class Unit < Numeric
349
351
  # output is cached so subsequent calls for the same format will be fast
350
352
  #
351
353
  def to_s(target_units=nil)
352
- out = @output[target_units] rescue nil
354
+ out = @output[target_units]
353
355
  if out
354
356
  return out
355
357
  else
356
358
  case target_units
357
- when :ft:
359
+ when :ft :
358
360
  inches = self.to("in").scalar.to_int
359
361
  out = "#{(inches / 12).truncate}\'#{(inches % 12).round}\""
360
- when :lbs:
362
+ when :lbs :
361
363
  ounces = self.to("oz").scalar.to_int
362
364
  out = "#{(ounces / 16).truncate} lbs, #{(ounces % 16).round} oz"
363
365
  when String
364
- begin #first try a standard format string
365
- target_units =~ /(%[\w\d#+-.]*)*\s*(.+)*/
366
- out = $2 ? self.to($2).to_s($1) : "#{($1 || '%g') % @scalar || 0} #{self.units}".strip
367
- rescue #if that is malformed, try a time string
368
- out = (Time.gm(0) + self).strftime(target_units)
366
+ out = case target_units
367
+ when /(%[-+\.\w\d#]+)\s*(.+)*/ #format string like '%0.2f in'
368
+ begin
369
+ if $2 #unit specified, need to convert
370
+ self.to($2).to_s($1)
371
+ else
372
+ "#{$1 % @scalar} #{$2 || self.units}".strip
373
+ end
374
+ rescue
375
+ (Time.gm(0) + self).strftime(target_units)
376
+ end
377
+ when /(\S+)/ #unit only 'mm' or '1/mm'
378
+ "#{self.to($1).to_s}"
379
+ else #strftotime?
380
+ raise "unhandled case"
369
381
  end
370
382
  else
371
383
  out = case @scalar
@@ -375,7 +387,7 @@ class Unit < Numeric
375
387
  "#{'%g' % @scalar} #{self.units}"
376
388
  end.strip
377
389
  end
378
- @output = {target_units => out}
390
+ @output[target_units] = out
379
391
  return out
380
392
  end
381
393
  end
@@ -785,7 +797,7 @@ class Unit < Numeric
785
797
  # convert a duration to a DateTime. This will work so long as the duration is the duration from the zero date
786
798
  # defined by DateTime
787
799
  def to_datetime
788
- DateTime.new0(self.to('d').scalar)
800
+ DateTime.new!(self.to('d').scalar)
789
801
  end
790
802
 
791
803
  def to_date
@@ -1065,8 +1077,7 @@ class Unit < Numeric
1065
1077
  end
1066
1078
 
1067
1079
  raise( ArgumentError, "'#{passed_unit_string}' Unit not recognized") if unit_string.count('/') > 1
1068
- raise( ArgumentError, "'#{passed_unit_string}' Unit not recognized") if unit_string.scan(/\s\d+\S*/).size > 0
1069
-
1080
+ raise( ArgumentError, "'#{passed_unit_string}' Unit not recognized") if unit_string.scan(/\s[02-9]/).size > 0
1070
1081
  @scalar, top, bottom = unit_string.scan(UNIT_STRING_REGEX)[0] #parse the string into parts
1071
1082
 
1072
1083
  top.scan(TOP_REGEX).each do |item|
@@ -90,7 +90,7 @@ class TestRubyUnits < Test::Unit::TestCase
90
90
  assert_in_delta Time.now + 3600, "1 h".from_now, 1
91
91
  assert_in_delta "1 h".unit + Time.now, "1 h".from_now, 1
92
92
  assert_in_delta Time.now - 3600, "1 h".before_now, 1
93
- assert_in_delta (Time.now.unit - Time.now).unit.scalar, 0, 1
93
+ assert_in_delta((Time.now.unit - Time.now).unit.scalar, 0, 1)
94
94
  assert_equal "60 min", "min".until(Time.now + 3600).to_s
95
95
  assert_equal "01:00", "min".since(Time.now - 3600).to_s("%H:%M")
96
96
  assert_in_delta Time.now, "now".time, 1
@@ -114,8 +114,8 @@ class TestRubyUnits < Test::Unit::TestCase
114
114
  assert_equal Unit.new(Time.now).scalar, 1143910800
115
115
  assert_equal @april_fools.unit.to_time, @april_fools
116
116
  assert_equal Time.in('1 day'), @april_fools + 86400
117
- assert_equal @april_fools_datetime.inspect, "2006-04-01T12:00:00Z"
118
- assert_equal '2453826.5 days'.unit.to_datetime.to_s, "2006-04-01T00:00:00Z"
117
+ assert_equal "2006-04-01T12:00:00+00:00", @april_fools_datetime.inspect
118
+ assert_equal "2006-04-01T00:00:00+00:00", '2453826.5 days'.unit.to_datetime.to_s
119
119
  end
120
120
 
121
121
  def test_string_helpers
@@ -273,12 +273,12 @@ class TestRubyUnits < Test::Unit::TestCase
273
273
  c = '1 in'.unit
274
274
  d = '1 ml'.unit
275
275
 
276
- assert_equal (a+b), b
277
- assert_equal (a+b).units, b.units
278
- assert_equal (b+a), b
279
- assert_equal (b+a).units, b.units
280
- assert_in_delta (b+c).scalar, 12.54, 0.01
281
- assert_equal (b+c).units, 'cm'
276
+ assert_equal((a+b), b)
277
+ assert_equal((a+b).units, b.units)
278
+ assert_equal((b+a), b)
279
+ assert_equal((b+a).units, b.units)
280
+ assert_in_delta((b+c).scalar, 12.54, 0.01)
281
+ assert_equal((b+c).units, 'cm')
282
282
  assert_raises(ArgumentError) {
283
283
  b + d
284
284
  }
@@ -290,12 +290,12 @@ class TestRubyUnits < Test::Unit::TestCase
290
290
  c = '1 in'.unit
291
291
  d = '1 ml'.unit
292
292
 
293
- assert_equal (a-b), -b
294
- assert_equal (a-b).units, b.units
295
- assert_equal (b-a), b
296
- assert_equal (b-a).units, b.units
297
- assert_in_delta (b-c).scalar, 7.46, 0.01
298
- assert_equal (b-c).units, 'cm'
293
+ assert_equal((a-b), -b)
294
+ assert_equal((a-b).units, b.units)
295
+ assert_equal((b-a), b)
296
+ assert_equal((b-a).units, b.units)
297
+ assert_in_delta((b-c).scalar, 7.46, 0.01)
298
+ assert_equal((b-c).units, 'cm')
299
299
  assert_raises(ArgumentError) {
300
300
  b - d
301
301
  }
@@ -482,7 +482,7 @@ class TestRubyUnits < Test::Unit::TestCase
482
482
  unit1 = Unit.new("1 m")
483
483
  unit2 = Unit.new("1 1/m")
484
484
  assert_equal unit2, unit1.inverse
485
- assert_raises (ZeroDivisionError) { 0.unit.inverse }
485
+ assert_raises((ZeroDivisionError)) { 0.unit.inverse }
486
486
  end
487
487
 
488
488
  def test_exponentiate_positive
@@ -527,14 +527,14 @@ class TestRubyUnits < Test::Unit::TestCase
527
527
  unit1 = Unit.new("1.1 mm")
528
528
  unit2 = Unit.new("2 mm")
529
529
  assert_equal unit2, unit1.ceil
530
- assert_equal ('1 mm'.unit / '1 mm'.unit).ceil, 1
530
+ assert_equal(('1 mm'.unit / '1 mm'.unit).ceil, 1)
531
531
  end
532
532
 
533
533
  def test_floor
534
534
  unit1 = Unit.new("1.1 mm")
535
535
  unit2 = Unit.new("1 mm")
536
536
  assert_equal unit2, unit1.floor
537
- assert_equal ('1 mm'.unit / '1 mm'.unit).floor, 1
537
+ assert_equal(('1 mm'.unit / '1 mm'.unit).floor, 1)
538
538
  end
539
539
 
540
540
  def test_to_int
@@ -546,14 +546,14 @@ class TestRubyUnits < Test::Unit::TestCase
546
546
  unit1 = Unit.new("1.1 mm")
547
547
  unit2 = Unit.new("1 mm")
548
548
  assert_equal unit2, unit1.truncate
549
- assert_equal (unit1/unit2).truncate, 1
549
+ assert_equal((unit1/unit2).truncate, 1)
550
550
  end
551
551
 
552
552
  def test_round
553
553
  unit1 = Unit.new("1.1 mm")
554
554
  unit2 = Unit.new("1 mm")
555
555
  assert_equal unit2, unit1.round
556
- assert_equal (unit1/unit2).round, 1
556
+ assert_equal((unit1/unit2).round, 1)
557
557
  end
558
558
 
559
559
  def test_zero?
@@ -601,7 +601,7 @@ class TestRubyUnits < Test::Unit::TestCase
601
601
  assert_equal a+b, '118 tempF'.unit
602
602
  assert_equal b+a, '118 tempF'.unit
603
603
  assert_equal a-b, '82 tempF'.unit
604
- assert_in_delta (a-c).scalar, '50 degF'.unit.scalar, 0.01
604
+ assert_in_delta((a-c).scalar, '50 degF'.unit.scalar, 0.01)
605
605
  assert_equal b+d, '20 degC'.unit
606
606
 
607
607
  assert_raises(ArgumentError) { a * b }
@@ -661,7 +661,8 @@ class TestRubyUnits < Test::Unit::TestCase
661
661
  assert_equal "1 kg*m/s", unit6.to_s
662
662
  unit7= Unit.new("1 1/m")
663
663
  assert_equal "1 1/m", unit7.to_s
664
-
664
+ assert_equal("1.5 mm", Unit.new("1.5 mm").to_s)
665
+ assert_equal("1.5 mm", "#{Unit.new('1.5 mm')}")
665
666
  end
666
667
 
667
668
  def test_to_feet_inches
@@ -791,6 +792,7 @@ class TestRubyUnits < Test::Unit::TestCase
791
792
  end
792
793
 
793
794
  def test_parse
795
+ assert_nothing_raised { "1 1/m".unit }
794
796
  assert_raises(ArgumentError) { "3 s/s/ft".unit }
795
797
  assert_raises(ArgumentError) { "3 s**2|,s**2".unit }
796
798
  assert_raises(ArgumentError) { "3 s**2 4s s**2".unit }
@@ -833,7 +835,7 @@ class TestRubyUnits < Test::Unit::TestCase
833
835
  assert_equal "1:30:30,200".unit, "1.5 hour".unit + '30 sec'.unit + '200 usec'.unit
834
836
  end
835
837
 
836
- def test_coercion
838
+ def test_coercion_2
837
839
  a = Dummy.new
838
840
  b = '1 mm'.unit
839
841
  assert_equal '2 mm'.unit, b + a
@@ -861,13 +863,13 @@ class TestRubyUnits < Test::Unit::TestCase
861
863
  def test_complex
862
864
  assert_equal '1+1i mm'.unit.scalar, Complex(1,1)
863
865
  assert_equal '1+1i'.unit.scalar, Complex(1,1)
864
- assert_raises (RuntimeError) { '1+1i mm'.unit.to_c}
866
+ assert_raises(RuntimeError) { '1+1i mm'.unit.to_c}
865
867
  end
866
868
 
867
869
  def test_atan2
868
870
  assert_equal Math.atan2('1 mm'.unit,'1 mm'.unit), Math.atan2(1,1)
869
- assert_raises (ArgumentError) {Math.atan2('1 mm'.unit, '1 lb'.unit)}
870
- assert_raises (ArgumentError) {Math.atan2('1 mm'.unit, 1)}
871
+ assert_raises(ArgumentError) {Math.atan2('1 mm'.unit, '1 lb'.unit)}
872
+ assert_raises(ArgumentError) {Math.atan2('1 mm'.unit, 1)}
871
873
  end
872
874
 
873
875
  def test_rational_units
@@ -898,6 +900,19 @@ class TestRubyUnits < Test::Unit::TestCase
898
900
  assert_nothing_raised {"" % nil}
899
901
  assert_nothing_raised {"" % false}
900
902
  end
903
+
904
+ def test_to_s_cache
905
+ Unit.clear_cache
906
+ a = Unit.new('1 mm')
907
+ a.to_s # cache the conversion to itself
908
+ b = Unit.new('2 mm')
909
+ assert_equal('2 mm', b.to_s)
910
+ assert_equal('0.001 m', a.to_s('m'))
911
+ assert_equal('0.001 m', a.output['m'])
912
+ end
901
913
 
914
+ def test_version
915
+ assert_equal('1.1.4', Unit::VERSION)
916
+ end
902
917
  end
903
918
 
metadata CHANGED
@@ -1,33 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: ruby-units
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.1.3
7
- date: 2007-12-13 00:00:00 -05:00
8
- summary: A model that performs unit conversions and unit math
9
- require_paths:
10
- - lib
11
- email: kevin.olbrich+ruby_units@gmail.com
12
- homepage: http://rubyforge.org/projects/ruby-units
13
- rubyforge_project: ruby-units
14
- description: This library handles unit conversions and unit math
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 4
9
+ version: 1.1.4
25
10
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
11
  authors:
30
12
  - Kevin Olbrich, Ph.D
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-13 23:00:00 -05:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rubyforge
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 0
30
+ - 4
31
+ version: 2.0.4
32
+ type: :development
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: gemcutter
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 4
44
+ - 1
45
+ version: 0.4.1
46
+ type: :development
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: hoe
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 2
57
+ - 5
58
+ - 0
59
+ version: 2.5.0
60
+ type: :development
61
+ version_requirements: *id003
62
+ description: This library handles unit conversions and unit math
63
+ email: kevin.olbrich+ruby_units@gmail.com
64
+ executables: []
65
+
66
+ extensions: []
67
+
68
+ extra_rdoc_files:
69
+ - CHANGELOG.txt
70
+ - Manifest.txt
71
+ - README.txt
72
+ - LICENSE.txt
31
73
  files:
32
74
  - CHANGELOG.txt
33
75
  - Manifest.txt
@@ -47,29 +89,36 @@ files:
47
89
  - lib/ruby_units/complex.rb
48
90
  - lib/ruby_units/ruby-units.rb
49
91
  - test/test_ruby-units.rb
50
- test_files:
51
- - test/test_ruby-units.rb
92
+ has_rdoc: true
93
+ homepage: http://rubyforge.org/projects/ruby-units
94
+ licenses: []
95
+
96
+ post_install_message:
52
97
  rdoc_options:
53
98
  - --main
54
99
  - README.txt
55
- extra_rdoc_files:
56
- - CHANGELOG.txt
57
- - Manifest.txt
58
- - README.txt
59
- - LICENSE.txt
60
- executables: []
61
-
62
- extensions: []
63
-
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ segments:
114
+ - 0
115
+ version: "0"
64
116
  requirements: []
65
117
 
66
- dependencies:
67
- - !ruby/object:Gem::Dependency
68
- name: hoe
69
- version_requirement:
70
- version_requirements: !ruby/object:Gem::Version::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 1.3.0
75
- version:
118
+ rubyforge_project: ruby-units
119
+ rubygems_version: 1.3.6
120
+ signing_key:
121
+ specification_version: 3
122
+ summary: A class that performs unit conversions and unit math
123
+ test_files:
124
+ - test/test_ruby-units.rb