Class: LightekVpm::Generators::ControllerGenerator

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

Overview

Custom scaffolding generator

Instance Method Summary collapse

Instance Method Details

#add_abilitiesObject



32
33
34
35
# File 'lib/generators/lightek_vpm/controller_generator.rb', line 32

def add_abilities
  ability_string = "n    can :manage, #{class_name}, user_id: user.id"
  inject_into_file "#{Rails.root}/app/models/ability.rb", ability_string, after: /def initialize[a-z()]+/i
end

#add_routesObject



26
27
28
29
30
# File 'lib/generators/lightek_vpm/controller_generator.rb', line 26

def add_routes
  routes_string = "resources :#{singular_name}"
  routes_string += ', except: :show' unless show_action?
  route routes_string
end

#copy_controller_and_spec_filesObject



13
14
15
# File 'lib/generators/lightek_vpm/controller_generator.rb', line 13

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

#copy_view_filesObject



17
18
19
20
21
22
23
24
# File 'lib/generators/lightek_vpm/controller_generator.rb', line 17

def copy_view_files
  directory_path = File.join('app/views', controller_file_path)
  empty_directory directory_path

  view_files.each do |file_name|
    template "views/#{file_name}.html.erb", File.join(directory_path, "#{file_name}.html.erb")
  end
end