semantic_puppet 0.1.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,14 @@ describe SemanticPuppet::Version do
9
9
 
10
10
  describe '.parse' do
11
11
 
12
+ let(:parse_failure) do
13
+ /Unable to parse .* as a semantic version identifier/
14
+ end
15
+
16
+ let(:no_leading_zeroes) do
17
+ 'Numeric pre-release identifiers MUST NOT contain leading zeroes'
18
+ end
19
+
12
20
  context 'Spec v2.0.0' do
13
21
  context 'Section 2' do
14
22
  # A normal version number MUST take the form X.Y.Z where X, Y, and Z are
@@ -17,10 +25,6 @@ describe SemanticPuppet::Version do
17
25
  # Each element MUST increase numerically.
18
26
  # For instance: 1.9.0 -> 1.10.0 -> 1.11.0.
19
27
 
20
- let(:parse_failure) do
21
- /Unable to parse .* as a semantic version identifier/
22
- end
23
-
24
28
  it 'rejects versions that contain too few parts' do
25
29
  expect { subject('1.2') }.to raise_error(parse_failure)
26
30
  end
@@ -89,31 +93,19 @@ describe SemanticPuppet::Version do
89
93
  # by its associated normal version.
90
94
  # Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
91
95
 
92
- let(:restricted_charset) do
93
- 'Prerelease identifiers MUST use only ASCII alphanumerics and hyphens'
94
- end
95
-
96
- let(:must_not_be_empty) do
97
- 'Prerelease identifiers MUST NOT be empty'
98
- end
99
-
100
- let(:no_leading_zeroes) do
101
- 'Prerelease identifiers MUST NOT contain leading zeroes'
102
- end
103
-
104
96
  it 'rejects prerelease identifiers with non-alphanumerics' do
105
- expect { subject('1.2.3-$100') }.to raise_error(restricted_charset)
106
- expect { subject('1.2.3-rc.1@me') }.to raise_error(restricted_charset)
97
+ expect { subject('1.2.3-$100') }.to raise_error(parse_failure)
98
+ expect { subject('1.2.3-rc.1@me') }.to raise_error(parse_failure)
107
99
  end
108
100
 
109
101
  it 'rejects empty prerelease versions' do
110
- expect { subject('1.2.3-') }.to raise_error(must_not_be_empty)
102
+ expect { subject('1.2.3-') }.to raise_error(parse_failure)
111
103
  end
112
104
 
113
105
  it 'rejects empty prerelease version identifiers' do
114
- expect { subject('1.2.3-.rc1') }.to raise_error(must_not_be_empty)
115
- expect { subject('1.2.3-rc1.') }.to raise_error(must_not_be_empty)
116
- expect { subject('1.2.3-rc..1') }.to raise_error(must_not_be_empty)
106
+ expect { subject('1.2.3-.rc1') }.to raise_error(parse_failure)
107
+ expect { subject('1.2.3-rc1.') }.to raise_error(parse_failure)
108
+ expect { subject('1.2.3-rc..1') }.to raise_error(parse_failure)
117
109
  end
118
110
 
119
111
  it 'rejects numeric prerelease identifiers with leading zeroes' do
@@ -167,14 +159,6 @@ describe SemanticPuppet::Version do
167
159
  end
168
160
 
169
161
  context 'Section 10' do
170
- # Build metadata is not yet in scope so
171
- it 'rejects build identifiers' do
172
- ver = '1.2.3+anything'
173
- expect { subject(ver) }.to raise_error("'#{ver}' MUST NOT include build identifiers")
174
- end
175
- end
176
-
177
- context 'Section 10', :pending => "build metadata is not yet in scope" do
178
162
  # Build metadata MAY be denoted by appending a plus sign and a series
179
163
  # of dot separated identifiers immediately following the patch or
180
164
  # pre-release version. Identifiers MUST comprise only ASCII
@@ -185,28 +169,19 @@ describe SemanticPuppet::Version do
185
169
  # Examples: 1.0.0-alpha+001, 1.0.0+20130313144700,
186
170
  # 1.0.0-beta+exp.sha.5114f85.
187
171
 
188
-
189
- let(:restricted_charset) do
190
- 'Build identifiers MUST use only ASCII alphanumerics and hyphens'
191
- end
192
-
193
- let(:must_not_be_empty) do
194
- 'Build identifiers MUST NOT be empty'
195
- end
196
-
197
172
  it 'rejects build identifiers with non-alphanumerics' do
198
- expect { subject('1.2.3+$100') }.to raise_error(restricted_charset)
199
- expect { subject('1.2.3+rc.1@me') }.to raise_error(restricted_charset)
173
+ expect { subject('1.2.3+$100') }.to raise_error(parse_failure)
174
+ expect { subject('1.2.3+rc.1@me') }.to raise_error(parse_failure)
200
175
  end
201
176
 
202
177
  it 'rejects empty build metadata' do
203
- expect { subject('1.2.3+') }.to raise_error(must_not_be_empty)
178
+ expect { subject('1.2.3+') }.to raise_error(parse_failure)
204
179
  end
205
180
 
206
181
  it 'rejects empty build identifiers' do
