Skip to content

Commit e9e0715

Browse files
committed
Revert "Fix railsadminteam#3541 breaking on reload with parent_controller set"
This reverts commit 33e9214.
1 parent 3cffc00 commit e9e0715

File tree

4 files changed

+12
-79
lines changed

4 files changed

+12
-79
lines changed

lib/rails_admin.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def self.config(entity = nil, &block)
3232
if entity
3333
RailsAdmin::Config.model(entity, &block)
3434
elsif block_given?
35-
RailsAdmin::Config::ConstLoadSuppressor.suppressing { yield(RailsAdmin::Config) }
35+
suppress_const_load { yield(RailsAdmin::Config) }
3636
else
3737
RailsAdmin::Config
3838
end

lib/rails_admin/config.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -270,12 +270,10 @@ def parent_controller=(name)
270270
@parent_controller = name
271271

272272
if defined?(RailsAdmin::ApplicationController) || defined?(RailsAdmin::MainController)
273-
RailsAdmin::Config::ConstLoadSuppressor.allowing do
274-
RailsAdmin.send(:remove_const, :ApplicationController)
275-
RailsAdmin.send(:remove_const, :MainController)
276-
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
277-
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
278-
end
273+
RailsAdmin.send(:remove_const, :ApplicationController)
274+
RailsAdmin.send(:remove_const, :MainController)
275+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/application_controller.rb')
276+
load RailsAdmin::Engine.root.join('app/controllers/rails_admin/main_controller.rb')
279277
end
280278
end
281279

lib/rails_admin/config/const_load_suppressor.rb

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,14 @@
33
module RailsAdmin
44
module Config
55
module ConstLoadSuppressor
6-
class << self
7-
@original_const_missing = nil
8-
9-
def suppressing
10-
raise 'Constant Loading is already suppressed' if @original_const_missing
11-
12-
begin
13-
@original_const_missing = Object.method(:const_missing)
14-
intercept_const_missing
15-
yield
16-
ensure
17-
Object.define_singleton_method(:const_missing, @original_const_missing)
18-
@original_const_missing = nil
19-
end
20-
end
21-
22-
def allowing
23-
if @original_const_missing
24-
begin
25-
Object.define_singleton_method(:const_missing, @original_const_missing)
26-
yield
27-
ensure
28-
intercept_const_missing
29-
end
30-
else
31-
yield
32-
end
33-
end
34-
35-
private
36-
37-
def intercept_const_missing
38-
Object.define_singleton_method(:const_missing) do |name|
39-
ConstProxy.new(name.to_s)
40-
end
6+
def suppress_const_load
7+
original = Object.method(:const_missing)
8+
Object.define_singleton_method(:const_missing) do |name|
9+
ConstProxy.new(name.to_s)
4110
end
11+
yield
12+
ensure
13+
Object.define_singleton_method(:const_missing, original)
4214
end
4315

4416
class ConstProxy < BasicObject

spec/rails_admin/config/const_load_suppressor_spec.rb

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)