linked-list 0.0.14 → 0.0.15
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 +4 -4
- data/.travis.yml +1 -1
- data/CHANGELOG.md +11 -0
- data/lib/linked-list/list.rb +3 -3
- data/lib/linked-list/version.rb +1 -1
- data/linked-list.gemspec +1 -1
- data/test/list_test.rb +24 -5
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a70c658176bc2e924764731304a3f8dbb376306e35b9e016d41896a7b5790463
|
4
|
+
data.tar.gz: cde342c544b41d53f5c52eb3d592deed28a6bf79736b6a0f2dbb1ef2d78319a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db29d3d0ec5195c12937ae63332a8dbb3ac891f6510441762f5a42d1acfce8de826d9a20a6af308e9b39a5fe33fcf92527c26d1ffd757c6814fb2c09ed4c34a4
|
7
|
+
data.tar.gz: 7723a09dc0858687eaf4ff6668e024ba8b7efd00cc202ab6eb067baffc52f645f6138d286cec946ccb30896b372345f91b601db5e8dee8900c65582ffe61577b
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
# 0.0.x / Unreleased
|
2
|
+
|
3
|
+
|
4
|
+
# 0.0.15 / 2020-05-26
|
5
|
+
|
6
|
+
## Fixed
|
7
|
+
|
8
|
+
- Fixed bug when deleting the last node of the list. The @tail value was not updated if the @head value was updated.
|
9
|
+
|
10
|
+
[Compare v0.0.14...v0.0.15](https://github.com/spectator/linked-list/compare/v0.0.14...v0.0.15)
|
11
|
+
|
1
12
|
# 0.0.14 / 2020-04-17
|
2
13
|
|
3
14
|
## Fixed
|
data/lib/linked-list/list.rb
CHANGED
@@ -286,19 +286,19 @@ module LinkedList
|
|
286
286
|
private
|
287
287
|
|
288
288
|
def __unlink_node(node)
|
289
|
+
@head = node.next if node.prev.nil?
|
290
|
+
@tail = node.prev if node.next.nil?
|
291
|
+
|
289
292
|
if node.prev.nil?
|
290
293
|
node.next.prev = nil if node.next
|
291
|
-
@head = node.next
|
292
294
|
elsif node.next.nil?
|
293
295
|
node.prev.next = nil if node.prev
|
294
|
-
@tail = node.prev
|
295
296
|
else
|
296
297
|
node.prev.next, node.next.prev = node.next, node.prev
|
297
298
|
end
|
298
299
|
@length -= 1
|
299
300
|
end
|
300
301
|
|
301
|
-
|
302
302
|
def __to_matcher(val = nil, &block)
|
303
303
|
raise ArgumentError, 'either value or block should be passed' if val && block_given?
|
304
304
|
block = ->(e) { e == val } unless block_given?
|
data/lib/linked-list/version.rb
CHANGED
data/linked-list.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '>=
|
21
|
+
spec.add_development_dependency 'bundler', '>= 2.0', '< 3.0'
|
22
22
|
spec.add_development_dependency 'coveralls', '~> 0'
|
23
23
|
spec.add_development_dependency 'm', '~> 1.5', '>= 1.5.0'
|
24
24
|
spec.add_development_dependency 'minitest', '>= 5.0', '<= 6.0'
|
data/test/list_test.rb
CHANGED
@@ -510,20 +510,39 @@ describe LinkedList::List do
|
|
510
510
|
|
511
511
|
it 'deletes value from head' do
|
512
512
|
list.delete(node_1)
|
513
|
-
assert_equal [
|
514
|
-
assert_equal
|
513
|
+
assert_equal [node_2.data, node_3.data], list.to_a
|
514
|
+
assert_equal node_2.data, list.first
|
515
|
+
assert_equal node_3.data, list.last
|
515
516
|
end
|
516
517
|
|
517
518
|
it 'deletes value from middle' do
|
518
519
|
list.delete(node_2)
|
519
|
-
assert_equal [
|
520
|
+
assert_equal [node_1.data, node_3.data], list.to_a
|
521
|
+
assert_equal node_1.data, list.first
|
522
|
+
assert_equal node_3.data, list.last
|
520
523
|
end
|
521
524
|
|
522
525
|
|
523
526
|
it 'deletes value from tail' do
|
524
527
|
list.delete(node_3)
|
525
|
-
assert_equal [
|
526
|
-
assert_equal
|
528
|
+
assert_equal [node_1.data, node_2.data], list.to_a
|
529
|
+
assert_equal node_1.data, list.first
|
530
|
+
assert_equal node_2.data, list.last
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
534
|
+
describe 'delete edge cases' do
|
535
|
+
it 'resets original list state when deleting the last node of the list' do
|
536
|
+
assert_nil list.first
|
537
|
+
assert_nil list.last
|
538
|
+
|
539
|
+
list.push(node_1)
|
540
|
+
assert_equal node_1.data, list.first
|
541
|
+
assert_equal node_1.data, list.last
|
542
|
+
|
543
|
+
list.delete(node_1)
|
544
|
+
assert_nil list.first
|
545
|
+
assert_nil list.last
|
527
546
|
end
|
528
547
|
end
|
529
548
|
end
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linked-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury Velikanau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.3'
|
20
|
-
- - "<="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '2.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.3'
|
30
|
-
- - "<="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '2.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: coveralls
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,22 +48,22 @@ dependencies:
|
|
48
48
|
name: m
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 1.5.0
|
54
51
|
- - "~>"
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: '1.5'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.5.0
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 1.5.0
|
64
61
|
- - "~>"
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: '1.5'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.5.0
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: minitest
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '0'
|
147
147
|
requirements: []
|
148
|
-
rubygems_version: 3.
|
148
|
+
rubygems_version: 3.1.2
|
149
149
|
signing_key:
|
150
150
|
specification_version: 4
|
151
151
|
summary: Ruby implementation of Doubly Linked List, following some Ruby idioms.
|