class Administrate::Generators::RoutesGenerator

Public Instance Methods

insert_dashboard_routes() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 16
def insert_dashboard_routes
  if should_route_dashboard?
    route(dashboard_routes)
  end
end
warn_about_invalid_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 22
def warn_about_invalid_models
  invalid_dashboard_models.each do |model|
    puts "WARNING: Unable to generate a dashboard for #{model}."
    if namespaced_models.include?(model)
      puts "       - Administrate does not yet support namespaced models."
    end
    if models_without_tables.include?(model)
      puts "       - It is not connected to a database table."
      puts "         Make sure your database migrations are up to date."
    end
  end

  unnamed_constants.each do |invalid_model|
    puts "NOTICE: Skipping dynamically generated model #{invalid_model}."
  end
end

Private Instance Methods

dashboard_resources() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 45
def dashboard_resources
  valid_dashboard_models.map do |model|
    model.to_s.pluralize.underscore
  end
end
dashboard_routes() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 75
def dashboard_routes
  ERB.new(File.read(routes_file_path)).result(binding)
end
database_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 55
def database_models
  ActiveRecord::Base.descendants.reject(&:abstract_class?)
end
invalid_dashboard_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 59
def invalid_dashboard_models
  (models_without_tables + namespaced_models + unnamed_constants).uniq
end
models_without_tables() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 63
def models_without_tables
  database_models.reject(&:table_exists?)
end
namespace() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 41
def namespace
  options[:namespace]
end
namespaced_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 67
def namespaced_models
  database_models.select { |model| model.to_s.include?("::") }
end
rails_routes_file_path() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 83
def rails_routes_file_path
  Rails.root.join("config/routes.rb")
end
routes_file_path() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 87
def routes_file_path
  File.expand_path(find_in_source_paths("routes.rb.erb"))
end
routes_includes_resources?() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 79
def routes_includes_resources?
  File.read(rails_routes_file_path).include?(dashboard_routes)
end
should_route_dashboard?() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 91
def should_route_dashboard?
  routes_includes_resources? || valid_dashboard_models.any?
end
unnamed_constants() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 71
def unnamed_constants
  ActiveRecord::Base.descendants.reject { |d| d.name == d.to_s }
end
valid_dashboard_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 51
def valid_dashboard_models
  database_models - invalid_dashboard_models
end