semantic 1.3.0 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84157e13bb503e4643995ea3fc5e66dc0e669a14
4
- data.tar.gz: d66f6977b38924ed245de6b0849c6c6a6f6e48b3
3
+ metadata.gz: 8be7b65e62aeac78a5554d3fe5ab776f21531896
4
+ data.tar.gz: f07d9b1a21e1b54713a3cb6147e53d0213859b31
5
5
  SHA512:
6
- metadata.gz: 4a995f1776791066bbd2f46b5bdbab90e0ea53477ea3143ea28d874e41524cdcfa2522a6593f5097f08370b0358b7701a90184f177318596a618fe386400201d
7
- data.tar.gz: 6cbe7c9c57700057f807386f6d5df01f51cabcd7197dbb21794614c398bfacb84d041616522f8e90dc7bf608d97d5960781bb81a5321e1717e2171f903adf1c9
6
+ metadata.gz: 55558e793373d843849a13058ad77db46067046255eb266919f5089c201bbab6c535f53df692707b5781c8b7ec226d077dd2723e5ba6bb588259569075aacdc4
7
+ data.tar.gz: b1761377c7f2a5beb1decd3246053906c053e76e465e654a43da102fffe3e00e34dca432ff996c74301fe2472ee968eb804d00950e4f96353bc64e592805969e
data/lib/semantic.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Semantic
2
- GEM_VERSION = '1.3.0'
2
+ GEM_VERSION = '1.3.1'
3
3
  autoload :Version, 'semantic/version'
4
4
  end
5
5
 
@@ -78,7 +78,7 @@ module Semantic
78
78
 
79
79
  def satisfies other_version
80
80
  return true if other_version.strip == '*'
81
- parts = other_version.split /(\d(.+)?)/, 2
81
+ parts = other_version.split(/(\d(.+)?)/, 2)
82
82
  comparator, other_version_string = parts[0].strip, parts[1].strip
83
83
 
84
84
  begin
@@ -105,7 +105,7 @@ module Semantic
105
105
  end
106
106
 
107
107
  def tilde_matches? other_version_string
108
- this_parts = to_a.collect &:to_s
108
+ this_parts = to_a.collect(&:to_s)
109
109
  other_parts = other_version_string.split('.').reject {|x| x == '*'}
110
110
  other_parts == this_parts[0..other_parts.length-1]
111
111
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lindsey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-31 00:00:00.000000000 Z
11
+ date: 2014-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '10.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '10.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.14'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.14'
41
41
  description: 'Semantic Version utility class for parsing, storing, and comparing versions.
@@ -46,14 +46,11 @@ executables: []
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - LICENSE
50
+ - README.md
49
51
  - lib/semantic.rb
50
52
  - lib/semantic/core_ext.rb
51
53
  - lib/semantic/version.rb
52
- - LICENSE
53
- - README.md
54
- - spec/core_ext_spec.rb
55
- - spec/spec_helper.rb
56
- - spec/version_spec.rb
57
54
  homepage: https://github.com/jlindsey/semantic
58
55
  licenses:
59
56
  - MIT
@@ -64,22 +61,19 @@ require_paths:
64
61
  - lib
65
62
  required_ruby_version: !ruby/object:Gem::Requirement
66
63
  requirements:
67
- - - '>='
64
+ - - ">="
68
65
  - !ruby/object:Gem::Version
69
66
  version: '0'
70
67
  required_rubygems_version: !ruby/object:Gem::Requirement
71
68
  requirements:
72
- - - '>='
69
+ - - ">="
73
70
  - !ruby/object:Gem::Version
74
71
  version: '0'
75
72
  requirements: []
76
73
  rubyforge_project:
77
- rubygems_version: 2.1.9
74
+ rubygems_version: 2.2.2
78
75
  signing_key:
79
76
  specification_version: 4
80
77
  summary: Semantic Version utility class
