Class: Frill::List
- Inherits:
-
Object
show all
- Defined in:
- lib/frill/frill.rb
Defined Under Namespace
Classes: CycleDetecter, Node
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ List
Returns a new instance of List.
41
42
43
|
# File 'lib/frill/frill.rb', line 41
def initialize
@nodes = {}
end
|
Instance Method Details
#[](label) ⇒ Object
58
59
60
|
# File 'lib/frill/frill.rb', line 58
def [](label)
nodes[label]
end
|
#add(label) ⇒ Object
45
46
47
|
# File 'lib/frill/frill.rb', line 45
def add label
nodes[label] ||= Node.new label
end
|
#empty? ⇒ Boolean
62
63
64
|
# File 'lib/frill/frill.rb', line 62
def empty?
nodes.empty?
end
|
#include?(label) ⇒ Boolean
66
67
68
|
# File 'lib/frill/frill.rb', line 66
def include? label
nodes[label]
end
|
#index(label) ⇒ Object
70
71
72
|
# File 'lib/frill/frill.rb', line 70
def index label
to_a.index label
end
|
#move_before(label1, label2) ⇒ Object
49
50
51
52
53
54
55
56
|
# File 'lib/frill/frill.rb', line 49
def move_before label1, label2
node1 = add label1
node2 = add label2
node1.move_before node2
CycleDetecter.detect! nodes
end
|
#to_a ⇒ Object
74
75
76
77
78
79
80
81
82
|
# File 'lib/frill/frill.rb', line 74
def to_a
array = []
nodes.values.each do |node|
array += construct_array(node) unless array.include? node.label
end
array
end
|