class Acl9::SetupGenerator

Public Instance Methods

create_initializer() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 27
    def create_initializer
      initializer "acl9.rb" do
        <<-RUBY.strip_heredoc
        # See https://github.com/be9/acl9#configuration for details
        #
        # Acl9.configure do |c|
        #   c.default_role_class_name = 'Role'
        #   c.default_subject_class_name = 'User'
        #   c.default_subject_method     = :current_user
        #   c.default_association_name   = :role_objects
        #   c.default_join_table_name    = nil
        #   c.protect_global_roles       = true
        #   c.normalize_role_names       = true
        # end
        RUBY
      end
    end
create_migration_file() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 13
def create_migration_file
  migration_template "create_role_tables.rb", File.join(db_migrate_path, "create_#{role_name}_tables.rb")
end
create_models() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 17
def create_models
  template "role.rb", "app/models/#{role_name}.rb"

  objects.each do |object|
    my_inject "app/models/#{object}.rb", object.classify, "  #{object_helper}\n"
  end

  my_inject "app/models/#{subject_name}.rb", subject_class_name, "  #{subject_helper}\n"
end

Private Instance Methods

habtm_table() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 66
def habtm_table
  Acl9.config.default_join_table_name || [ subject_name, role_name ].map(&:pluralize).sort.join('_')
end
model_base_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 58
def model_base_name
  r5? ? ApplicationRecord : ActiveRecord::Base
end
my_inject(file_name, class_name, string) click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 82
    def my_inject file_name, class_name, string
      inject_into_class file_name, class_name, string
    rescue Errno::ENOENT
      create_file file_name do
        <<-RUBY.strip_heredoc
        class #{class_name} < ActiveRecord::Base
        #{string}
        end
        RUBY
      end
    end
object_helper() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 74
def object_helper
  "acts_as_authorization_object" + ( object_options ? " #{object_options}" : '' )
end
object_options() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 106
def object_options
  [ role_options, subject_options ].compact.join ', '
end
objects() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 114
def objects
  @objects ||= arg_objects.map{|o|o.underscore.singularize}
end
r5?() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 62
def r5?
  Rails.gem_version >= Gem::Version.new(5)
end
role_class_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 54
def role_class_name
  role_name.classify
end
role_helper() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 78
def role_helper
  "acts_as_authorization_role" + ( role_options ? " #{role_options}" : '' )
end
role_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 46
def role_name
  arg_role.underscore.singularize
end
role_options() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 94
def role_options
  if defined?(Acl9::config) && Acl9::config[:default_subject_class_name].to_s.classify != subject_class_name
    "subject_class_name: #{subject_class_name}"
  end
end
role_table_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 50
def role_table_name
  role_name.tableize
end
subject_class_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 118
def subject_class_name
  subject_name.classify
end
subject_helper() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 70
def subject_helper
  "acts_as_authorization_subject" + ( subject_options ? " #{subject_options}" : '' )
end
subject_name() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 110
def subject_name
  @subject_name ||= arg_subject.underscore.singularize
end
subject_options() click to toggle source
# File lib/generators/acl9/setup/setup_generator.rb, line 100
def subject_options
  if defined?(Acl9::config) && Acl9::config[:default_role_class_name].to_s.classify != role_class_name
    "role_class_name: #{role_class_name}"
  end
end