Class: AdminViewGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::ResourceHelpers
Defined in:
lib/generators/admin_view_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_resource_routeObject



42
43
44
45
46
47
48
# File 'lib/generators/admin_view_generator.rb', line 42

def add_resource_route
  return if not File.exists?("config/routes.rb")
  route_config =  "namespace :admin do "
  route_config << "resources :#{file_name.pluralize}"
  route_config << " end"
  route route_config
end

#create_base_controllerObject



12
13
14
15
16
# File 'lib/generators/admin_view_generator.rb', line 12

def create_base_controller
  empty_directory "app/controllers/admin"
  path = File.join("app/controllers/admin", "base_controller.rb")
  template("base_controller.rb", path) unless File.exists?(path)
end

#create_base_controller_specObject



18
19
20
21
22
# File 'lib/generators/admin_view_generator.rb', line 18

def create_base_controller_spec
  empty_directory "spec/controllers/admin"
  path = File.join("spec/controllers/admin", "base_controller_spec.rb")
  template("base_controller_spec.rb", path) unless File.exists?(path)
end

#create_controllerObject



24
25
26
# File 'lib/generators/admin_view_generator.rb', line 24

def create_controller
  template "controller.rb", File.join("app/controllers/admin", "#{controller_file_name}_controller.rb")
end

#create_controller_rspecObject



28
29
30
# File 'lib/generators/admin_view_generator.rb', line 28

def create_controller_rspec
  template "controller_spec.rb", File.join("spec/controllers/admin", "#{controller_file_name}_controller_spec.rb")
end

#create_viewsObject



32
33
34
35
36
37
38
39
40
# File 'lib/generators/admin_view_generator.rb', line 32

def create_views
  empty_directory "app/views/admin/#{controller_file_name}"
  if model_exists?(class_name)
    @attributes = class_name.constantize.send(:columns)
    available_views.each do |view|
      template "views/#{view}.html.erb", File.join("app/views/admin", controller_file_name, "#{view}.html.erb")
    end
  end
end