double_linked_list 0.3.4 → 0.4.0

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: 3bdfc14854f4df72e92027559ad64d69da90b6b9
4
- data.tar.gz: 433d10e44999deefbed66cc7e29f967592b1dfbb
3
+ metadata.gz: ea08489c7b0cdb6bec170f49dba3857db90c946e
4
+ data.tar.gz: ce028edb83320cf4ce3e6c3702f45b8134f73386
5
5
  SHA512:
6
- metadata.gz: b8665bb1487c8e219f4d52d402646345ce065b33849afae5aa767c33ea4f86656b9e852ff47a79a218de3817d828e1d84f71a19c08af89340f4b7babd3db3080
7
- data.tar.gz: 9519fa4e8e2cbc8137fcd096ac580738d6510d957eb5a00c395b9157b78d073e03b4c5a02ae9765159abb10fa834dd5502b976045bc283fc5f653801c8ed0482
6
+ metadata.gz: 7e62df4f0714f54faad2e00bedd4c44399edabc7a995a10dbe1f9878431311b28438425acb25d9175c61b42a8616baca58e226d7bbab19494b8a82b8f40da098
7
+ data.tar.gz: 542ce5843c55faf00ffdfa37b776c1fb5fa7567128286c4ed857c532d486148b1b74715b2e3dd9dbb34e0ad04402aeca3f8b765952faccba414138b6765af00f
data/README.md CHANGED
@@ -38,6 +38,21 @@ llist.next.next.datum #=> 3
38
38
  llist.next.next.next #=> nil
39
39
  llist.next.next.prev.datum #=> 2
40
40
  ```
41
+
42
+ Elements in the list delegate methods to datum
43
+
44
+ ```ruby
45
+ class DatumExample
46
+ def hello
47
+ true
48
+ end
49
+ end
50
+ dll = DoubleLinkedList.from_a(DatumExample.new, DatumExample.new, DatumExample.new, DatumExample.new)
51
+ dll.head.hello # => true
52
+ dll.next.prev.hello # => true
53
+ dll.last.hello # => true
54
+ dll.last.next.hello # => NoMethodError: undefined method `hello' for nil:NilClass
55
+ ```
41
56
  __last:__
42
57
 
43
58
  ```ruby
@@ -103,6 +103,18 @@ class DoubleLinkedList
103
103
  extract_sequences(sequences)
104
104
  end
105
105
 
106
+ def method_missing(method, *args, &block)
107
+ if datum.respond_to?(method)
108
+ datum.send(method, *args, &block)
109
+ else
110
+ super
111
+ end
112
+ end
113
+
114
+ def respond_to_missing?(method_name, include_private = false)
115
+ datum.respond_to?(method_name) ? true : false
116
+ end
117
+
106
118
  protected
107
119
 
108
120
  def find_multiple(&block)
@@ -1,3 +1,3 @@
1
1
  class DoubleLinkedList
2
- VERSION = "0.3.4"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -9,7 +9,9 @@ class DoubleLinkedList
9
9
  :map,
10
10
  :each,
11
11
  :reduce,
12
- :count
12
+ :count,
13
+ :all?,
14
+ :any?
13
15
  ] => :head
14
16
 
15
17
  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.4
4
+ version: 0.4.0
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-09-05 00:00:00.000000000 Z
11
+ date: 2017-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.4.5
110
+ rubygems_version: 2.5.2
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: The missing Ruby Double Linked List