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



50
51
52
53
54
55
56
# File 'lib/generators/admin_view_generator.rb', line 50

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



16
17
18
19
20
# File 'lib/generators/admin_view_generator.rb', line 16

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



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

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



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

def create_controller
  @attributes_symbols = get_model_columns.dup.delete_if {|attribute| ['id', 'created_at', 'updated_at'].include? attribute.name }.collect {|attribute| ":#{attribute.name}" }
  template "controller.rb", File.join("app/controllers/admin", "#{controller_file_name}_controller.rb")
end

#create_controller_rspecObject



33
34
35
# File 'lib/generators/admin_view_generator.rb', line 33

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

#create_helperObject



37
38
39
40
# File 'lib/generators/admin_view_generator.rb', line 37

def create_helper
  empty_directory "app/helpers/admin"
  template "base_helper.rb", File.join("app/helpers/admin", "base_helper.rb")
end

#create_viewsObject



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

def create_views
  empty_directory "app/views/admin/#{controller_file_name}"
  @attributes = get_model_columns
  available_views.each do |view|
    template "views/#{view}.html.erb", File.join("app/views/admin", controller_file_name, "#{view}.html.erb")
  end
end