Class: CollectionScaffoldGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::Migration, Rails::Generators::ResourceHelpers
Defined in:
lib/generators/collection_scaffold/collection_scaffold_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

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



48
49
50
51
# 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

Instance Method Details

#copy_view_filesObject



32
33
34
35
36
37
38
39
# 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_fileObject



24
25
26
# 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_filesObject



16
17
18
# 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_fileObject



41
42
43
# 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_fileObject



20
21
22
# 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_folderObject



28
29
30
# 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_routeObject



12
13
14
# File 'lib/generators/collection_scaffold/collection_scaffold_generator.rb', line 12

def create_route
  route "collection_resources :#{plural_name}"
end