atk_toolbox 0.0.72 → 0.0.73

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
  SHA256:
3
- metadata.gz: 292370d8f93d0be1d1a038005d5b14fed743273c2fd2bdda8611c8d61f76bc73
4
- data.tar.gz: 5679595615ab2e5b3ab686897138fb3a02cc697e26475091ed44c5f3ce5adbc9
3
+ metadata.gz: 6bbdfa878da22ecddbecdc8b42aa91de1f1909fcf196fc42a8921f7ba50dbfd8
4
+ data.tar.gz: a9d50f7fb7088fc13367d208a8104beaa93fc09148ee28a922b95d2ea4df9d7f
5
5
  SHA512:
6
- metadata.gz: 8164660ffd136f44ad7d5dacbb923c59eafafc0ad2a3a9e13392275a41c2786cfcfd8b1db746e5cab16945c50c0c8b2ad8a4555c15f7e10516d925d82e356c1e
7
- data.tar.gz: 3aacdae8f1458b1dc4db098621368cf4601e3a24c89cab39a93e9258058f58d5ebb3b222ee317c19ac2eb1eaab0fe5d30e28b82de5f4183b7949fa9301fab77a
6
+ metadata.gz: e3fdad11b9fc752247b9e08fe0ee41b835417c0e2c9263319a6e07710029648beaa1e5eb128fe257290529023517f0888f9d07497f56c9e49cf3b1465884e821
7
+ data.tar.gz: 5e5ff39ad96783d852af79b776b224d834049ac47d42e4985052a6b629bff94794c9979d8b2b13ee17220a009f16407141d3c498e9d58b81d9517c5bb4733d0d
data/lib/atk/version.rb CHANGED
@@ -1,38 +1,74 @@
1
1
  # create a variable for the current ruby version
2
2
 
3
3
  class Version
4
- attr_accessor :major, :minor, :patch
4
+ attr_accessor :major, :minor, :patch, :levels
5
5
 
6
6
  def initialize(version_as_string)
7
- # TODO: make this more safe/better error handling
8
- @major, @minor, @patch = version_as_string.split('.').map{|each| each.to_i}
9
- @as_string = version_as_string
7
+ @levels = version_as_string.split('.')
8
+ @comparable = @levels[0] =~ /\A\d+\z/
9
+ # convert values into integers where possible
10
+ index = -1
11
+ for each in @levels.dup
12
+ index += 1
13
+ if each =~ /\A\d+\z/
14
+ @levels[index] = each.to_i
15
+ end
16
+ end
17
+ @major, @minor, @patch, *_ = @levels
18
+ end
19
+
20
+ def comparable?
21
+ return @comparable
10
22
  end
11
23
 
12
24
  def <=>(other_version)
13
25
  if not other_version.is_a?(Version)
14
26
  raise "When doing version comparision, both sides must be a version object"
15
27
  end
16
- major_size = (@major <=> other_version.major * 100)
17
- minor_size = (@minor <=> other_version.minor * 10 )
18
- patch_size = (@patch <=> other_version.patch * 1 )
19
- return (major_size + minor_size + patch_size) <=> 0
28
+ if other_version.to_s == self.to_s
29
+ return 0
30
+ end
31
+
32
+ if other_version.comparable? && self.comparable?
33
+ self_levels = @levels.dup
34
+ other_levels = other_version.levels.dup
35
+ loop do
36
+ if self_levels.size == 0 || other_levels.size == 0
37
+ if self_levels.size > other_levels.size
38
+ return 1
39
+ elsif self_levels.size < other_levels.size
40
+ return -1
41
+ else
42
+ return 0
43
+ end
44
+ end
45
+ comparision = self_levels.shift() <=> other_levels.shift()
46
+ if comparision != 0
47
+ return comparision
48
+ end
49
+ end
50
+ else
51
+ return nil
52
+ end
20
53
  end
21
54
 
22
55
  def >(other_version)
23
- return (self <=> other_version) == 1
56
+ value = (self <=> other_version)
57
+ return value && value == 1
24
58
  end
25
59
 
26
60
  def <(other_version)
27
- return (self <=> other_version) == -1
61
+ value = (self <=> other_version)
62
+ return value && value == -1
28
63
  end
29
64
 
30
65
  def ==(other_version)
31
- return (self <=> other_version) == 0
66
+ value = (self <=> other_version)
67
+ return value && value == 0
32
68
  end
33
69
 
34
70
  def to_s
35
- return "#{@major}.#{@minor}.#{@patch}"
71
+ return @levels.map(&:to_s).join('.')
36
72
  end
37
73
  end
38
74
 
@@ -284,6 +284,6 @@ class Info
284
284
  end
285
285
 
286
286
  def self.source_path()
287
- return "."/"info.yaml"
287
+ return Dir.pwd/"info.yaml"
288
288
  end
289
289
  end
@@ -1,3 +1,3 @@
1
1
  module AtkToolbox
2
- VERSION = '0.0.72'
2
+ VERSION = '0.0.73'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atk_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.72
4
+ version: 0.0.73
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hykin
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.7.3
118
+ rubygems_version: 2.7.6.2
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: The Ruby gem for all the standard tools ATK uses internally