81
- test_files:
82
- - spec/core_ext_spec.rb
83
- - spec/spec_helper.rb
84
- - spec/version_spec.rb
78
+ test_files: []
85
79
  has_rdoc:
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
- require 'semantic/core_ext'
3
-
4
- describe 'Core Extensions' do
5
- context "String#to_version" do
6
- before(:each) do
7
- @test_versions = [
8
- '1.0.0',
9
- '12.45.182',
10
- '0.0.1-pre.1',
11
- '1.0.1-pre.5+build.123.5',
12
- '1.1.1+123',
13
- '0.0.0+hello',
14
- '1.2.3-1'
15
- ]
16
-
17
- @bad_versions = [
18
- 'a.b.c',
19
- '1.a.3',
20
- 'a.3.4',
21
- '5.2.a',
22
- 'pre3-1.5.3'
23
- ]
24
- end
25
-
26
- it "extends String with a #to_version method" do
27
- String.new.should respond_to(:to_version)
28
- end
29
-
30
- it "converts the String into a Version object" do
31
- @test_versions.each do |v|
32
- expect { v.to_version }.to_not raise_error()
33
- v.to_version.should be_a(Semantic::Version)
34
- end
35
- end
36
-
37
- it "raises an error on invalid strings" do
38
- @bad_versions.each do |v|
39
- expect { v.to_version }.to raise_error()
40
- end
41
- end
42
- end
43
- end
data/spec/spec_helper.rb DELETED
@@ -1,20 +0,0 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
5
- #
6
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
- RSpec.configure do |config|
8
- require 'semantic'
9
-
10
- config.mock_framework = :rspec
11
- config.treat_symbols_as_metadata_keys_with_true_values = true
12
- config.run_all_when_everything_filtered = true
13
- config.filter_run :focus
14
-
15
- # Run specs in random order to surface order dependencies. If you find an
16
- # order dependency and want to debug it, you can fix the order by providing
17
- # the seed, which is printed after each run.
18
- # --seed 1234
19
- config.order = 'random'
20
- end
data/spec/version_spec.rb DELETED
@@ -1,204 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Semantic::Version do
4
- before(:each) do
5
- @test_versions = [
6
- '1.0.0',
7
- '12.45.182',
8
- '0.0.1-pre.1',
9
- '1.0.1-pre.5+build.123.5',
10
- '1.1.1+123',
11
- '0.0.0+hello',
12
- '1.2.3-1'
13
- ]
14
-
15
- @bad_versions = [
16
- 'a.b.c',
17
- '1.a.3',
18
- 'a.3.4',
19
- '5.2.a',
20
- 'pre3-1.5.3',
21
- "I am not a valid semver\n0.0.0\nbut I still pass"
22
- ]
23
- end
24
-
25
- context "parsing" do
26
- it "parses valid SemVer versions" do
27
- @test_versions.each do |v|
28
- expect { Semantic::Version.new v }.to_not raise_error()
29
- end
30
- end
31
-
32
- it "raises an error on invalid versions" do
33
- @bad_versions.each do |v|
34
- expect { Semantic::Version.new v }.to raise_error()
35
- end
36
- end
37
-
38
- it "stores parsed versions in member variables" do
39
- v1 = Semantic::Version.new '1.5.9'
40
- v1.major.should == 1
41
- v1.minor.should == 5
42
- v1.patch.should == 9
43
- v1.pre.should be_nil
44
- v1.build.should be_nil
45
-
46
- v2 = Semantic::Version.new '0.0.1-pre.1'
47
- v2.major.should == 0
48
- v2.minor.should == 0
49
- v2.patch.should == 1
50
- v2.pre.should == 'pre.1'
51
- v2.build.should be_nil
52
-
53
- v3 = Semantic::Version.new '1.0.1-pre.5+build.123.5'
54
- v3.major.should == 1
55
- v3.minor.should == 0
56
- v3.patch.should == 1
57
- v3.pre.should == 'pre.5'
58
- v3.build.should == 'build.123.5'
59
-
60
- v4 = Semantic::Version.new '0.0.0+hello'
61
- v4.major.should == 0
62
- v4.minor.should == 0
63
- v4.patch.should == 0
64
- v4.pre.should be_nil
65
- v4.build.should == 'hello'
66
- end
67
- end
68
-
69
- context "comparisons" do
70
- before(:each) do
71
- # These three are all semantically equivalent, according to the spec.
72
- @v1_5_9_pre_1 = Semantic::Version.new '1.5.9-pre.1'
73
- @v1_5_9_pre_1_build_5127 = Semantic::Version.new '1.5.9-pre.1+build.5127'
74
- @v1_5_9_pre_1_build_4352 = Semantic::Version.new '1.5.9-pre.1+build.4352'
75
-
76
- @v1_5_9 = Semantic::Version.new '1.5.9'
77
- @v1_6_0 = Semantic::Version.new '1.6.0'
78
- end
79
-
80
- it "determines sort order" do
81
- # The second parameter here can be a string, so we want to ensure that this kind of comparison works also.
82
- (@v1_5_9_pre_1 <=> @v1_5_9_pre_1.to_s).should == 0
83
-
84
- (@v1_5_9_pre_1 <=> @v1_5_9_pre_1_build_5127).should == 0
85
- (@v1_5_9_pre_1 <=> @v1_5_9).should == -1
86
- (@v1_5_9_pre_1_build_5127 <=> @v1_5_9).should == -1
87
-
88
- @v1_5_9_pre_1_build_5127.build.should == 'build.5127'
89
-
90
- (@v1_5_9 <=> @v1_5_9).should == 0
91
-
92
- (@v1_5_9 <=> @v1_6_0).should == -1
93
- (@v1_6_0 <=> @v1_5_9).should == 1
94
- (@v1_6_0 <=> @v1_5_9_pre_1).should == 1
95
- (@v1_5_9_pre_1 <=> @v1_6_0).should == -1
96
-
97
- [@v1_5_9_pre_1, @v1_5_9_pre_1_build_5127, @v1_5_9, @v1_6_0]
98
- .reverse
99
- .sort
100
- .should == [@v1_5_9_pre_1, @v1_5_9_pre_1_build_5127, @v1_5_9, @v1_6_0]
101
- end
102
-
103
- it "determines whether it is greater than another instance" do
104
- # These should be equal, since "Build metadata SHOULD be ignored when determining version precedence".
105
- # (SemVer 2.0.0-rc.2, paragraph 10 - http://www.semver.org)
106
- @v1_5_9_pre_1.should_not > @v1_5_9_pre_1_build_5127
107
- @v1_5_9_pre_1.should_not < @v1_5_9_pre_1_build_5127
108
-
109
- @v1_6_0.should > @v1_5_9
110
- @v1_5_9.should_not > @v1_6_0
111
- @v1_5_9.should > @v1_5_9_pre_1_build_5127
112
- @v1_5_9.should > @v1_5_9_pre_1
113
- end
114
-
115
- it "determines whether it is less than another instance" do
116
- @v1_5_9_pre_1.should_not < @v1_5_9_pre_1_build_5127
117
- @v1_5_9_pre_1_build_5127.should_not < @v1_5_9_pre_1
118
- @v1_5_9_pre_1.should < @v1_5_9
119
- @v1_5_9_pre_1.should < @v1_6_0
120
- @v1_5_9_pre_1_build_5127.should < @v1_6_0
121
- @v1_5_9.should < @v1_6_0
122
- end
123
-
124
- it "determines whether it is greater than or equal to another instance" do
125
- @v1_5_9_pre_1.should >= @v1_5_9_pre_1
126
- @v1_5_9_pre_1.should >= @v1_5_9_pre_1_build_5127
127
- @v1_5_9_pre_1_build_5127.should >= @v1_5_9_pre_1
128
- @v1_5_9.should >= @v1_5_9_pre_1
129
- @v1_6_0.should >= @v1_5_9
130
- @v1_5_9_pre_1_build_5127.should_not >= @v1_6_0
131
- end
132
-
133
- it "determines whether it is less than or equal to another instance" do
134
- @v1_5_9_pre_1.should <= @v1_5_9_pre_1_build_5127
135
- @v1_6_0.should_not <= @v1_5_9
136
- @v1_5_9_pre_1_build_5127.should <= @v1_5_9_pre_1_build_5127
137
- @v1_5_9.should_not <= @v1_5_9_pre_1
138
- end
139
-
140
- it "determines whether it is semantically equal to another instance" do
141
- @v1_5_9_pre_1.should == @v1_5_9_pre_1.dup
142
- @v1_5_9_pre_1_build_5127.should == @v1_5_9_pre_1_build_5127.dup
143
-
144
- # "Semantically equal" is the keyword here; these are by definition not "equal" (different build), but should be treated as
145
- # equal according to the spec.
146
- @v1_5_9_pre_1_build_4352.should == @v1_5_9_pre_1_build_5127
147
- @v1_5_9_pre_1_build_4352.should == @v1_5_9_pre_1
148
- end
149
-
150
- it "determines whether it satisfies >= style specifications" do
151
- @v1_6_0.satisfies('>=1.6.0').should be_true
152
- @v1_6_0.satisfies('<=1.6.0').should be_true
153
- @v1_6_0.satisfies('>=1.5.0').should be_true
154
- @v1_6_0.satisfies('<=1.5.0').should_not be_true
155
-
156
- # partial / non-semver numbers after comparator are extremely common in
157
- # version specifications in the wild
158
-
159
- @v1_6_0.satisfies('>1.5').should be_true
160
- @v1_6_0.satisfies('<1').should_not be_true
161
- end
162
-
163
- it "determines whether it satisfies * style specifications" do
164
- @v1_6_0.satisfies('1.*').should be_true
165
- @v1_6_0.satisfies('1.6.*').should be_true
166
- @v1_6_0.satisfies('2.*').should_not be_true
167
- @v1_6_0.satisfies('1.5.*').should_not be_true
168
- end
169
-
170
- it "determines whether it satisfies ~ style specifications" do
171
- @v1_6_0.satisfies('~1.6').should be_true
172
- @v1_5_9_pre_1.satisfies('~1.5').should be_true
173
- @v1_6_0.satisfies('~1.5').should_not be_true
174
- end
175
-
176
- end
177
-
178
- context "type coercions" do
179
- it "converts to a string" do
180
- @test_versions.each do |v|
181
- Semantic::Version.new(v).to_s.should == v
182
- end
183
- end
184
-
185
- it "converts to an array" do
186
- Semantic::Version.new('1.0.0').to_a.should == [1, 0, 0, nil, nil]
187
- Semantic::Version.new('6.1.4-pre.5').to_a.should == [6, 1, 4, 'pre.5', nil]
188
- Semantic::Version.new('91.6.0+build.17').to_a.should == [91, 6, 0, nil, 'build.17']
189
- Semantic::Version.new('0.1.5-pre.7+build191').to_a.should == [0, 1, 5, 'pre.7', 'build191']
190
- end
191
-
192
- it "converts to a hash" do
193
- Semantic::Version.new('1.0.0').to_h.should == { major: 1, minor: 0, patch: 0, pre: nil, build: nil }
194
- Semantic::Version.new('6.1.4-pre.5').to_h.should == { major: 6, minor: 1, patch: 4, pre: 'pre.5', build: nil }
195
- Semantic::Version.new('91.6.0+build.17').to_h.should == { major: 91, minor: 6, patch: 0, pre: nil, build: 'build.17' }
196
- Semantic::Version.new('0.1.5-pre.7+build191').to_h.should == { major: 0, minor: 1, patch: 5, pre: 'pre.7', build: 'build191' }
197
- end
198
-
199
- it "aliases conversion methods" do
200
- v = Semantic::Version.new('0.0.0')
201
- [:to_hash, :to_array, :to_string].each { |sym| v.should respond_to(sym) }
202
- end
203
- end
204
- end