Class: Ideyabox::Generators::ImagesScaffoldGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(args, *options) ⇒ ImagesScaffoldGenerator

Returns a new instance of ImagesScaffoldGenerator.



13
14
15
16
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 13

def initialize(args, *options)
  super(args, *options)
  initialize_views_variables
end

Instance Method Details

#add_locale_templatesObject



22
23
24
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 22

def add_locale_templates
  add_to_locales
end

#add_resources_and_rootObject



26
27
28
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 26

def add_resources_and_root
  add_resource_route
end

#add_to_parent_viewObject



30
31
32
33
34
35
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 30

def add_to_parent_view
  final_string = "\n- content_for(:page_sidebar) do\n  - unless @#{parent_name}.new_record?\n    %h2 Gallery\n    .bordered_box\n      = render 'admin/#{plural_resource_name}/#{plural_resource_name}'\n"

  inject_into_file "app/views/admin/#{plural_parent_name}/edit.html.haml", final_string, :before => "- content_for :page_header do"

end

#copy_viewsObject



18
19
20
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 18

def copy_views
  generate_views
end

#updating_modelsObject



37
38
39
40
41
# File 'lib/generators/ideyabox/images_scaffold/images_scaffold_generator.rb', line 37

def updating_models
  inject_into_file "app/models/#{parent_name}.rb", "\n  has_many :#{plural_resource_name}", :after => "class #{parent_name.capitalize} < ActiveRecord::Base"   
  inject_into_file "app/models/#{resource_name}.rb", "\n  belongs_to :#{parent_name}\n  mount_uploader :image, #{@model_name.demodulize}Uploader", :after => "class #{@model_name.demodulize} < ActiveRecord::Base"
  inject_into_file "app/models/#{resource_name}.rb", "\n  before_create :add_position\n  def add_position\n    last_#{resource_name} = self.#{parent_name}.#{plural_resource_name}.order(\"position\").last\n    if last_#{resource_name}\n      self.position = last_#{resource_name}.position + 1\n    else\n      self.position = 1\n    end\n  end\n", :after => "\n  mount_uploader :image, #{@model_name.demodulize}Uploader\n"
end