ruby-measurement 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4d9f8dac16cbf7f18dfbebf4f9ed90b4ab1236bf
4
+ data.tar.gz: 18689f648cb2a657e68db270e74442f0eb0aa5ee
5
+ SHA512:
6
+ metadata.gz: 1c83f8edb8c522cbc94b1623b74166bb5afc44c71ceb5f149eb7c11bea352bf6bcbbbdcec1544e39874a80884b3ea30c823978e8f637afa015877676196e484e
7
+ data.tar.gz: c68397ddd27017653b7de555a2ad99eaa3ba00eafdfa8060f9d46fde7636b37e7fa61b96a8000d4cfdd70d0b26a8c3120404c8fa96b34af731eefa10b340614c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## ruby-measurement 1.2.2 (Jul 13, 2014)
2
+
3
+ * Fix `Measurement::Unit#==` to properly compare units. *Matt Huggins*
4
+
5
+ ## ruby-measurement 1.2.1 (Jul 27, 2013)
6
+
7
+ * Implement `Measurement.names` to list all available units. *Daniele Palombo*
8
+
1
9
  ## ruby-measurement 1.2.0 (Mar 16, 2013)
2
10
 
3
11
  * Implement `String#to_measurement`, `String#to_unit`,
@@ -45,7 +45,9 @@ class Measurement
45
45
  end
46
46
 
47
47
  def ==(obj)
48
- obj.kind_of?(self.class) && hash == obj.hash
48
+ obj.kind_of?(self.class) && name == obj.name && aliases == obj.aliases && conversions.all? do |key, proc|
49
+ [-2.5, -1, 0, 1, 2.5].all? { |n| proc.call(n) == obj.conversions[key].call(n) }
50
+ end
49
51
  end
50
52
 
51
53
  def self.define(unit_name, &block)
@@ -1,3 +1,3 @@
1
1
  class Measurement
2
- VERSION = '1.2.1'
2
+ VERSION = '1.2.2'
3
3
  end
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.description = 'Simple gem for calculating and converting measurements'
12
12
  gem.summary = 'Simple gem for calculating and converting measurements'
13
13
  gem.homepage = 'https://github.com/mhuggins/ruby-measurement'
14
+ gem.license = 'MIT'
14
15
 
15
16
  gem.files = `git ls-files`.split($/)
16
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -18,5 +19,5 @@ Gem::Specification.new do |gem|
18
19
  gem.require_path = 'lib'
19
20
 
20
21
  gem.add_development_dependency 'rake'
21
- gem.add_development_dependency 'rspec'
22
+ gem.add_development_dependency 'rspec', '~> 3.0'
22
23
  end
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Numeric do
3
+ RSpec.describe Numeric do
4
4
  describe '#to_measurement' do
5
5
  subject { 20 }
6
- specify { subject.to_measurement.should eq Measurement.new(20) }
6
+ specify { expect(subject.to_measurement).to eq Measurement.new(20) }
7
7
  end
8
8
  end
@@ -1,15 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe String do
3
+ RSpec.describe String do
4
4
  describe '#to_measurement' do
5
5
  describe 'with valid quantity' do
6
6
  subject { '3' }
7
- specify { subject.to_measurement.should eq Measurement.new(3) }
7
+ specify { expect(subject.to_measurement).to eq Measurement.new(3) }
8
8
  end
9
9
 
10
10
  describe 'with valid quantity and unit' do
11
11
  subject { '3 dozen' }
12
- specify { subject.to_measurement.should eq Measurement.new(3, :dozen) }
12
+ specify { expect(subject.to_measurement).to eq Measurement.new(3, :dozen) }
13
13
  end
14
14
 
15
15
  describe 'with valid quantity and invalid unit' do
@@ -26,7 +26,7 @@ describe String do
26
26
  describe '#to_unit' do
27
27
  describe 'with valid unit' do
28
28
  subject { 'dozen' }
29
- specify { subject.to_unit.should eq Measurement::Unit[:dozen] }
29
+ specify { expect(subject.to_unit).to eq Measurement::Unit[:dozen] }
30
30
  end
31
31
 
32
32
  describe 'with invalid unit' do
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Symbol do
3
+ RSpec.describe Symbol do
4
4
  describe '#to_unit' do
5
5
  describe 'with valid unit' do
6
6
  subject { :dozen }
7
- specify { subject.to_unit.should eq Measurement::Unit[:dozen] }
7
+ specify { expect(subject.to_unit).to eq Measurement::Unit[:dozen] }
8
8
  end
9
9
 
10
10
  describe 'with invalid unit' do
@@ -2,68 +2,68 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Measurement do
5
+ RSpec.describe Measurement do
6
6
  describe 'square kilometers' do
7
- subject { Measurement.parse('10 km²') }
7
+ subject { described_class.parse('10 km²') }
8
8
 
9
9
  it 'converts to hectares' do
10
- subject.convert_to(:ha).quantity.should eq 1_000
10
+ expect(subject.convert_to(:ha).quantity).to eq 1_000
11
11
  end
12
12
 
13
13
  it 'converts to ares' do
14
- subject.convert_to(:a).quantity.should eq 100_000
14
+ expect(subject.convert_to(:a).quantity).to eq 100_000
15
15
  end
16
16
 
17
17
  it 'converts to square centimeters' do
18
- subject.convert_to(:cm2).quantity.should eq 100_000_000_000
18
+ expect(subject.convert_to(:cm2).quantity).to eq 100_000_000_000
19
19
  end
20
20
  end
21
21
 
22
22
  describe 'hectares' do
23
- subject { Measurement.parse('10 ha') }
23
+ subject { described_class.parse('10 ha') }
24
24
 
25
25
  it 'converts to square kilometers' do
26
- subject.convert_to(:km2).quantity.should eq 0.1
26
+ expect(subject.convert_to(:km2).quantity).to eq 0.1
27
27
  end
28
28
 
29
29
  it 'converts to ares' do
30
- subject.convert_to(:a).quantity.should eq 1_000
30
+ expect(subject.convert_to(:a).quantity).to eq 1_000
31
31
  end
32
32
 
33
33
  it 'converts to square centimeters' do
34
- subject.convert_to(:cm2).quantity.should eq 1_000_000_000
34
+ expect(subject.convert_to(:cm2).quantity).to eq 1_000_000_000
35
35
  end
36
36
  end
37
37
 
38
38
  describe 'ares' do
39
- subject { Measurement.parse('1000 a') }
39
+ subject { described_class.parse('1000 a') }
40
40
 
41
41
  it 'converts to square kilometers' do
42
- subject.convert_to(:km2).quantity.should eq 0.1
42
+ expect(subject.convert_to(:km2).quantity).to eq 0.1
43
43
  end
44
44
 
45
45
  it 'converts to hectares' do
46
- subject.convert_to(:ha).quantity.should eq 10
46
+ expect(subject.convert_to(:ha).quantity).to eq 10
47
47
  end
48
48
 
49
49
  it 'converts to square centimeters' do
50
- subject.convert_to(:cm2).quantity.should eq 1_000_000_000
50
+ expect(subject.convert_to(:cm2).quantity).to eq 1_000_000_000
51
51
  end
52
52
  end
53
53
 
54
54
  describe 'square centimeters' do
55
- subject { Measurement.parse('10000000000 cm²') }
55
+ subject { described_class.parse('10000000000 cm²') }
56
56
 
57
57
  it 'converts to square kilometers' do
58
- subject.convert_to(:km2).quantity.should eq 1
58
+ expect(subject.convert_to(:km2).quantity).to eq 1
59
59
  end
60
60
 
61
61
  it 'converts to hectares' do
62
- subject.convert_to(:ha).quantity.should eq 100
62
+ expect(subject.convert_to(:ha).quantity).to eq 100
63
63
  end
64
64
 
65
65
  it 'converts to ares' do
66
- subject.convert_to(:a).quantity.should eq 10_000
66
+ expect(subject.convert_to(:a).quantity).to eq 10_000
67
67
  end
68
68
  end
69
69
  end
@@ -2,40 +2,40 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Measurement do
5
+ RSpec.describe Measurement do
6
6
  describe 'cubic meters' do
7
- subject { Measurement.parse('1 m³') }
7
+ subject { described_class.parse('1 m³') }
8
8
 
9
9
  it 'converts to cubic decimeters' do
10
- subject.convert_to(:dm3).quantity.should eq 1_000
10
+ expect(subject.convert_to(:dm3).quantity).to eq 1_000
11
11
  end
12
12
 
13
13
  it 'converts to cubic centimeters' do
14
- subject.convert_to(:cm3).quantity.should eq 1_000_000
14
+ expect(subject.convert_to(:cm3).quantity).to eq 1_000_000
15
15
  end
16
16
  end
17
17
 
18
18
  describe 'cubic decimeters' do
