Class: Frill::List

Inherits:
Object
  • Object
show all
Defined in:
lib/frill/frill.rb

Defined Under Namespace

Classes: CycleDetecter, Node

Instance Method Summary collapse

Constructor Details

#initializeList

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

Returns:

  • (Boolean)


62
63
64
# File 'lib/frill/frill.rb', line 62

def empty?
  nodes.empty?
end

#include?(label) ⇒ Boolean

Returns:

  • (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_aObject



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