skn_utils 3.3.6 → 3.3.7

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: 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