class CollectionScaffoldGenerator

Public Class Methods

next_migration_number(dirname) click to toggle source

Implement the required interface for Rails::Generators::Migration. taken for record collection from: activerecord/lib/rails/generators/active_record/migration.rb

# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 48
def next_migration_number(dirname)
  next_migration_number = current_migration_number(dirname) + 1
  ActiveRecord::Migration.next_migration_number(next_migration_number)
end

Public Instance Methods

copy_view_files() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 32
def copy_view_files
  available_views.each do |view|
    formats.each do |format|
      filename = filename_with_extensions(view, format)
      template filename, File.join("app/views", controller_file_path, filename)
    end
  end
end
create_collection_file() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 24
def create_collection_file
  template 'collection.rb', File.join('app/models', class_path, file_name, "collection.rb")
end
create_controller_files() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 16
def create_controller_files
  template "controller.rb", File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb")
end
create_migration_file() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 41
def create_migration_file
  migration_template "create_table_migration.rb", "db/migrate/create_#{table_name}.rb"
end
create_model_file() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 20
def create_model_file
  template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
end
create_root_folder() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 28
def create_root_folder
  empty_directory File.join("app/views", controller_file_path)
end
create_route() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 12
def create_route
  route "collection_resources :#{plural_name}"
end

Protected Instance Methods

accessible_attributes() click to toggle source

taken from activerecord/lib/rails/generators/active_record/model/model_generator.rb

# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 64
def accessible_attributes
  attributes.reject(&:reference?)
end
attributes_with_index() click to toggle source

taken from activerecord/lib/rails/generators/active_record/model/model_generator.rb

# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 58
def attributes_with_index
  attributes.select { |a| !a.reference? && a.has_index? }
end
available_views() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 79
def available_views
  %w(index edit show new _form collection_edit)
end
collection_type_addition_for(attribute) click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 68
def collection_type_addition_for(attribute)
  case attribute.type
  when :boolean then ", type: Boolean"
  else ''
  end
end
filename_with_extensions(view, format) click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 91
def filename_with_extensions(view, format)
  [view, format, handler].compact.join('.')
end
formats() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 83
def formats
  [:html]
end
handler() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 87
def handler
  "Slim".safe_constantize ? :slim : :haml
end
parent_class_name() click to toggle source
# File lib/generators/collection_scaffold/collection_scaffold_generator.rb, line 75
def parent_class_name
  options[:parent] || "ActiveRecord::Base"
end