Sha256: f28232de4e61a76937b6b0944fe0bda9bd75c8f1c7a94f928a3b6adf16e569a4

Contents?: true

Size: 647 Bytes

Versions: 4

Compression:

Stored size: 647 Bytes

Contents

module PurgatoryModule
  extend ActiveSupport::Concern

  module ClassMethods
    def use_purgatory
      self.has_many :purgatories, as: :soul
    end
  end

  def purgatory!(requester = nil, options = {})
    return nil if self.invalid?
    return nil if Purgatory.pending_with_matching_soul(self).any? && options[:fail_if_matching_soul]
    Purgatory.create soul: self, requester: requester
  end

  class Configuration
    attr_accessor :user_class_name
  end

  class << self
    def configure(&block)
      yield(configuration)
      configuration
    end

    def configuration
      @_configuration ||= Configuration.new
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
purgatory-2.7.0 lib/purgatory/purgatory_module.rb
purgatory-2.6.0 lib/purgatory/purgatory_module.rb
purgatory-2.5.0 lib/purgatory/purgatory_module.rb
purgatory-2.4.0 lib/purgatory/purgatory_module.rb