mixlib-versioning 1.1.0 → 1.2.1

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.expeditor/config.yml +14 -0
  3. data/.expeditor/update_version.sh +9 -0
  4. data/.github/CODEOWNERS +3 -0
  5. data/.travis.yml +20 -19
  6. data/CHANGELOG.md +21 -7
  7. data/Gemfile +4 -4
  8. data/README.md +48 -29
  9. data/Rakefile +20 -6
  10. data/VERSION +1 -0
  11. data/lib/mixlib/versioning.rb +10 -8
  12. data/lib/mixlib/versioning/format.rb +25 -22
  13. data/lib/mixlib/versioning/format/git_describe.rb +1 -1
  14. data/lib/mixlib/versioning/format/opscode_semver.rb +3 -3
  15. data/lib/mixlib/versioning/format/partial_semver.rb +62 -0
  16. data/lib/mixlib/versioning/format/rubygems.rb +9 -3
  17. data/lib/mixlib/versioning/format/semver.rb +1 -1
  18. data/lib/mixlib/versioning/version.rb +1 -1
  19. data/mixlib-versioning.gemspec +14 -14
  20. data/spec/mixlib/versioning/format/git_describe_spec.rb +51 -51
  21. data/spec/mixlib/versioning/format/opscode_semver_spec.rb +43 -43
  22. data/spec/mixlib/versioning/format/partial_semver_spec.rb +121 -0
  23. data/spec/mixlib/versioning/format/rubygems_spec.rb +40 -40
  24. data/spec/mixlib/versioning/format/semver_spec.rb +31 -31
  25. data/spec/mixlib/versioning/format_spec.rb +39 -12
  26. data/spec/mixlib/versioning/versioning_spec.rb +100 -100
  27. data/spec/spec_helper.rb +5 -6
  28. data/spec/support/shared_examples/basic_semver.rb +7 -7
  29. data/spec/support/shared_examples/behaviors/comparable.rb +14 -14
  30. data/spec/support/shared_examples/behaviors/comparable_types.rb +56 -0
  31. data/spec/support/shared_examples/behaviors/filterable.rb +11 -11
  32. data/spec/support/shared_examples/behaviors/parses_valid_version_strings.rb +1 -1
  33. data/spec/support/shared_examples/behaviors/rejects_invalid_version_strings.rb +1 -1
  34. data/spec/support/shared_examples/behaviors/serializable.rb +7 -7
  35. data/spec/support/shared_examples/behaviors/sortable.rb +9 -9
  36. data/spec/support/shared_examples/semver.rb +54 -54
  37. metadata +25 -18
  38. data/.rubocop.yml +0 -22
@@ -16,33 +16,33 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require 'spec_helper'
19
+ require "spec_helper"
20
20
 
21
21
  describe Mixlib::Versioning do
22
22
  subject { described_class }
23
23
 
24
- let(:version_string) { '11.0.0' }
24
+ let(:version_string) { "11.0.0" }
25
25
 
