Class: DynamicImage::Generators::ResourceGenerator

Inherits:
Rails::Generators::ResourceGenerator
  • Object
show all
Includes:
ActiveRecord::Generators::Migration
Defined in:
lib/rails/generators/dynamic_image/resource/resource_generator.rb

Overview

Creates a DynamicImage resource: a model including Model, a controller including Controller, a migration with the columns DynamicImage needs, and an image_resources route.

bin/rails generate dynamic_image:resource image

Additional attributes are passed through to the migration, letting a resource carry fields of its own.

bin/rails generate dynamic_image:resource photo caption:string

The migration is rendered from Schema. The Active Record generator can't express nullability or indexes through its name:type arguments.

Instance Method Summary collapse

Constructor Details

#initialize(args, *options) ⇒ ResourceGenerator

Returns a new instance of ResourceGenerator.



28
29
30
31
# File 'lib/rails/generators/dynamic_image/resource/resource_generator.rb', line 28

def initialize(args, *options)
  @orm_args = args
  super
end

Instance Method Details

#add_controller_extensionObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/rails/generators/dynamic_image/resource/resource_generator.rb', line 53

def add_controller_extension
  inject_into_class(
    File.join("app/controllers",
              class_path,
              "#{file_name.pluralize}_controller.rb"),
    "#{class_name.pluralize}Controller"
  ) do
    "  include DynamicImage::Controller\n\n  private\n\n  " \
      "def model\n    #{class_name}\n  end\n"
  end
end

#add_model_extensionObject



65
66
67
68
69
70
71
72
# File 'lib/rails/generators/dynamic_image/resource/resource_generator.rb', line 65

def add_model_extension
  inject_into_class(
    File.join("app/models", class_path, "#{file_name}.rb"),
    class_name
  ) do
    "  include DynamicImage::Model\n"
  end
end

#alter_resource_routesObject



74
75
76
77
78
79
80
# File 'lib/rails/generators/dynamic_image/resource/resource_generator.rb', line 74

def alter_resource_routes
  gsub_file(
    File.join("config", "routes.rb"),
    " resources :#{file_name.pluralize}",
    " image_resources :#{file_name.pluralize}"
  )
end

#create_dynamic_image_migrationObject



46
47
48
49
50
51
# File 'lib/rails/generators/dynamic_image/resource/resource_generator.rb', line 46

def create_dynamic_image_migration
  migration_template(
    "create_table_migration.rb",
    File.join(db_migrate_path, "create_#{table_name}.rb")
  )
end