mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Speed up boot by tsorting as infrequently as possible
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user