lib/avo/app.rb in avo-2.18.0 vs lib/avo/app.rb in avo-2.18.1.pre.1.eagerloaddirs
- old
+ new
@@ -15,10 +15,18 @@
class_attribute :params, default: {}
class_attribute :translation_enabled, default: false
class_attribute :error_messages
class << self
+ def eager_load(entity)
+ paths = Avo::ENTITIES.fetch entity
+
+ return unless paths.present?
+
+ Rails.autoloaders.main.eager_load_dir(Rails.root.join(*paths).to_s)
+ end
+
def boot
init_fields
if Rails.cache.instance_of?(ActiveSupport::Cache::NullStore)
self.cache_store ||= ActiveSupport::Cache::MemoryStore.new
@@ -89,11 +97,11 @@
def check_bad_resources
resources.each do |resource|
has_model = resource.model_class.present?
unless has_model
- possible_model = resource.class.to_s.gsub 'Resource', ''
+ possible_model = resource.class.to_s.gsub "Resource", ""
Avo::App.error_messages.push({
url: "https://docs.avohq.io/2.0/resources.html#custom-model-class",
target: "_blank",
message: "#{resource.class.to_s} does not have a valid model assigned. It failed to find the #{possible_model} model. \n\r Please create that model or assign one using self.model_class = YOUR_MODEL"
@@ -117,9 +125,11 @@
resource.new if resource.is_a? Class
end
end
def init_dashboards
+ eager_load :dashboards unless Rails.application.config.eager_load
+
self.dashboards = Dashboards::BaseDashboard.descendants
.select do |dashboard|
dashboard != Dashboards::BaseDashboard
end
.uniq do |dashboard|