Skip to content

Commit 7797209

Browse files
committed
Update rspec syntax, and fix unit equality test
1 parent a94584c commit 7797209

File tree

18 files changed

+594
-592
lines changed

18 files changed

+594
-592
lines changed

lib/ruby-measurement/unit.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ def to_s
4545
end
4646

4747
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
4951
end
5052

5153
def self.define(unit_name, &block)

ruby-measurement.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
1919
gem.require_path = 'lib'
2020

2121
gem.add_development_dependency 'rake'
22-
gem.add_development_dependency 'rspec'
22+
gem.add_development_dependency 'rspec', '~> 3.0'
2323
end
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
require 'spec_helper'
22

3-
describe Numeric do
3+
RSpec.describe Numeric do
44
describe '#to_measurement' do
55
subject { 20 }
6-
specify { subject.to_measurement.should eq Measurement.new(20) }
6+
specify { expect(subject.to_measurement).to eq Measurement.new(20) }
77
end
88
end

spec/ruby-measurement/core_ext/string_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
require 'spec_helper'
22

3-
describe String do
3+
RSpec.describe String do
44
describe '#to_measurement' do
55
describe 'with valid quantity' do
66
subject { '3' }
7-
specify { subject.to_measurement.should eq Measurement.new(3) }
7+
specify { expect(subject.to_measurement).to eq Measurement.new(3) }
88
end
99

1010
describe 'with valid quantity and unit' do
1111
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) }
1313
end
1414

1515
describe 'with valid quantity and invalid unit' do
@@ -26,7 +26,7 @@
2626
describe '#to_unit' do
2727
describe 'with valid unit' do
2828
subject { 'dozen' }
29-
specify { subject.to_unit.should eq Measurement::Unit[:dozen] }
29+
specify { expect(subject.to_unit).to eq Measurement::Unit[:dozen] }
3030
end
3131

3232
describe 'with invalid unit' do

spec/ruby-measurement/core_ext/symbol_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
require 'spec_helper'
22

3-
describe Symbol do
3+
RSpec.describe Symbol do
44
describe '#to_unit' do
55
describe 'with valid unit' do
66
subject { :dozen }
7-
specify { subject.to_unit.should eq Measurement::Unit[:dozen] }
7+
specify { expect(subject.to_unit).to eq Measurement::Unit[:dozen] }
88
end
99

1010
describe 'with invalid unit' do

spec/ruby-measurement/definitions/metric/area_spec.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,68 @@
22

33
require 'spec_helper'
44

5-
describe Measurement do
5+
RSpec.describe Measurement do
66
describe 'square kilometers' do
7-
subject { Measurement.parse('10 km²') }
7+
subject { described_class.parse('10 km²') }
88

99
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
1111
end
1212

1313
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
1515
end
1616

1717
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
1919
end
2020
end
2121

2222
describe 'hectares' do
23-
subject { Measurement.parse('10 ha') }
23+
subject { described_class.parse('10 ha') }
2424

2525
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
2727
end
2828

2929
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
3131
end
3232

3333
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
3535
end
3636
end
3737

3838
describe 'ares' do
39-
subject { Measurement.parse('1000 a') }
39+
subject { described_class.parse('1000 a') }
4040

4141
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
4343
end
4444

4545
it 'converts to hectares' do
46-
subject.convert_to(:ha).quantity.should eq 10
46+
expect(subject.convert_to(:ha).quantity).to eq 10
4747
end
4848

4949
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
5151
end
5252
end
5353

5454
describe 'square centimeters' do
55-
subject { Measurement.parse('10000000000 cm²') }
55+
subject { described_class.parse('10000000000 cm²') }
5656

5757
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
5959
end
6060

6161
it 'converts to hectares' do
62-
subject.convert_to(:ha).quantity.should eq 100
62+
expect(subject.convert_to(:ha).quantity).to eq 100
6363
end
6464

6565
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
6767
end
6868
end
6969
end

spec/ruby-measurement/definitions/metric/capacity_spec.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,40 @@
22

33
require 'spec_helper'
44

5-
describe Measurement do
5+
RSpec.describe Measurement do
66
describe 'cubic meters' do
7-
subject { Measurement.parse('1 m³') }
7+
subject { described_class.parse('1 m³') }
88

99
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
1111
end
1212

1313
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
1515
end
1616
end
1717

1818
describe 'cubic decimeters' do
19-
subject { Measurement.parse('1000 dm³') }
19+
subject { described_class.parse('1000 dm³') }
2020

2121
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
2323
end
2424

2525
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
2727
end
2828
end
2929

3030
describe 'cubic centimeters' do
31-
subject { Measurement.parse('1000000 cm³') }
31+
subject { described_class.parse('1000000 cm³') }
3232

3333
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
3535
end
3636

3737
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
3939
end
4040
end
4141
end

0 commit comments

Comments
 (0)