double_linked_list 0.3.0 → 0.3.1

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