19
- subject { Measurement.parse('1000 dm³') }
19
+ subject { described_class.parse('1000 dm³') }
20
20
 
21
21
  it 'converts to cubic meters' do
22
- subject.convert_to(:m3).quantity.should eq 1
22
+ expect(subject.convert_to(:m3).quantity).to eq 1
23
23
  end
24
24
 
25
25
  it 'converts to cubic centimeters' do
26
- subject.convert_to(:cm3).quantity.should eq 1_000_000
26
+ expect(subject.convert_to(:cm3).quantity).to eq 1_000_000
27
27
  end
28
28
  end
29
29
 
30
30
  describe 'cubic centimeters' do
31
- subject { Measurement.parse('1000000 cm³') }
31
+ subject { described_class.parse('1000000 cm³') }
32
32
 
33
33
  it 'converts to cubic meters' do
34
- subject.convert_to(:m3).quantity.should eq 1
34
+ expect(subject.convert_to(:m3).quantity).to eq 1
35
35
  end
36
36
 
37
37
  it 'converts to cubic decimeters' do
38
- subject.convert_to(:dm3).quantity.should eq 1_000
38
+ expect(subject.convert_to(:dm3).quantity).to eq 1_000
39
39
  end
40
40
  end
41
41
  end
@@ -2,260 +2,260 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Measurement do
5
+ RSpec.describe Measurement do
6
6
  describe 'kilometers' do
7
- subject { Measurement.parse('1 km') }
7
+ subject { described_class.parse('1 km') }
8
8
 
9
9
  it 'converts to hectometers' do
10
- subject.convert_to(:hm).quantity.should eq 10
10
+ expect(subject.convert_to(:hm).quantity).to eq 10
11
11
  end
12
12
 
13
13
  it 'converts to dekameters' do
14
- subject.convert_to(:dam).quantity.should eq 100
14
+ expect(subject.convert_to(:dam).quantity).to eq 100
15
15
  end
16
16
 
17
17
  it 'converts to meters' do
18
- subject.convert_to(:m).quantity.should eq 1_000
18
+ expect(subject.convert_to(:m).quantity).to eq 1_000
19
19
  end
20
20
 
21
21
  it 'converts to decimeters' do
22
- subject.convert_to(:dm).quantity.should eq 10_000
22
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
23
23
  end
24
24
 
25
25
  it 'converts to centimeters' do
26
- subject.convert_to(:cm).quantity.should eq 100_000
26
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
27
27
  end
28
28
 
29
29
  it 'converts to millimeters' do
30
- subject.convert_to(:mm).quantity.should eq 1_000_000
30
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
31
31
  end
32
32
 
33
33
  it 'converts to micrometers' do
34
- subject.convert_to(:µm).quantity.should eq 10_000_000
34
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
35
35
  end
36
36
  end
37
37
 
38
38
  describe 'hectometers' do
39
- subject { Measurement.parse('10 hm') }
39
+ subject { described_class.parse('10 hm') }
40
40
 
41
41
  it 'converts to kilometers' do
42
- subject.convert_to(:km).quantity.should eq 1
42
+ expect(subject.convert_to(:km).quantity).to eq 1
43
43
  end
44
44
 
45
45
  it 'converts to dekameters' do
46
- subject.convert_to(:dam).quantity.should eq 100
46
+ expect(subject.convert_to(:dam).quantity).to eq 100
47
47
  end
48
48
 
49
49
  it 'converts to meters' do
50
- subject.convert_to(:m).quantity.should eq 1_000
50
+ expect(subject.convert_to(:m).quantity).to eq 1_000
51
51
  end
52
52
 
53
53
  it 'converts to decimeters' do
54
- subject.convert_to(:dm).quantity.should eq 10_000
54
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
55
55
  end
56
56
 
57
57
  it 'converts to centimeters' do
58
- subject.convert_to(:cm).quantity.should eq 100_000
58
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
59
59
  end
60
60
 
61
61
  it 'converts to millimeters' do
62
- subject.convert_to(:mm).quantity.should eq 1_000_000
62
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
63
63
  end
64
64
 
65
65
  it 'converts to micrometers' do
66
- subject.convert_to(:µm).quantity.should eq 10_000_000
66
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
67
67
  end
68
68
  end
69
69
 
70
70
  describe 'dekameters' do
71
- subject { Measurement.parse('100 dam') }
71
+ subject { described_class.parse('100 dam') }
72
72
 
73
73
  it 'converts to kilometers' do
