Codebase list ruby-linked-list / fresh-releases/main
New upstream release. Debian Janitor 1 year, 7 months ago
7 changed file(s) with 65 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
00 language: ruby
11 rvm:
2 - 2.6
2 - 2.7
33 cache: bundler
44 env:
55 CI: true
0 # 0.0.x / Unreleased
1
2 # 0.0.16 / 2021-09-21
3
4 ## Fixed
5
6 - Fixed bug when reference to prev node was not set correctly аfter using `shift`.
7
8 [Compare v0.0.15...v0.0.16](https://github.com/spectator/linked-list/compare/v0.0.15...v0.0.16)
9
10 # 0.0.15 / 2020-05-26
11
12 ## Fixed
13
14 - Fixed bug when deleting the last node of the list. The @tail value was not updated if the @head value was updated.
15
16 [Compare v0.0.14...v0.0.15](https://github.com/spectator/linked-list/compare/v0.0.14...v0.0.15)
17
018 # 0.0.14 / 2020-04-17
119
220 ## Fixed
0 ruby-linked-list (0.0.16-1) UNRELEASED; urgency=low
1
2 * New upstream release.
3
4 -- Debian Janitor <janitor@jelmer.uk> Sun, 16 Oct 2022 19:18:35 -0000
5
06 ruby-linked-list (0.0.14-2) unstable; urgency=medium
17
28 * Source-only upload for migration to testing
285285 private
286286
287287 def __unlink_node(node)
288 @head = node.next if node.prev.nil?
289 @tail = node.prev if node.next.nil?
290
288291 if node.prev.nil?
289292 node.next.prev = nil if node.next
290 @head = node.next
291293 elsif node.next.nil?
292294 node.prev.next = nil if node.prev
293 @tail = node.prev
294295 else
295296 node.prev.next, node.next.prev = node.next, node.prev
296297 end
297298 @length -= 1
298299 end
299
300300
301301 def __to_matcher(val = nil, &block)
302302 raise ArgumentError, 'either value or block should be passed' if val && block_given?
307307 def __shift
308308 head = @head
309309 @head = @head.next
310 head.next = nil
310 @head.prev = nil if @head
311311 head
312312 end
313313
11
22 module Linked
33 module List
4 VERSION = '0.0.14'
4 VERSION = '0.0.16'
55 end
66 end
1717 spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
1818 spec.require_paths = ['lib']
1919
20 spec.add_development_dependency 'bundler', '>= 1.3', '<= 2.0'
20 spec.add_development_dependency 'bundler', '>= 2.0', '< 3.0'
2121 spec.add_development_dependency 'coveralls', '~> 0'
2222 spec.add_development_dependency 'm', '~> 1.5', '>= 1.5.0'
2323 spec.add_development_dependency 'minitest', '>= 5.0', '<= 6.0'
509509
510510 it 'deletes value from head' do
511511 list.delete(node_1)
512 assert_equal ['bar', 'baz'], list.to_a
513 assert_equal 'bar', list.first
512 assert_equal [node_2.data, node_3.data], list.to_a
513 assert_equal node_2.data, list.first
514 assert_equal node_3.data, list.last
514515 end
515516
516517 it 'deletes value from middle' do
517518 list.delete(node_2)
518 assert_equal ['foo', 'baz'], list.to_a
519 assert_equal [node_1.data, node_3.data], list.to_a
520 assert_equal node_1.data, list.first
521 assert_equal node_3.data, list.last
519522 end
520523
521524
522525 it 'deletes value from tail' do
523526 list.delete(node_3)
524 assert_equal ['foo', 'bar'], list.to_a
525 assert_equal 'bar', list.last
527 assert_equal [node_1.data, node_2.data], list.to_a
528 assert_equal node_1.data, list.first
529 assert_equal node_2.data, list.last
530 end
531 end
532
533 describe 'delete edge cases' do
534 it 'resets original list state when deleting the last node of the list' do
535 assert_nil list.first
536 assert_nil list.last
537
538 list.push(node_1)
539 assert_equal node_1.data, list.first
540 assert_equal node_1.data, list.last
541
542 list.delete(node_1)
543 assert_nil list.first
544 assert_nil list.last
526545 end
527546 end
528547 end
618637 assert_nil list.first
619638 end
620639
640 it 'sets reference to the prev node' do
641 list.push(node_1)
642 list.push(node_2)
643 assert_nil node_1.prev
644 assert_equal node_2.prev, node_1
645
646 list.shift
647 assert_nil node_2.prev
648 end
649
621650 it 'reduces list length by 1' do
622651 list.push(node_1)
623652 list.shift