module EffectiveMergery

Constants

VERSION

Public Class Methods

authorized?(controller, action, resource) click to toggle source
# File lib/effective_mergery.rb, line 19
def self.authorized?(controller, action, resource)
  if authorization_method.respond_to?(:call) || authorization_method.kind_of?(Symbol)
    raise Effective::AccessDenied.new() unless (controller || self).instance_exec(controller, action, resource, &authorization_method)
  end
  true
end
mergables() click to toggle source
# File lib/effective_mergery.rb, line 26
def self.mergables
  @mergables ||= (
    Rails.application.eager_load! unless Rails.configuration.cache_classes

    blacklist = ['Delayed::', 'Effective::', 'ActiveRecord::', 'ApplicationRecord']

    ActiveRecord::Base.descendants.map { |obj| obj.name }.tap do |names|
      names.reject! { |name| blacklist.any? { |b| name.start_with?(b) } }

      if (onlies = Array(only)).present?
        names.select! { |name| onlies.include?(name) }
      elsif (excepts = Array(except)).present?
        names.reject! { |name| excepts.include?(name) }
      end
    end.sort
  )
end
setup() { |self| ... } click to toggle source
# File lib/effective_mergery.rb, line 15
def self.setup
  yield self
end