26
- describe '.parse' do
27
- describe 'parsing when format type is specified' do
26
+ describe ".parse" do
27
+ describe "parsing when format type is specified" do
28
28
  {
29
- '11.0.8' => {
29
+ "11.0.8" => {
30
30
  format_type: :semver,
31
31
  expected_format: Mixlib::Versioning::Format::SemVer,
32
32
  },
33
- '11.1.1' => {
33
+ "11.1.1" => {
34
34
  format_type: :rubygems,
35
35
  expected_format: Mixlib::Versioning::Format::Rubygems,
36
36
  },
37
- '11.1.1.alpha.1' => {
37
+ "11.1.1.alpha.1" => {
38
38
  format_type: :rubygems,
39
39
  expected_format: Mixlib::Versioning::Format::Rubygems,
40
40
  },
41
- '11.1.1-alpha.1' => {
41
+ "11.1.1-alpha.1" => {
42
42
  format_type: :opscode_semver,
43
43
  expected_format: Mixlib::Versioning::Format::OpscodeSemVer,
44
44
  },
45
- '11.1.1-rc.2' => {
45
+ "11.1.1-rc.2" => {
46
46
  format_type: :opscode_semver,
47
47
  expected_format: Mixlib::Versioning::Format::SemVer,
48
48
  },
@@ -59,21 +59,21 @@ describe Mixlib::Versioning do
59
59
  context "format type as a: #{format_type.class}" do
60
60
  it "parses version string as: #{options[:expected_format]}" do
61
61
  result = subject.parse(version_string, format_type)
62
- result.should be_a(expected_format)
62
+ expect(result).to be_a(expected_format)
63
63
  end # it
64
64
  end # context
65
65
  end # each
66
66
  end # context
67
67
  end # each_pair
68
68
 
69
- describe 'invalid format type specified' do
69
+ describe "invalid format type specified" do
70
70
  [
71
71
  :poop,
72
- 'poop',
72
+ "poop",
73
73
  Mixlib::Versioning,
74
74
  ].each do |invalid_format_type|
75
75
  context "invalid format as a: #{invalid_format_type.class}" do
76
- it 'raises a Mixlib::Versioning::UnknownFormatError' do
76
+ it "raises a Mixlib::Versioning::UnknownFormatError" do
77
77
  expect { subject.parse(version_string, invalid_format_type) }.to raise_error(Mixlib::Versioning::UnknownFormatError)
78
78
  end # it
79
79
  end # context
@@ -81,89 +81,89 @@ describe Mixlib::Versioning do
81
81
  end # describe
82
82
  end # describe
83
83
 
84
- describe 'parsing with automatic format detection' do
84
+ describe "parsing with automatic format detection" do
85
85
  {
86
- '11.0.8' => Mixlib::Versioning::Format::SemVer,
87
- '11.0.8-1' => Mixlib::Versioning::Format::SemVer,
88
- '11.0.8.rc.1' => Mixlib::Versioning::Format::Rubygems,
89
- '11.0.8.rc.1-1' => Mixlib::Versioning::Format::Rubygems,
90
- '11.0.8-rc.1' => Mixlib::Versioning::Format::OpscodeSemVer,
86
+ "11.0.8" => Mixlib::Versioning::Format::SemVer,
87
+ "11.0.8-1" => Mixlib::Versioning::Format::SemVer,
88
+ "11.0.8.rc.1" => Mixlib::Versioning::Format::Rubygems,
89
+ "11.0.8.rc.1-1" => Mixlib::Versioning::Format::Rubygems,
90
+ "11.0.8-rc.1" => Mixlib::Versioning::Format::OpscodeSemVer,
91
91
 
92
- '10.18.2' => Mixlib::Versioning::Format::SemVer,
93
- '10.18.2-poop' => Mixlib::Versioning::Format::SemVer,
94
- '10.18.2.poop' => Mixlib::Versioning::Format::Rubygems,
95
- '10.18.2.poop-1' => Mixlib::Versioning::Format::Rubygems,
92
+ "10.18.2" => Mixlib::Versioning::Format::SemVer,
93
+ "10.18.2-poop" => Mixlib::Versioning::Format::SemVer,
94
+ "10.18.2.poop" => Mixlib::Versioning::Format::Rubygems,
95
+ "10.18.2.poop-1" => Mixlib::Versioning::Format::Rubygems,
96
96
 
97
- '12.1.1+20130311134422' => Mixlib::Versioning::Format::OpscodeSemVer,
98
- '12.1.1-rc.3+20130311134422' => Mixlib::Versioning::Format::OpscodeSemVer,
99
- '12.1.1+20130308110833.git.2.94a1dde' => Mixlib::Versioning::Format::OpscodeSemVer,
97
+ "12.1.1+20130311134422" => Mixlib::Versioning::Format::OpscodeSemVer,
98
+ "12.1.1-rc.3+20130311134422" => Mixlib::Versioning::Format::OpscodeSemVer,
99
+ "12.1.1+20130308110833.git.2.94a1dde" => Mixlib::Versioning::Format::OpscodeSemVer,
100
100
 
101
- '10.16.2-49-g21353f0' => Mixlib::Versioning::Format::GitDescribe,
102
- '10.16.2-49-g21353f0-1' => Mixlib::Versioning::Format::GitDescribe,
103
- '10.16.2.rc.2-49-g21353f0' => Mixlib::Versioning::Format::GitDescribe,
104
- '10.16.2-rc.2-49-g21353f0' => Mixlib::Versioning::Format::GitDescribe,
101
+ "10.16.2-49-g21353f0" => Mixlib::Versioning::Format::GitDescribe,
102
+ "10.16.2-49-g21353f0-1" => Mixlib::Versioning::Format::GitDescribe,
103
+ "10.16.2.rc.2-49-g21353f0" => Mixlib::Versioning::Format::GitDescribe,
104
+ "10.16.2-rc.2-49-g21353f0" => Mixlib::Versioning::Format::GitDescribe,
105
105
  }.each_pair do |version_string, expected_format|
106
106
  context version_string do
107
107
  let(:version_string) { version_string }
108
108
  it "parses version string as: #{expected_format}" do
109
- subject.parse(version_string).should be_a(expected_format)
109
+ expect(subject.parse(version_string)).to be_a(expected_format)
110
110
  end # it
111
111
  end # context
112
112
  end # each_pair
113
113
 
114
- describe 'version_string cannot be parsed' do
115
- let(:version_string) { 'A.B.C' }
116
- it 'returns nil' do
117
- subject.parse(version_string).should be_nil
114
+ describe "version_string cannot be parsed" do
115
+ let(:version_string) { "A.B.C" }
116
+ it "returns nil" do
117
+ expect(subject.parse(version_string)).to be_nil
118
118
  end
119
119
  end
120
120
  end # describe "parsing with automatic format detection"
121
121
 
122
- describe 'parsing an Mixlib::Versioning::Format object' do
123
- it 'returns the same object' do
122
+ describe "parsing an Mixlib::Versioning::Format object" do
123
+ it "returns the same object" do
124
124
  v = Mixlib::Versioning.parse(version_string)
125
125
  result = subject.parse(v)
126
- v.should be result
126
+ expect(v).to be result
127
127
  end
128
128
  end
129
129
 
130
- describe 'when formats are given' do
131
- context 'when the format is not in the list' do
132
- let(:version_string) { '10.16.2-rc.2-49-g21353f0' }
133
- it 'returns nil when the array contains a Mixlib::Versioning::Format' do
134
- subject.parse(version_string, [Mixlib::Versioning::Format::Rubygems]).should be_nil
130
+ describe "when formats are given" do
131
+ context "when the format is not in the list" do
132
+ let(:version_string) { "10.16.2-rc.2-49-g21353f0" }
133
+ it "returns nil when the array contains a Mixlib::Versioning::Format" do
134
+ expect(subject.parse(version_string, [Mixlib::Versioning::Format::Rubygems])).to be_nil
135
135
  end
136
136
 
137
- it 'returns nil when the array contains a string' do
138
- subject.parse(version_string, ['rubygems']).should be_nil
137
+ it "returns nil when the array contains a string" do
138
+ expect(subject.parse(version_string, ["rubygems"])).to be_nil
139
139
  end
140
140
 
141
- it 'returns nil when the array contains a symbol' do
142
- subject.parse(version_string, [:rubygems]).should be_nil
141
+ it "returns nil when the array contains a symbol" do
142
+ expect(subject.parse(version_string, [:rubygems])).to be_nil
143
143
  end
144
144
  end
145
145
 
146
- context 'when the format is in the list' do
147
- let(:version_string) { '10.16.2-rc.2-49-g21353f0' }
146
+ context "when the format is in the list" do
147
+ let(:version_string) { "10.16.2-rc.2-49-g21353f0" }
148
148
  let(:expected_format) { Mixlib::Versioning::Format::GitDescribe }
149
- it 'returns nil when the array contains a Mixlib::Versioning::Format' do
150
- subject.parse(version_string, [expected_format]).should be_a(expected_format)
149
+ it "returns nil when the array contains a Mixlib::Versioning::Format" do
150
+ expect(subject.parse(version_string, [expected_format])).to be_a(expected_format)
151
151
  end
152
152
 
153
- it 'returns nil when the array contains a string' do
154
- subject.parse(version_string, ['git_describe']).should be_a(expected_format)
153
+ it "returns nil when the array contains a string" do
154
+ expect(subject.parse(version_string, ["git_describe"])).to be_a(expected_format)
155
155
  end
156
156
 
157
- it 'returns nil when the array contains a symbol' do
158
- subject.parse(version_string, [:git_describe]).should be_a(expected_format)
157
+ it "returns nil when the array contains a symbol" do
158
+ expect(subject.parse(version_string, [:git_describe])).to be_a(expected_format)
159
159
  end
160
160
  end
161
161
  end
162
162
  end # describe .parse
163
163
 
164
- describe '.find_target_version' do
164
+ describe ".find_target_version" do
165
165
  let(:all_versions) do
166
- %w(
166
+ %w{
167
167
  11.0.0-beta.1
168
168
  11.0.0-rc.1
169
169
  11.0.0
@@ -172,7 +172,7 @@ describe Mixlib::Versioning do
172
172
  11.0.2-alpha.0
173
173
  11.0.2-alpha.0+2013041116332
174
174
  11.0.2
175
- )
175
+ }
176
176
  end
177
177
  let(:filter_version) { nil }
178
178
  let(:use_prerelease_versions) { false }
@@ -182,99 +182,99 @@ describe Mixlib::Versioning do
182
182
  all_versions,
183
183
  filter_version,
184
184
  use_prerelease_versions,
185
- use_build_versions,
185
+ use_build_versions
186
186
  )
187
187
  end
188
188
 
189
189
  {
190
190
  nil => {
191
- releases_only: '11.0.2',
192
- prerelease_versions: '11.0.2-alpha.0',
193
- build_versions: '11.0.1+2013031116332',
194
- prerelease_and_build_versions: '11.0.2-alpha.0+2013041116332',
191
+ releases_only: "11.0.2",
192
+ prerelease_versions: "11.0.2-alpha.0",
193
+ build_versions: "11.0.1+2013031116332",
194
+ prerelease_and_build_versions: "11.0.2-alpha.0+2013041116332",
195
195
  },
196
- '11.0.0' => {
197
- releases_only: '11.0.0',
198
- prerelease_versions: '11.0.0-rc.1',
196
+ "11.0.0" => {
197
+ releases_only: "11.0.0",
198
+ prerelease_versions: "11.0.0-rc.1",
199
199
  build_versions: nil,
200
200
  prerelease_and_build_versions: nil,
201
201
  },
202
- '11.0.2' => {
203
- releases_only: '11.0.2',
204
- prerelease_versions: '11.0.2-alpha.0',
202
+ "11.0.2" => {
203
+ releases_only: "11.0.2",
204
+ prerelease_versions: "11.0.2-alpha.0",
205
205
  build_versions: nil,
206
- prerelease_and_build_versions: '11.0.2-alpha.0+2013041116332',
206
+ prerelease_and_build_versions: "11.0.2-alpha.0+2013041116332",
207
207
  },
208
- '11.0.2' => {
209
- releases_only: '11.0.2',
210
- prerelease_versions: '11.0.2-alpha.0',
208
+ "11.0.2" => { # rubocop: disable Lint/DuplicatedKey
209
+ releases_only: "11.0.2",
210
+ prerelease_versions: "11.0.2-alpha.0",
211
211
  build_versions: nil,
212
- prerelease_and_build_versions: '11.0.2-alpha.0+2013041116332',
212
+ prerelease_and_build_versions: "11.0.2-alpha.0+2013041116332",
213
213
  },
214
- '11.0.2-alpha.0' => {
215
- releases_only: '11.0.2-alpha.0',
216
- prerelease_versions: '11.0.2-alpha.0',
217
- build_versions: '11.0.2-alpha.0+2013041116332',
218
- prerelease_and_build_versions: '11.0.2-alpha.0+2013041116332',
214
+ "11.0.2-alpha.0" => {
215
+ releases_only: "11.0.2-alpha.0",
216
+ prerelease_versions: "11.0.2-alpha.0",
217
+ build_versions: "11.0.2-alpha.0+2013041116332",
218
+ prerelease_and_build_versions: "11.0.2-alpha.0+2013041116332",
219
219
  },
220
220
  }.each_pair do |filter_version, options|
221
221
  context "filter version of: #{filter_version}" do
222
222
  let(:filter_version) { filter_version }
223
223
  let(:expected_version) { options[:releases_only] }
224
224
 
225
- it 'finds the most recent release version' do
226
- subject_find.should eq Mixlib::Versioning.parse(expected_version)
225
+ it "finds the most recent release version" do
226
+ expect(subject_find).to eq Mixlib::Versioning.parse(expected_version)
227
227
  end
228
228
 
229
- context 'include pre-release versions' do
229
+ context "include pre-release versions" do
230
230
  let(:use_prerelease_versions) { true }
231
231
  let(:expected_version) { options[:prerelease_versions] }
232
232
 
233
- it 'finds the most recent pre-release version' do
234
- subject_find.should eq Mixlib::Versioning.parse(expected_version)
233
+ it "finds the most recent pre-release version" do
234
+ expect(subject_find).to eq Mixlib::Versioning.parse(expected_version)
235
235
  end # it
236
236
  end # context
237
237
 
238
- context 'include build versions' do
238
+ context "include build versions" do
239
239
  let(:use_build_versions) { true }
240
240
  let(:expected_version) { options[:build_versions] }
241
241
 
242
- it 'finds the most recent build version' do
243
- subject_find.should eq Mixlib::Versioning.parse(expected_version)
242
+ it "finds the most recent build version" do
243
+ expect(subject_find).to eq Mixlib::Versioning.parse(expected_version)
244
244
  end # it
245
245
  end # context
246
246
 
247
- context 'include pre-release and build versions' do
247
+ context "include pre-release and build versions" do
248
248
  let(:use_prerelease_versions) { true }
249
249
  let(:use_build_versions) { true }
250
250
  let(:expected_version) { options[:prerelease_and_build_versions] }
251
251
 
252
- it 'finds the most recent pre-release build version' do
253
- subject_find.should eq Mixlib::Versioning.parse(expected_version)
252
+ it "finds the most recent pre-release build version" do
253
+ expect(subject_find).to eq Mixlib::Versioning.parse(expected_version)
254
254
  end # it
255
255
  end # context
256
256
  end # context
257
257
  end # each_pair
258
258
 
259
- describe 'all_versions argument is a mix of String and Mixlib::Versioning::Format instances' do
259
+ describe "all_versions argument is a mix of String and Mixlib::Versioning::Format instances" do
260
260
  let(:all_versions) do
261
261
  [
262
- '11.0.0-beta.1',
263
- '11.0.0-rc.1',
264
- Mixlib::Versioning.parse('11.0.0'),
262
+ "11.0.0-beta.1",
263
+ "11.0.0-rc.1",
264
+ Mixlib::Versioning.parse("11.0.0"),
265
265
  ]
266
266
  end
267
267
 
268
- it 'correctly parses the array' do
269
- subject_find.should eq Mixlib::Versioning.parse('11.0.0')
268
+ it "correctly parses the array" do
269
+ expect(subject_find).to eq Mixlib::Versioning.parse("11.0.0")
270
270
  end
271
271
  end # describe
272
272
 
273
- describe 'filter_version argument is an instance of Mixlib::Versioning::Format' do
274
- let(:filter_version) { Mixlib::Versioning::Format::SemVer.new('11.0.0') }
273
+ describe "filter_version argument is an instance of Mixlib::Versioning::Format" do
274
+ let(:filter_version) { Mixlib::Versioning::Format::SemVer.new("11.0.0") }
275
275
 
276
- it 'finds the correct version' do
277
- subject_find.should eq Mixlib::Versioning.parse('11.0.0')
276
+ it "finds the correct version" do
277
+ expect(subject_find).to eq Mixlib::Versioning.parse("11.0.0")
278
278
  end
279
279
  end
280
280
  end # describe
@@ -16,19 +16,20 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require 'mixlib/versioning'
19
+ require "mixlib/versioning"
20
+ require "rspec/its"
20
21
 
21
22
  # load all shared examples and shared contexts
22
- Dir[File.expand_path('../support/**/*.rb', __FILE__)].each do |file|
23
+ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each do |file|
23
24
  require(file)
24
25
  end
25
26
 
26
27
  RSpec.configure do |config|
27
28
  # a little syntactic sugar
28
- config.alias_it_should_behave_like_to :it_has_behavior, 'has behavior:'
29
+ config.alias_it_should_behave_like_to :it_has_behavior, "has behavior:"
29
30
 
30
31
  # Use color in STDOUT
31
- config.color_enabled = true
32
+ config.color = true
32
33
 
33
34
  # Use color not only in STDOUT but also in pagers and files
34
35
  config.tty = true
@@ -36,8 +37,6 @@ RSpec.configure do |config|
36
37
  # run the examples in random order
37
38
  config.order = :rand
38
39
 
39
- # specify metadata with symobls only (ie no '=> true' required)
40
- config.treat_symbols_as_metadata_keys_with_true_values = true
41
40
  config.filter_run focus: true
42
41
  config.run_all_when_everything_filtered = true
43
42
  end
@@ -16,9 +16,9 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- shared_examples 'Basic SemVer' do
20
- it_has_behavior 'parses valid version strings', {
21
- '1.2.3' => {
19
+ shared_examples "Basic SemVer" do
20
+ it_has_behavior "parses valid version strings", {
21
+ "1.2.3" => {
22
22
  major: 1,
23
23
  minor: 2,
24
24
  patch: 3,
@@ -32,9 +32,9 @@ shared_examples 'Basic SemVer' do
32
32
  },
33
33
  }
34
34
 
35
- it_has_behavior 'rejects invalid version strings', {
36
- 'a.1.1' => 'non-numeric MAJOR',
37
- '1.a.1' => 'non-numeric MINOR',
38
- '1.1.a' => 'non-numeric PATCH',
35
+ it_has_behavior "rejects invalid version strings", {
36
+ "a.1.1" => "non-numeric MAJOR",
37
+ "1.a.1" => "non-numeric MINOR",
38
+ "1.1.a" => "non-numeric PATCH",
39
39
  }
40
40
  end
@@ -16,28 +16,28 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- shared_examples 'comparable' do |version_matrix|
20
- describe '#<' do
19
+ shared_examples "comparable" do |version_matrix|
20
+ describe "#<" do
21
21
  version_matrix.each_slice(2) do |a, b|
22
22
  it "confirms that #{a} is less-than #{b}" do
23
23
  expect(described_class.new(a) < b).to be true
24
- expect(described_class.new(a) > b).to be false
24
+ expect(b < described_class.new(a)).to be false
25
25
  end
26
26
  end
27
27
  end
28
28
 
29
- describe '#<=' do
29
+ describe "#<=" do
30
30
  version_matrix.each_slice(2) do |a, b|
31
31
  it "confirms that #{a} less-than or equal to #{b}" do
32
32
  expect(described_class.new(a) <= b).to be true
33
33
  expect(described_class.new(a) <= a).to be true
34
- expect(described_class.new(a) > b).to be false
35
- expect(described_class.new(a) == b).to be false
34
+ expect(b <= described_class.new(a)).to be false
35
+ expect(b < described_class.new(a)).to be false
36
36
  end
37
37
  end
38
38
  end
39
39
 
40
- describe '#==' do
40
+ describe "#==" do
41
41
  version_matrix.each do |v|
42
42
  it "confirms that #{v} is equal to #{v}" do
43
43
  expect(described_class.new(v) == v).to be true
@@ -47,30 +47,30 @@ shared_examples 'comparable' do |version_matrix|
47
47
  end
48
48
  end
49
49
 
50
- describe '#>' do
50
+ describe "#>" do
51
51
  version_matrix.reverse.each_slice(2) do |a, b|
52
52
  it "confirms that #{a} is greather-than #{b}" do
53
53
  expect(described_class.new(a) > b).to be true
54
- expect(described_class.new(a) < b).to be false
54
+ expect(b > described_class.new(a)).to be false
55
55
  end
56
56
  end
57
57
  end
58
58
 
59
- describe '#>=' do
59
+ describe "#>=" do
60
60
  version_matrix.reverse.each_slice(2) do |a, b|
61
61
  it "confirms that #{a} greater-than or equal to #{b}" do
62
62
  expect(described_class.new(a) >= b).to be true
63
63
  expect(described_class.new(a) >= a).to be true
64
- expect(described_class.new(a) < b).to be false
65
- expect(described_class.new(a) == b).to be false
64
+ expect(b >= described_class.new(a)).to be false
65
+ expect(b > described_class.new(a)).to be false
66
66
  end
67
67
  end
68
68
  end
69
69
 
70
- describe '#between?' do
70
+ describe "#between?" do
71
71
  let(:versions) { version_matrix.map { |v| described_class.new(v) }.sort }
72
72
 
73
- it 'comfirms that a version is between the oldest and latest release' do
73
+ it "comfirms that a version is between the oldest and latest release" do
74
74
  min, max = versions.minmax.map(&:to_s)
75
75
  middle = versions[versions.size / 2].to_s
76
76
  expect(described_class.new(middle).between?(min, max)).to be true