module Rolify::Configure

Public Instance Methods

configure(*role_cnames) { |self| ... } click to toggle source
# File lib/rolify/configure.rb, line 7
def configure(*role_cnames)
  return if !sanity_check(role_cnames)
  yield self if block_given?
end
dynamic_shortcuts() click to toggle source
# File lib/rolify/configure.rb, line 12
def dynamic_shortcuts
  @@dynamic_shortcuts
end
dynamic_shortcuts=(is_dynamic) click to toggle source
# File lib/rolify/configure.rb, line 16
def dynamic_shortcuts=(is_dynamic)
  @@dynamic_shortcuts = is_dynamic
end
orm() click to toggle source
# File lib/rolify/configure.rb, line 20
def orm
  @@orm
end
orm=(orm) click to toggle source
# File lib/rolify/configure.rb, line 24
def orm=(orm)
  @@orm = orm
end
remove_role_if_empty() click to toggle source
# File lib/rolify/configure.rb, line 48
def remove_role_if_empty
  @@remove_role_if_empty
end
remove_role_if_empty=(is_remove) click to toggle source
# File lib/rolify/configure.rb, line 44
def remove_role_if_empty=(is_remove)
  @@remove_role_if_empty = is_remove
end
use_defaults() click to toggle source
# File lib/rolify/configure.rb, line 37
def use_defaults
  configure do |config|
    config.dynamic_shortcuts = false
    config.orm = "active_record"
  end
end
use_dynamic_shortcuts() click to toggle source
# File lib/rolify/configure.rb, line 32
def use_dynamic_shortcuts
  return if !sanity_check([])
  self.dynamic_shortcuts = true
end
use_mongoid() click to toggle source
# File lib/rolify/configure.rb, line 28
def use_mongoid
  self.orm = "mongoid"
end

Private Instance Methods

role_table_missing?(role_class) click to toggle source
# File lib/rolify/configure.rb, line 67
def role_table_missing?(role_class)
  !role_class.table_exists?
rescue ActiveRecord::NoDatabaseError
  true
end
sanity_check(role_cnames) click to toggle source
# File lib/rolify/configure.rb, line 54
def sanity_check(role_cnames)
  return true if ARGV.reduce(nil) { |acc,arg| arg =~ /assets:/ if acc.nil? } == 0

  role_cnames.each do |role_cname|
    role_class = role_cname.constantize
    if role_class.superclass.to_s == "ActiveRecord::Base" && role_table_missing?(role_class)
      warn "[WARN] table '#{role_cname}' doesn't exist. Did you run the migration? Ignoring rolify config."
      return false
    end
  end
  true
end