class Administrate::Generators::RoutesGenerator

Public Instance Methods

insert_dashboard_routes() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 24
def insert_dashboard_routes
  if valid_dashboard_models.any?
    route(dashboard_routes)
  end
end
warn_about_invalid_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 30
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 53
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 86
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 63
def database_models
  ActiveRecord::Base.descendants.
    reject(&:abstract_class?).
    reject { |k| k < Administrate::Generators::TestRecord }.
    sort_by(&:to_s)
end
invalid_dashboard_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 70
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 74
def models_without_tables
  database_models.reject(&:table_exists?)
end
namespace() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 49
def namespace
  options[:namespace]
end
namespaced_models() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 78
def namespaced_models
  database_models.select { |model| model.to_s.include?("::") }
end
routes_file_path() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 90
def routes_file_path
  File.expand_path(find_in_source_paths("routes.rb.erb"))
end
unnamed_constants() click to toggle source
# File lib/generators/administrate/routes/routes_generator.rb, line 82
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 59
def valid_dashboard_models
  database_models - invalid_dashboard_models
end