74
- subject.convert_to(:km).quantity.should eq 1
74
+ expect(subject.convert_to(:km).quantity).to eq 1
75
75
  end
76
76
 
77
77
  it 'converts to hectometers' do
78
- subject.convert_to(:hm).quantity.should eq 10
78
+ expect(subject.convert_to(:hm).quantity).to eq 10
79
79
  end
80
80
 
81
81
  it 'converts to meters' do
82
- subject.convert_to(:m).quantity.should eq 1_000
82
+ expect(subject.convert_to(:m).quantity).to eq 1_000
83
83
  end
84
84
 
85
85
  it 'converts to decimeters' do
86
- subject.convert_to(:dm).quantity.should eq 10_000
86
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
87
87
  end
88
88
 
89
89
  it 'converts to centimeters' do
90
- subject.convert_to(:cm).quantity.should eq 100_000
90
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
91
91
  end
92
92
 
93
93
  it 'converts to millimeters' do
94
- subject.convert_to(:mm).quantity.should eq 1_000_000
94
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
95
95
  end
96
96
 
97
97
  it 'converts to micrometers' do
98
- subject.convert_to(:µm).quantity.should eq 10_000_000
98
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
99
99
  end
100
100
  end
101
101
 
102
102
  describe 'meters' do
103
- subject { Measurement.parse('1000 m') }
103
+ subject { described_class.parse('1000 m') }
104
104
 
105
105
  it 'converts to kilometers' do
106
- subject.convert_to(:km).quantity.should eq 1
106
+ expect(subject.convert_to(:km).quantity).to eq 1
107
107
  end
108
108
 
109
109
  it 'converts to hectometers' do
110
- subject.convert_to(:hm).quantity.should eq 10
110
+ expect(subject.convert_to(:hm).quantity).to eq 10
111
111
  end
112
112
 
113
113
  it 'converts to dekameters' do
114
- subject.convert_to(:dam).quantity.should eq 100
114
+ expect(subject.convert_to(:dam).quantity).to eq 100
115
115
  end
116
116
 
117
117
  it 'converts to decimeters' do
118
- subject.convert_to(:dm).quantity.should eq 10_000
118
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
119
119
  end
120
120
 
121
121
  it 'converts to centimeters' do
122
- subject.convert_to(:cm).quantity.should eq 100_000
122
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
123
123
  end
124
124
 
125
125
  it 'converts to millimeters' do
126
- subject.convert_to(:mm).quantity.should eq 1_000_000
126
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
127
127
  end
128
128
 
129
129
  it 'converts to micrometers' do
130
- subject.convert_to(:µm).quantity.should eq 10_000_000
130
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
131
131
  end
132
132
  end
133
133
 
134
134
  describe 'decimeters' do
135
- subject { Measurement.parse('10000 dm') }
135
+ subject { described_class.parse('10000 dm') }
136
136
 
137
137
  it 'converts to kilometers' do
138
- subject.convert_to(:km).quantity.should eq 1
138
+ expect(subject.convert_to(:km).quantity).to eq 1
139
139
  end
140
140
 
141
141
  it 'converts to hectometers' do
142
- subject.convert_to(:hm).quantity.should eq 10
142
+ expect(subject.convert_to(:hm).quantity).to eq 10
143
143
  end
144
144
 
145
145
  it 'converts to dekameters' do
146
- subject.convert_to(:dam).quantity.should eq 100
146
+ expect(subject.convert_to(:dam).quantity).to eq 100
147
147
  end
148
148
 
149
149
  it 'converts to meters' do
150
- subject.convert_to(:m).quantity.should eq 1_000
150
+ expect(subject.convert_to(:m).quantity).to eq 1_000
151
151
  end
152
152
 
153
153
  it 'converts to centimeters' do
154
- subject.convert_to(:cm).quantity.should eq 100_000
154
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
155
155
  end
156
156
 
157
157
  it 'converts to millimeters' do
158
- subject.convert_to(:mm).quantity.should eq 1_000_000
158
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
159
159
  end
160
160
 
161
161
  it 'converts to micrometers' do
162
- subject.convert_to(:µm).quantity.should eq 10_000_000
162
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
163
163
  end
164
164
  end
165
165
 
166
166
  describe 'centimeters' do
167
- subject { Measurement.parse('100000 cm') }
167
+ subject { described_class.parse('100000 cm') }
168
168
 
169
169
  it 'converts to kilometers' do
170
- subject.convert_to(:km).quantity.should eq 1
170
+ expect(subject.convert_to(:km).quantity).to eq 1
171
171
  end
