Load rake tasks defined in superclasses in context of railties
This commit is contained in:
parent
8636f64def
commit
b417cfbf01
@ -191,6 +191,13 @@ def load_console
|
|||||||
|
|
||||||
def load_tasks
|
def load_tasks
|
||||||
self.class.rake_tasks.each(&:call)
|
self.class.rake_tasks.each(&:call)
|
||||||
|
|
||||||
|
# load also tasks from all superclasses
|
||||||
|
klass = self.class.superclass
|
||||||
|
while klass.respond_to?(:rake_tasks)
|
||||||
|
klass.rake_tasks.each { |t| self.instance_exec(&t) }
|
||||||
|
klass = klass.superclass
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_generators
|
def load_generators
|
||||||
|
@ -103,6 +103,30 @@ class MyTie < Rails::Railtie
|
|||||||
assert $ran_block
|
assert $ran_block
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "rake_tasks block defined in superclass of railtie is also executed" do
|
||||||
|
$ran_block = []
|
||||||
|
|
||||||
|
class Rails::Railtie
|
||||||
|
rake_tasks do
|
||||||
|
$ran_block << railtie_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class MyTie < Rails::Railtie
|
||||||
|
railtie_name "my_tie"
|
||||||
|
end
|
||||||
|
|
||||||
|
require "#{app_path}/config/environment"
|
||||||
|
|
||||||
|
assert_equal [], $ran_block
|
||||||
|
require 'rake'
|
||||||
|
require 'rake/testtask'
|
||||||
|
require 'rake/rdoctask'
|
||||||
|
|
||||||
|
AppTemplate::Application.load_tasks
|
||||||
|
assert $ran_block.include?("my_tie")
|
||||||
|
end
|
||||||
|
|
||||||
test "generators block is executed when MyApp.load_generators is called" do
|
test "generators block is executed when MyApp.load_generators is called" do
|
||||||
$ran_block = false
|
$ran_block = false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user