207
- expect { subject('1.2.3+.rc1') }.to raise_error(must_not_be_empty)
208
- expect { subject('1.2.3+rc1.') }.to raise_error(must_not_be_empty)
209
- expect { subject('1.2.3+rc..1') }.to raise_error(must_not_be_empty)
182
+ expect { subject('1.2.3+.rc1') }.to raise_error(parse_failure)
183
+ expect { subject('1.2.3+rc1.') }.to raise_error(parse_failure)
184
+ expect { subject('1.2.3+rc..1') }.to raise_error(parse_failure)
210
185
  end
211
186
 
212
187
  it 'permits numeric build identifiers with leading zeroes' do
@@ -263,10 +238,6 @@ describe SemanticPuppet::Version do
263
238
  # increments of one.
264
239
  # For instance: 1.9.0 -> 1.10.0 -> 1.11.0
265
240
 
266
- let(:parse_failure) do
267
- /Unable to parse .* as a semantic version identifier/
268
- end
269
-
270
241
  it 'rejects versions that contain too few parts' do
271
242
  expect { subject('1.2') }.to raise_error(parse_failure)
272
243
  end
@@ -320,25 +291,13 @@ describe SemanticPuppet::Version do
320
291
  # lexicographic ASCII sort order.
321
292
  # For instance: 1.0.0-alpha1 < 1.0.0-beta1 < 1.0.0-beta2 < 1.0.0-rc1
322
293
 
323
- let(:restricted_charset) do
324
- 'Prerelease identifiers MUST use only ASCII alphanumerics and hyphens'
325
- end
326
-
327
- let(:must_not_be_empty) do
328
- 'Prerelease identifiers MUST NOT be empty'
329
- end
330
-
331
- let(:no_leading_zeroes) do
332
- 'Prerelease identifiers MUST NOT contain leading zeroes'
333
- end
334
-
335
294
  it 'rejects prerelease identifiers with non-alphanumerics' do
336
- expect { subject('1.2.3-$100') }.to raise_error(restricted_charset)
337
- expect { subject('1.2.3-rc.1@me') }.to raise_error(restricted_charset)
295
+ expect { subject('1.2.3-$100') }.to raise_error(parse_failure)
296
+ expect { subject('1.2.3-rc.1@me') }.to raise_error(parse_failure)
338
297
  end
339
298
 
340
299
  it 'rejects empty prerelease versions' do
341
- expect { subject('1.2.3-') }.to raise_error(must_not_be_empty)
300
+ expect { subject('1.2.3-') }.to raise_error(parse_failure)
342
301
  end
343
302
 
344
303
  it 'rejects numeric prerelease identifiers with leading zeroes' do
@@ -540,14 +499,19 @@ describe SemanticPuppet::Version do
540
499
  expect(b).to be > a
541
500
  end
542
501
 
543
- example 'build metadata does not figure into precendence' do
544
- pending 'build metadata is not yet in scope'
502
+ example 'build metadata does figure into equality' do
545
503
  a = parse('1.0.0-alpha+SHA1')
546
504
  b = parse('1.0.0-alpha+MD5')
547
- expect(a).to eql b
505
+ expect(a).not_to eql b
548
506
  expect(a.to_s).to_not eql b.to_s
549
507
  end
550
508
 
509
+ example 'build metadata does not figure into precendence' do
510
+ a = parse('1.0.0-alpha+SHA1')
511
+ b = parse('1.0.0-alpha+MD5')
512
+ expect(a <=> b).to eql(0)
513
+ end
514
+
551
515
  example 'sorted order' do
552
516
  list = %w[
553
517
  1.0.0-alpha
@@ -631,7 +595,6 @@ describe SemanticPuppet::Version do
631
595
  end
632
596
 
633
597
  it 'removes any build information' do
634
- pending 'build metadata is not yet in scope'
635
598
  expect(subject('1.0.0+abc').next(:major)).to eql(subject('2.0.0'))
636
599
  end
637
600
  end
@@ -656,7 +619,6 @@ describe SemanticPuppet::Version do
656
619
  end
657
620
 
658
621
  it 'removes any build information' do
659
- pending 'build metadata is not yet in scope'
660
622
  expect(subject('1.1.0+abc').next(:minor)).to eql(subject('1.2.0'))
661
623
  end
662
624
  end
@@ -677,7 +639,6 @@ describe SemanticPuppet::Version do
677
639
  end
678
640
 
679
641
  it 'removes any build information' do
680
- pending 'build metadata is not yet in scope'
681
642
  expect(subject('1.0.0+abc').next(:patch)).to eql(subject('1.0.1'))
682
643
  end
683
644
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-06 00:00:00.000000000 Z
11
+ date: 2017-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gettext-setup
@@ -117,6 +117,8 @@ extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
+ - ".rubocop.yml"
121
+ - ".travis.yml"
120
122
  - ".yardopts"
121
123
  - CHANGELOG.md
122
124
  - Gemfile
@@ -156,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
158
  requirements:
157
159
  - - ">="
158
160
  - !ruby/object:Gem::Version
159
- version: 1.8.7
161
+ version: 1.9.3
160
162
  required_rubygems_version: !ruby/object:Gem::Requirement
161
163
  requirements:
162
164
  - - ">="
@@ -164,9 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
166
  version: '0'
165
167
  requirements: []
166
168
  rubyforge_project:
167
- rubygems_version: 2.4.5.1
169
+ rubygems_version: 2.6.10
168
170
  signing_key:
169
171
  specification_version: 4
170
172
  summary: Useful tools for working with Semantic Versions.
171
173
  test_files: []
172
- has_rdoc: