skn_utils 3.3.6 → 3.3.7

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: 1fd1ca93fc5fbcbdf6d22f5c45851fcd36e19e88
4
- data.tar.gz: 0aeaade9f44e5a69c701946d24542c9c88f2995e
3
+ metadata.gz: ee871d64be32ad3a000a84aafc3401bccad14807
4
+ data.tar.gz: 74cb4575b5e449e74a91cec8e588c333787b3db7
5
5
  SHA512:
6
- metadata.gz: 5a934d2d35f6680f15b923df769e3da95795d122317fe15bb49b26aa5917b077c7fa81040b02ef637a26d4bef15791cc447538c663c187b83681e5c698dc6627
7
- data.tar.gz: a05eae70e269463828a96e6c8e714cd214bacb5bf1256caee2220cdf1c62d634bc58a61e7f42f556e08c2a4254ae27547149186cbf3cd632b85ca871b1c6b1da
6
+ metadata.gz: a4e9361b994e283cdd2651ba3763010bd1dabdc0593cd601dc0a30eda59449b345920584725be2f7ee025ca1a022bdfa4f9f35935b723717316372e9a201fcfe
7
+ data.tar.gz: 3b47a9650aa686509f4efdaf0c632cc849115ed0cd2b44386e9f49f62e9369ab84b60c17fa52ca533d5861bc21f10ec776bc63a93a2404bd8b13797a285df31f
@@ -54,14 +54,14 @@ module SknUtils
54
54
  node = node.next
55
55
  index -= 1
56
56
  @current = node
57
- break if position === node
57
+ break if position.equal?(node)
58
58
  end
59
59
  elsif index < 0
60
60
  while index < 0 and node and node.prev
61
61
  node = node.prev
62
62
  index += 1
63
63
  @current = node
64
- break if position === node
64
+ break if position.equal?(node)
65
65
  end
66
66
  end
67
67
  current
@@ -83,10 +83,6 @@ module SknUtils
83
83
  self.head = node
84
84
  node.prev = self.tail
85
85
  self.tail.next = node
86
- elsif self.tail == target
87
- self.tail = node
88
- node.next = self.head
89
- self.head.prev = node
90
86
  end
91
87
  self.size += 1
92
88
  end
@@ -103,10 +99,6 @@ module SknUtils
103
99
  self.tail = node
104
100
  node.next = self.head
105
101
  self.head.prev = node
106
- elsif self.head == target # new head
107
- self.head = node
108
- node.prev = self.tail
109
- self.tail.next = node
110
102
  end
111
103
  self.size += 1
112
104
  end
@@ -119,12 +111,12 @@ module SknUtils
119
111
  @current = nil
120
112
  self.head = nil
121
113
  self.tail = nil
122
- elsif target_node === self.head # top
114
+ elsif target_node.equal?(self.head) # top
123
115
  @current = target_node.next
124
116
  @current.prev = target_node.prev
125
117
  self.tail.next = @current
126
118
  self.head = @current
127
- elsif target_node === self.tail # bottom
119
+ elsif target_node.equal?(self.tail) # bottom
128
120
  @current = target_node.prev
129
121
  @current.next = target_node.next
130
122
  self.head.prev = @current
@@ -73,7 +73,7 @@ module SknUtils
73
73
  target = find_by_value(position_value)
74
74
  node = LinkNode.new(value, target, :before, self, &@match_value)
75
75
  @current = node if target
76
- self.head = node if self.head === target
76
+ self.head = node if self.head.equal?(target)
77
77
  self.tail = node if self.tail.nil?
78
78
  self.size += 1
79
79
  end
@@ -84,7 +84,7 @@ module SknUtils
84
84
  node = LinkNode.new(value, target, :after, self, &@match_value)
85
85
  @current = node
86
86
  self.head = node if self.head.nil?
87
- self.tail = node if self.tail === target
87
+ self.tail = node if self.tail.equal?(target)
88
88
  self.size += 1
89
89
  end
90
90
 
@@ -6,6 +6,8 @@ module SknUtils
6
6
  module Lists
7
7
 
8
8
  class LinkNode
9
+ include Comparable
10
+
9
11
  attr_accessor :prev, :next, :value
10
12
 
11
13
  def initialize(val, anchor_node=nil, strategy=:after, mgr=nil, &cmp_key)
@@ -41,7 +43,21 @@ module SknUtils
41
43
  end
42
44
 
43
45
  def match_by_value(other_value)
44
- @cmp_proc.call(value) === @cmp_proc.call(other_value)
46
+ @cmp_proc.call(self.value) === @cmp_proc.call(other_value)
47
+ end
48
+
49
+ # Returns
50
+ # 0 if first operand equals second,
51
+ # 1 if first operand is greater than the second and
52
+ # -1 if first operand is less than the second.
53
+ def <=>(other_node)
54
+ if @cmp_proc.call(self.value) == @cmp_proc.call(other_node.value)
55
+ 0
56
+ elsif @cmp_proc.call(self.value) > @cmp_proc.call(other_node.value)
57
+ 1
58
+ else
59
+ -1
60
+ end
45
61
  end
46
62
 
47
63
  # returns next node
@@ -114,14 +114,14 @@ module SknUtils
114
114
  while position do
115
115
  block.call( position.value.dup )
116
116
  position = position.next
117
- break if position === @current
117
+ break if position.equal?(@current)
118
118
  end
119
119
  else
120
120
  Enumerator.new do |yielder|
121
121
  while position do
122
122
  yielder << position.value.dup
123
123
  position = position.next
124
- break if position === @current
124
+ break if position.equal?(@current)
125
125
  end
126
126
  end
127
127
  end
@@ -61,7 +61,7 @@ module SknUtils
61
61
  prior, target = find_by_value(position_value)
62
62
  node = LinkNode.new(value, prior, :single, self, &@match_value)
63
63
  node.next = target if target
64
- self.head = node if self.head === target
64
+ self.head = node if self.head.equal?(target)
65
65
  self.tail = node if self.tail.nil?
66
66
  @current = node
67
67
  self.size += 1
@@ -72,7 +72,7 @@ module SknUtils
72
72
  prior, target = find_by_value(position_value)
73
73
  node = LinkNode.new(value, target, :single, self, &@match_value)
74
74
  self.head = node if self.head.nil?
75
- self.tail = node if self.tail === target
75
+ self.tail = node if self.tail.equal?(target)
76
76
  @current = node
77
77
  self.size += 1
78
78
  end
@@ -82,8 +82,8 @@ module SknUtils
82
82
  prior, target_node = find_by_value(value)
83
83
  @current = prior.nil? ? target_node.next : prior
84
84
  @current.next = target_node.remove! if @current && target_node
85
- self.tail = @current.next if @current && self.tail === target_node
86
- self.head = @current.next if @current && self.head === target_node
85
+ self.tail = @current.next if @current && self.tail.equal?(target_node)
86
+ self.head = @current.next if @current && self.head.equal?(target_node)
87
87
  self.size -= 1
88
88
  end
89
89
 
@@ -3,7 +3,7 @@ module SknUtils
3
3
  class Version
4
4
  MAJOR = 3
5
5
  MINOR = 3
6
- PATCH = 6
6
+ PATCH = 7
7
7
 
8
8
  def self.to_s
9
9
  [MAJOR, MINOR, PATCH].join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skn_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.6
4
+ version: 3.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Scott Jr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deep_merge