Class: Gluttonberg::ResourceGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/gluttonberg/resource/resource_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args, *options) ⇒ ResourceGenerator

Returns a new instance of ResourceGenerator.



18
19
20
21
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 18

def initialize(args, *options)
  super(args, *options)
  parse_attributes!
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 8

def name
  @name
end

#typeObject

Returns the value of attribute type.



8
9
10
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 8

def type
  @type
end

Class Method Details

.source_rootObject



23
24
25
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 23

def self.source_root
  @source_root ||= File.join(File.dirname(__FILE__), 'templates')
end

Instance Method Details

#add_configObject



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

def add_config
  menu_config_filename = "config/initializers/gluttonberg_menu_settings.rb"
  code =  "Gluttonberg::Components.register(:#{plural_name}, :label => '#{plural_class_name}', :admin_url => :admin_#{plural_name}, :can_model_name => '#{class_name}')\n"
  if File.exist?(menu_config_filename)
    append_file(menu_config_filename, code)
  else
    File.open(menu_config_filename, "a+") { |file| file.write(code) }
  end
end

#add_routeObject



44
45
46
47
48
49
50
51
52
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 44

def add_route
  route_str = "namespace :admin do"
  route_str << draggable_move_route if draggable?
  route_str << import_export_routes if importable?
  route_str << resource_admin_routes
  route_str << "end"
  route(route_str)
  route("resources :#{plural_name}")
end

#generate_controllerObject



35
36
37
38
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 35

def generate_controller
  template 'admin_controller.rb', File.join('app/controllers/admin', "#{plural_name}_controller.rb")
  template 'public_controller.rb', File.join('app/controllers', "#{plural_name}_controller.rb")
end

#generate_migrationObject



27
28
29
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 27

def generate_migration
  migration_template "migration.rb", "db/migrate/create_#{file_name}.rb"
end

#generate_modelObject



31
32
33
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 31

def generate_model
  template "model.rb", "app/models/#{file_name}.rb"
end

#generate_viewsObject



40
41
42
# File 'lib/generators/gluttonberg/resource/resource_generator.rb', line 40

def generate_views
  build_views
end