semantic 1.3.0 → 1.3.1

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