172
172
 
173
173
  it 'converts to hectoliters' do
174
- subject.convert_to(:hm).quantity.should eq 10
174
+ expect(subject.convert_to(:hm).quantity).to eq 10
175
175
  end
176
176
 
177
177
  it 'converts to dekameters' do
178
- subject.convert_to(:dam).quantity.should eq 100
178
+ expect(subject.convert_to(:dam).quantity).to eq 100
179
179
  end
180
180
 
181
181
  it 'converts to meters' do
182
- subject.convert_to(:m).quantity.should eq 1_000
182
+ expect(subject.convert_to(:m).quantity).to eq 1_000
183
183
  end
184
184
 
185
185
  it 'converts to decimeters' do
186
- subject.convert_to(:dm).quantity.should eq 10_000
186
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
187
187
  end
188
188
 
189
189
  it 'converts to millimeters' do
190
- subject.convert_to(:mm).quantity.should eq 1_000_000
190
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
191
191
  end
192
192
 
193
193
  it 'converts to micrometers' do
194
- subject.convert_to(:µm).quantity.should eq 10_000_000
194
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
195
195
  end
196
196
  end
197
197
 
198
198
  describe 'millimeters' do
199
- subject { Measurement.parse('1000000 mm') }
199
+ subject { described_class.parse('1000000 mm') }
200
200
 
201
201
  it 'converts to kilometers' do
202
- subject.convert_to(:km).quantity.should eq 1
202
+ expect(subject.convert_to(:km).quantity).to eq 1
203
203
  end
204
204
 
205
205
  it 'converts to hectometers' do
206
- subject.convert_to(:hm).quantity.should eq 10
206
+ expect(subject.convert_to(:hm).quantity).to eq 10
207
207
  end
208
208
 
209
209
  it 'converts to dekameters' do
210
- subject.convert_to(:dam).quantity.should eq 100
210
+ expect(subject.convert_to(:dam).quantity).to eq 100
211
211
  end
212
212
 
213
213
  it 'converts to meters' do
214
- subject.convert_to(:m).quantity.should eq 1_000
214
+ expect(subject.convert_to(:m).quantity).to eq 1_000
215
215
  end
216
216
 
217
217
  it 'converts to decimeters' do
218
- subject.convert_to(:dm).quantity.should eq 10_000
218
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
219
219
  end
220
220
 
221
221
  it 'converts to centimeters' do
222
- subject.convert_to(:cm).quantity.should eq 100_000
222
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
223
223
  end
224
224
 
225
225
  it 'converts to micrometers' do
226
- subject.convert_to(:µm).quantity.should eq 10_000_000
226
+ expect(subject.convert_to(:µm).quantity).to eq 10_000_000
227
227
  end
228
228
  end
229
229
 
230
230
  describe 'micrometers' do
231
- subject { Measurement.parse('10000000 µm') }
231
+ subject { described_class.parse('10000000 µm') }
232
232
 
233
233
  it 'converts to kilometers' do
234
- subject.convert_to(:km).quantity.should eq 1
234
+ expect(subject.convert_to(:km).quantity).to eq 1
235
235
  end
236
236
 
237
237
  it 'converts to hectometers' do
238
- subject.convert_to(:hm).quantity.should eq 10
238
+ expect(subject.convert_to(:hm).quantity).to eq 10
239
239
  end
240
240
 
241
241
  it 'converts to dekameters' do
242
- subject.convert_to(:dam).quantity.should eq 100
242
+ expect(subject.convert_to(:dam).quantity).to eq 100
243
243
  end
244
244
 
245
245
  it 'converts to meters' do
246
- subject.convert_to(:m).quantity.should eq 1_000
246
+ expect(subject.convert_to(:m).quantity).to eq 1_000
247
247
  end
248
248
 
249
249
  it 'converts to decimeters' do
250
- subject.convert_to(:dm).quantity.should eq 10_000
250
+ expect(subject.convert_to(:dm).quantity).to eq 10_000
251
251
  end
252
252
 
253
253
  it 'converts to centimeters' do
254
- subject.convert_to(:cm).quantity.should eq 100_000
254
+ expect(subject.convert_to(:cm).quantity).to eq 100_000
255
255
  end
256
256
 
257
257
  it 'converts to millimeters' do
258
- subject.convert_to(:mm).quantity.should eq 1_000_000
258
+ expect(subject.convert_to(:mm).quantity).to eq 1_000_000
259
259
  end
260
260
  end
261
261
  end