naturalsorter 2.0.8 → 2.0.9

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWZlNGQxOTJiYTNmMDcwODY2ZWEwYmIyNDM1M2Y1YjEzYWRiYTgwMQ==
5
- data.tar.gz: !binary |-
6
- NTc2YzJjNDA5MjlhZDdmY2RjZTM5NjVkMzIzMjgwMTU0N2Q1ODEzYw==
2
+ SHA1:
3
+ metadata.gz: 8e7c06f3c9ea76e81248a248f359ba9d47a19585
4
+ data.tar.gz: 4d61611758145d82ee30e137486c98a24ce7d176
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODk0ZjllMDY3MzUyZDUwMWFiODg1NDdkNTc2YjI0N2FjODJlNTg3YTZlMTc4
10
- NTQ0NmQxZDExYzRmNTA2ZTJjYjRhZjYwYzRmNDk3M2M5ZGJkNTI2ZWEyMmNk
11
- YWM1OTA5Yzk4MTNhYjRkODYwMDZjMWQ0MzlkMWZkNjVhMDFkOWE=
12
- data.tar.gz: !binary |-
13
- MmY4NTYyNWE3MzhmMzgxMmJjMWMyZmRmZTI4MzRhZjVkYWEwYjE3NmM2YzE4
14
- MmJjNDA1NzFhNjlkYjFkMjNmYzg5ZTJiNmM2ZDVhMTY2YzcxMmQ3YmZlZjFl
15
- MDgyOTFjZDBiNjM0YjFkNTJjZTk2ODA3MWE3OWQ1NDFhMjdlZjI=
6
+ metadata.gz: 8bed886f7de1dc8a87178ef9affcc743eabb81fb3ff845bbc9b7d6873224421463e511be1379cfeb3696a2bc3502917103714a88e13c8c261c008c224e3452e8
7
+ data.tar.gz: 324bd9c146b24f4824ebcca9046b8faa05618b2616fd0cd5009b0ea142b4811add5afebd6c5220832e09616bdc22e7b9511c90fdc18161a3ee52f9d2610b60b1
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0-p353
data/.travis.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  language: ruby
2
- rvm: 1.9.3
2
+ rvm: 2.0.0-p353
3
3
  script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source 'http://rubygems.org'
2
- ruby "1.9.3"
2
+ ruby "2.0.0"
3
3
 
4
- # Specify your gem's dependencies in naturalsorter.gemspec
4
+ # dependencies specified in naturalsorter.gemspec
5
5
  gemspec
6
-
7
-
data/README.markdown CHANGED
@@ -20,6 +20,18 @@ Because the default sort method does not recognize the numbers in the string. Th
20
20
 
21
21
  `["init20", "init30", "init200"]`
22
22
 
23
+
24
+ ## Installation
25
+
26
+ You should add this line to your Gemfile
27
+
28
+ `gem 'naturalsorter', '2.0.9'`
29
+
30
+ and run this command in your app root directory
31
+
32
+ `bundle install`
33
+
34
+
23
35
  ## Version Sorting
24
36
  This fork contains some special algorithms to sort version numbers in a natural order. This project is used at <https://www.versioneye.com> to show versions of selected open source projects.
25
37
 
@@ -70,16 +82,6 @@ because '~>1.1' doesn't fit anymore the newest version.
70
82
  `Naturalsorter::Sorter.is_version_current?(version, newest_version)`
71
83
 
72
84
 
73
- ## Installation
74
-
75
- You should add this line to your Gemfile
76
-
77
- `gem 'naturalsorter', '2.0.8'`
78
-
79
- and run this command in your app root directory
80
-
81
- `bundle install`
82
-
83
85
  ## How To Use - Examples
84
86
 
85
87
  After the installation you can use it like this:
@@ -1,3 +1,3 @@
1
1
  module Naturalsorter
2
- VERSION = "2.0.8"
2
+ VERSION = "2.0.9"
3
3
  end
data/lib/versioncmp.rb CHANGED
@@ -34,8 +34,8 @@ class Versioncmp
34
34
 
35
35
  return 0 if a_empty && b_empty
36
36
  return 0 if a_val.eql?( b_val )
37
- return 1 if (a_empty == false) && b_empty
38
- return -1 if (b_empty == false) && a_empty
37
+ return 1 if (a_empty == false) && (b_empty == true )
38
+ return -1 if (b_empty == false) && (a_empty == true )
39
39
 
40
40
  a = pre_process a_val
41
41
  b = pre_process b_val
@@ -43,7 +43,10 @@ class Versioncmp
43
43
  ab = [a, b]
44
44
  offsets = [0, 0]
45
45
 
46
- for i in 0..20
46
+ max_length = a_val.length
47
+ max_length = b_val.length if b_val.length > max_length
48
+
49
+ for i in 0..max_length
47
50
  result = self.check_the_slice ab, offsets
48
51
  next if result.nil?
49
52
  return result if result == 1 || result == -1
@@ -121,7 +124,7 @@ class Versioncmp
121
124
  return Versioncmp.compare_string_length(a, b)
122
125
  end
123
126
  end
124
- self.compare_string_length_odd(a, b)
127
+ 0
125
128
  end
