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