Class: Rails::Initializable::Collection
Instance Method Summary
collapse
Methods included from Enumerable
#as_json, #compact_blank, #exclude?, #excluding, #in_order_of, #including, #index_by, #index_with, #many?, #maximum, #minimum, #pick, #pluck, #sole
Constructor Details
#initialize(initializers = nil) ⇒ Collection
Returns a new instance of Collection.
43
44
45
46
47
48
|
# File 'railties/lib/rails/initializable.rb', line 43
def initialize(initializers = nil)
@order = Hash.new { |hash, key| hash[key] = Set.new }
@resolve = Hash.new { |hash, key| hash[key] = Set.new }
@collection = []
concat(initializers) if initializers
end
|
Instance Method Details
69
70
71
|
# File 'railties/lib/rails/initializable.rb', line 69
def +(other)
dup.concat(other.to_a)
end
|
#<<(initializer) ⇒ Object
73
74
75
76
77
78
79
|
# File 'railties/lib/rails/initializable.rb', line 73
def <<(initializer)
@collection << initializer
@order[initializer.before] << initializer.name if initializer.before
@order[initializer.name] << initializer.after if initializer.after
@resolve[initializer.name] << initializer
self
end
|
#concat(*initializer_collections) ⇒ Object
88
89
90
91
92
93
|
# File 'railties/lib/rails/initializable.rb', line 88
def concat(*initializer_collections)
initializer_collections.each do |initializers|
initializers.each(&method(:<<))
end
self
end
|
#each(&block) ⇒ Object
Also known as:
tsort_each_node
58
59
60
|
# File 'railties/lib/rails/initializable.rb', line 58
def each(&block)
@collection.each(&block)
end
|
#has?(name) ⇒ Boolean
95
96
97
|
# File 'railties/lib/rails/initializable.rb', line 95
def has?(name)
@resolve.key?(name)
end
|
54
55
56
|
# File 'railties/lib/rails/initializable.rb', line 54
def last
@collection.last
end
|
#push(*initializers) ⇒ Object
Also known as:
append
81
82
83
84
|
# File 'railties/lib/rails/initializable.rb', line 81
def push(*initializers)
initializers.each(&method(:<<))
self
end
|
50
51
52
|
# File 'railties/lib/rails/initializable.rb', line 50
def to_a
@collection
end
|
#tsort_each_child(initializer, &block) ⇒ Object
63
64
65
66
67
|
# File 'railties/lib/rails/initializable.rb', line 63
def tsort_each_child(initializer, &block)
@order[initializer.name].each do |name|
@resolve[name].each(&block)
end
end
|