double_linked_list 0.3.0 → 0.3.1

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: 1c4fecf3828f34fc0ce12ea540b3f7d3588667f7
4
- data.tar.gz: 97d6333a9f75a6fc4e080c25778628473f12d9b9
3
+ metadata.gz: 7fc4807723f5a75b6867aa8962b01d1123cf0cc4
4
+ data.tar.gz: c261b1e957e7ad46c4b6d2f332410f581e901532
5
5
  SHA512:
6
- metadata.gz: 90ccb0be9058746d0a8e9e99ae1c365cfba7dc840895a07910e6aec929698842aae03a22e4aed77d522adb5ebccd5fcb399fdbd05ad42c48d00800675cfbd234
7
- data.tar.gz: b767d3efec0282b2fc3487ae4ca6141d2289d083ee8fe48d9a491dbad6d482f7749593857ad66b6b3667061e57f1cddec0e42d03d9cda15dbadbb704885ff667
6
+ metadata.gz: 9430a741a460c9b15d96fc8a64a48210b2895c82c80c64bbac87c1a5986989f7c08de2485e47423ec90b99c35aae355b39c7b9ce57af2021b165bf1d75241e3a
7
+ data.tar.gz: 9ee6ecbc06eb14f4511cf2cece5c6e5d5601a82088fd75d91e6ae843592d4b070bc3c60abb43a03f895d21f41a66412b729b0903365bba896f76c87f0b5d1e21
@@ -1,6 +1,7 @@
1
1
  class DoubleLinkedList
2
2
  class Element < Struct.new(:datum, :previous, :_next)
3
3
  include Enumerable
4
+
4
5
  alias_method :next, :_next
5
6
  alias_method :prev, :previous
6
7
 
@@ -14,6 +15,27 @@ class DoubleLinkedList
14
15
  _next.each(&block) if _next
15
16
  end
16
17
 
18
+ def count
19
+ reduce(0) { |p, n| p + 1 }
20
+ end
21
+ alias_method :included_next_count, :count
22
+
23
+ def next_count
24
+ c = 0
25
+ _each { |n| c += 1 }
26
+ c
27
+ end
28
+
29
+ def prev_count
30
+ c = 0
31
+ _reverse_each { |n| c += 1 }
32
+ c
33
+ end
34
+
35
+ def included_prev_count
36
+ prev_count + 1
37
+ end
38
+
17
39
  def find(datum)
18
40
  find_next_by do |elem|
19
41
  elem.datum == datum
@@ -1,3 +1,3 @@
1
1
  class DoubleLinkedList
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -9,6 +9,7 @@ class DoubleLinkedList
9
9
  :map,
10
10
  :each,
11
11
  :reduce,
12
+ :count
12
13
  ] => :head
13
14
 
14
15
  delegate [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: double_linked_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artur Pañach
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-13 00:00:00.000000000 Z
11
+ date: 2017-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler