ruby-measurement 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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