Speed up boot by tsorting as infrequently as possible

This commit is contained in:
Jeremy Kemper
2010-06-24 01:37:58 -07:00
parent 60ab9255f0
commit cdb8609c64
3 changed files with 4 additions and 9 deletions

View File

@@ -178,7 +178,7 @@ module Rails
railties.all { |r| initializers += r.initializers }
initializers += super
initializers += Finisher.initializers_for(self)
initializers
Collection.new(initializers)
end
protected

View File

@@ -39,11 +39,6 @@ module Rails
select { |i| i.before == initializer.name || i.name == initializer.after }.each(&block)
end
def initialize(initializers = [])
super(initializers)
replace(tsort)
end
def +(other)
Collection.new(to_a + other.to_a)
end
@@ -51,7 +46,7 @@ module Rails
def run_initializers(*args)
return if instance_variable_defined?(:@ran)
initializers.each do |initializer|
initializers.tsort.each do |initializer|
initializer.run(*args)
end
@ran = true
@@ -94,4 +89,4 @@ module Rails
end
end
end
end
end

View File

@@ -41,7 +41,7 @@ module RailtiesTest
boot_rails
initializers = Rails.application.initializers
initializers = Rails.application.initializers.tsort
index = initializers.index { |i| i.name == "dummy_initializer" }
selection = initializers[(index-3)..(index)].map(&:name).map(&:to_s)