Class: RoleFu::Generators::AbilitiesGenerator

Inherits:
ActiveRecord::Generators::Base
  • Object
show all
Defined in:
lib/generators/role_fu/abilities_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details



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

def self.banner
  "bin/rails generate role_fu:abilities [NAME] [options]\n\n" \
  "Generates the permission model and migration.\n" \
  "  NAME is the name of the permission model (default: 'abilities')."
end

Instance Method Details

#create_abilities_migrationObject



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

def create_abilities_migration
  migration_template "abilities_migration.rb.erb", "db/migrate/role_fu_create_permissions.rb"
end

#generate_permission_modelObject



20
21
22
# File 'lib/generators/role_fu/abilities_generator.rb', line 20

def generate_permission_model
  template "permission.rb.erb", "app/models/permission.rb"
end

#inject_into_role_modelObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/role_fu/abilities_generator.rb', line 28

def inject_into_role_model
  role_cname = RoleFu.configuration.role_class_name
  path = "app/models/#{role_cname.underscore}.rb"

  if File.exist?(path)
    inject_into_class(path, role_cname.constantize) do
      "  has_many :permissions, dependent: :destroy\n"
    end
  else
    say "Role model #{role_cname} not found. Please add 'has_many :permissions' manually."
  end
end

#inject_into_user_modelObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/generators/role_fu/abilities_generator.rb', line 41

def inject_into_user_model
  user_cname = RoleFu.configuration.user_class_name
  path = "app/models/#{user_cname.underscore}.rb"

  if File.exist?(path)
    inject_into_class(path, user_cname.constantize) do
      "  include RoleFu::Ability\n"
    end
  else
    say "User model #{user_cname} not found. Please add 'include RoleFu::Ability' manually."
  end
end