123456789_123456789_123456789_123456789_123456789_

Class: Rake::LinkedList::EmptyLinkedList

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
self, ::Rake::LinkedList, Enumerable
Inherits: Rake::LinkedList
Defined in: lib/rake/linked_list.rb

Overview

Represent an empty list, using the Null Object Pattern.

When inheriting from the ::Rake::LinkedList class, you should implement a type specific Empty class as well. Make sure you set the class instance variable @parent to the associated list class (this allows conj, cons and make to work polymorphically).

Constant Summary

::Rake::LinkedList - Inherited

EMPTY

Class Method Summary

::Rake::LinkedList - Inherited

.cons

Cons a new head onto the tail list.

.empty

The standard empty list class for the given ::Rake::LinkedList class.

.make

Make a list out of the given arguments.

.new

Instance Attribute Summary

::Rake::LinkedList - Inherited

#empty?

Is the list empty?

#head, #tail

Instance Method Summary

::Rake::LinkedList - Inherited

#==

Lists are structurally equivalent.

#conj

Polymorphically add a new element to the head of a list.

#each

For each item in the list.

#inspect

Same as #to_s, but with inspected items.

#to_s

Convert to string: LL(item, item…).

Constructor Details

.newEmptyLinkedList

[ GitHub ]

  
# File 'lib/rake/linked_list.rb', line 88

def initialize
end

Class Method Details

.cons(head, tail)

[ GitHub ]

  
# File 'lib/rake/linked_list.rb', line 95

def self.cons(head, tail)
  @parent.cons(head, tail)
end

Instance Attribute Details

#empty?Boolean (readonly)

[ GitHub ]

  
# File 'lib/rake/linked_list.rb', line 91

def empty?
  true
end