Skip to content

Commit de8dab4

Browse files
author
Anatoly Shirykalov
committed
code_reload
1 parent 15a665e commit de8dab4

2 files changed

Lines changed: 29 additions & 19 deletions

File tree

lib/rails_admin/engine.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@ class Engine < Rails::Engine
2929
end
3030

3131
initializer 'RailsAdmin reload config in development' do
32-
unless Rails.application.config.cache_classes
33-
ActiveSupport::Reloader.before_class_unload do |cl|
34-
RailsAdmin::Config.reset_all_models
32+
if Rails.application.config.cache_classes
33+
if defined?(ActiveSupport::Reloader)
34+
ActiveSupport::Reloader.before_class_unload do
35+
RailsAdmin::Config.reset_all_models
36+
end
37+
# else
38+
# For Rails 4 not implemented
3539
end
3640
end
3741
end

spec/rails_admin/config_spec.rb

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -371,24 +371,30 @@ class Toggle < RailsAdmin::Config::Fields::Base
371371
expect(fields.map(&:name)).to match_array %i(id wins)
372372
end
373373

374-
it "updates model config when reloading code" do
375-
Team.send(:rails_admin, &team_config)
376-
377-
# this simulates rails code reloading
378-
Rails.application.config.cache_classes = false
379-
RailsAdmin::Engine.initializers.select do |i|
380-
i.name == "RailsAdmin reload config in development"
381-
end.first.block.call
382-
ActiveSupport::Reloader.new.tap do |instance|
383-
instance.class_unload!
384-
end
385-
# /end
374+
it "updates model config when reloading code for rails 5" do
375+
if defined?(ActiveSupport::Reloader)
376+
Team.send(:rails_admin, &team_config)
377+
378+
# this simulates rails code reloading
379+
Rails.application.config.cache_classes = false
380+
RailsAdmin::Engine.initializers.select do |i|
381+
i.name == "RailsAdmin reload config in development"
382+
end.first.block.call
383+
if defined?(ActiveSupport::Reloader)
384+
ActiveSupport::Reloader.new.tap(&:class_unload!)
385+
# else
386+
# for Rails 4 not imlemented yet
387+
end
388+
# /end
386389

387-
Team.send(:rails_admin, &team_config3)
388-
expect(fields.map(&:name)).to match_array %i(wins)
390+
Team.send(:rails_admin, &team_config3)
391+
expect(fields.map(&:name)).to match_array %i(wins)
389392

390-
# restore setting to previous value
391-
Rails.application.config.cache_classes = true
393+
# restore setting to previous value
394+
Rails.application.config.cache_classes = true
395+
# else
396+
# pending "for Rails 4 not implemented"
397+
end
392398
end
393399
end
394400
end

0 commit comments

Comments
 (0)