class Madmin::Generators::InstallGenerator

Public Instance Methods

copy_controller() click to toggle source
# File lib/generators/madmin/install/install_generator.rb, line 14
def copy_controller
  template("controller.rb.tt", "app/controllers/madmin/application_controller.rb")
end
eager_load() click to toggle source
# File lib/generators/madmin/install/install_generator.rb, line 10
def eager_load
  Rails.application.eager_load!
end
generate_resources() click to toggle source
# File lib/generators/madmin/install/install_generator.rb, line 31
def generate_resources
  generateable_models.each do |model|
    if model.table_exists?
      call_generator "madmin:resource", model.to_s
    else
      puts "Skipping #{model} because database table does not exist"
    end
  end
end
generate_routes() click to toggle source
# File lib/generators/madmin/install/install_generator.rb, line 18
def generate_routes
  if rails6_1_and_up?
    route "draw :madmin", file: ROUTES_FILE[:default]
    template("routes.rb.tt", "config/routes/madmin.rb")
  end

  if route_namespace_exists?
    route "root to: \"dashboard#show\"", indentation: separated_routes_file? ? 2 : 4, sentinel: /namespace :madmin do\s*\n/m
  else
    route "root to: \"dashboard#show\"", namespace: [:madmin]
  end
end

Private Instance Methods

active_record_models() click to toggle source
# File lib/generators/madmin/install/install_generator.rb, line 50
def active_record_models
  ObjectSpace.each_object(ActiveRecord::Base.singleton_class)
end
generateable_models() click to toggle source

Skip Abstract classes, ActiveRecord::Base, and auto-generated HABTM models

# File lib/generators/madmin/install/install_generator.rb, line 44
def generateable_models
  active_record_models.reject do |model|
    model.abstract_class? || model == ActiveRecord::Base || model.name.start_with?("HABTM_")
  end
end