double_linked_list 0.3.4 → 0.4.0

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