126
129
 
127
130
 
@@ -141,14 +144,12 @@ class Versioncmp
141
144
  for z in 0..100
142
145
  offsetz = offset + z
143
146
  break if offsetz > cake.length()
147
+
144
148
  p = cake[ offset..offset + z ]
145
- if ( p.match(/^\w+\.$/) != nil )
146
- break
147
- end
148
- end
149
- if z > 0
150
- z = z - 1
149
+ break if ( p.match(/^\w+\.$/) != nil )
151
150
  end
151
+
152
+ z = z - 1 if z > 0
152
153
  piece = cake[offset..offset + z ]
153
154
  return piece
154
155
  end
@@ -161,6 +162,7 @@ class Versioncmp
161
162
 
162
163
  def self.pre_process val
163
164
  cleaned_version = replace_x_dev val
165
+ cleaned_version = replace_wildcards cleaned_version
164
166
  replace_leading_v cleaned_version
165
167
  replace_99_does_not_exist cleaned_version
166
168
  replace_timestamps cleaned_version
@@ -189,6 +191,13 @@ class Versioncmp
189
191
  end
190
192
 
191
193
 
194
+ def self.replace_wildcards val
195
+ new_val = String.new(val)
196
+ new_val = "9999999" if val.match(/\.\*$/)
197
+ new_val
198
+ end
199
+
200
+
192
201
  def self.replace_x_dev val
193
202
  new_val = String.new(val)
194
203
  if val.eql?("dev-master")
@@ -257,11 +266,4 @@ class Versioncmp
257
266
  return -1
258
267
  end
259
268
 
260
-
261
- def self.compare_string_length_odd(a, b)
262
- return 1 if a.length > b.length
263
- return -1 if a.length < b.length
264
- return 0
265
- end
266
-
267
269
  end
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["reiz", "versioneye"]
9
9
  s.email = ["reiz@versioneye.com"]
10
10
  s.homepage = "https://github.com/versioneye/naturalsorter"
11
+ s.license = 'MIT'
11
12
  s.summary = %q{Sorting arrays in natural order}
12
13
  s.description = %q{This GEM is sorting Arrays in a natural order. a2 < a10. Beside that this GEM has some methods to sort version strings. It even recognises alpha, beta, RC, dev and stable versions.}
13
14
 
@@ -38,6 +38,18 @@ describe Versioncmp do
38
38
  Versioncmp.compare("1.1", "1.1").should eql(0)
39
39
  end
40
40
 
41
+ it "equal" do
42
+ Versioncmp.compare("1.0", "1.0.0").should eql(0)
43
+ end
44
+
45
+ it "1.0.0 is smaller than 1.0.*" do
46
+ Versioncmp.compare("1.0.0", "1.0.*").should eql(-1)
47
+ end
48
+
49
+ it "1.0 is smaller than 1.0.*" do
50
+ Versioncmp.compare("1.0.0", "1.0.*").should eql(-1)
51
+ end
52
+
41
53
  it "equal RC" do
42
54
  Versioncmp.compare("1.1.RC1", "1.1.RC1").should eql(0)
43
55
  end
@@ -159,7 +171,7 @@ describe Versioncmp do
159
171
  end
160
172
 
161
173
  it "3.0.0 is equal to 3.0" do
162
- Versioncmp.compare("3.0.0", "3.0").should eql(1)
174
+ Versioncmp.compare("3.0.0", "3.0").should eql(0)
163
175
  end
164
176
 
165
177
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naturalsorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - reiz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-03 00:00:00.000000000 Z
12
+ date: 2014-04-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -34,8 +34,9 @@ executables: []
34
34
  extensions: []
35
35
  extra_rdoc_files: []
36
36
  files:
37
- - .gitignore
38
- - .travis.yml
37
+ - ".gitignore"
38
+ - ".ruby-version"
39
+ - ".travis.yml"
39
40
  - Gemfile
40
41
  - LICENSE
41
42
  - README.markdown
@@ -50,7 +51,8 @@ files:
50
51
  - spec/version_tag_recognizer_spec.rb
51
52
  - spec/versioncmp_spec.rb
52
53
  homepage: https://github.com/versioneye/naturalsorter
53
- licenses: []
54
+ licenses:
55
+ - MIT
54
56
  metadata: {}
55
57
  post_install_message:
56
58
  rdoc_options: []
@@ -58,17 +60,17 @@ require_paths:
58
60
  - lib
59
61
  required_ruby_version: !ruby/object:Gem::Requirement
60
62
  requirements:
61
- - - ! '>='
63
+ - - ">="
62
64
  - !ruby/object:Gem::Version
63
65
  version: '0'
64
66
  required_rubygems_version: !ruby/object:Gem::Requirement
65
67
  requirements:
66
- - - ! '>='
68
+ - - ">="
67
69
  - !ruby/object:Gem::Version
68
70
  version: '0'
69
71
  requirements: []
70
72
  rubyforge_project: naturalsorter
71
- rubygems_version: 2.1.10
73
+ rubygems_version: 2.1.11
72
74
  signing_key:
73
75
  specification_version: 4
74
76
  summary: Sorting arrays in natural order