mixlib-versioning 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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