class ActiveRecord::Generators::RolifyGenerator

Public Instance Methods

copy_rolify_migration() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 37
def copy_rolify_migration
  migration_template "migration.rb", "db/migrate/rolify_create_#{table_name}.rb", migration_version: migration_version
end
ensure_user_class_defined() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 12
def ensure_user_class_defined
  unless user_class_defined?
    prompt_missing_user
    abort
  end
end
generate_model() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 19
def generate_model
  invoke "active_record:model", [ name ], :migration => false
end
inject_role_class() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 23
def inject_role_class
  if args[1]=="engine"
    if args[2]=="devise"
      require 'devise'
      require "#{ENGINE_ROOT}/config/initializers/devise.rb"
      require "#{ENGINE_ROOT}/app/models/#{user_cname.downcase}.rb"
    else
      require "#{ENGINE_ROOT}/app/models/#{user_cname.downcase}.rb"
    end
  end

  inject_into_class(model_path, class_name, model_content)
end

Private Instance Methods

join_table() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 43
def join_table
  user_class.table_name + "_" + table_name
end
migration_version() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 89
def migration_version
  if versioned_migrations?
    "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
  end
end
model_content() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 59
def model_content
  ERB.new(File.read(File.join(__dir__, 'templates/model.rb'))).result(binding)
end
model_path() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 55
def model_path
  File.join("app", "models", "#{file_path}.rb")
end
prompt_missing_user() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 78
      def prompt_missing_user
        puts <<MSG
Rolify expected a model named #{user_cname} to be defined but could not find one.
Please ensure that this model exists and is not mis-spelled and re-run the generator.
MSG
      end
role_reference() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 51
def role_reference
  class_name.demodulize.underscore
end
user_class() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 63
def user_class
  user_cname.constantize
end
user_class_defined?() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 67
def user_class_defined?
  user_class
  true
rescue NameError => ex
  if ex.missing_name == user_cname
    false
  else
    raise ex
  end
end
user_reference() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 47
def user_reference
  user_cname.demodulize.underscore
end
versioned_migrations?() click to toggle source
# File lib/generators/active_record/rolify_generator.rb, line 85
def versioned_migrations?
  Rails::VERSION::MAJOR >= 5
end