module Cordon::Sanitaire

Public Class Methods

wrap_assertions_with(custom_method_name) click to toggle source
# File lib/cordon/sanitaire.rb, line 9
def self.wrap_assertions_with(custom_method_name)
  alias_method custom_method_name, :__cordon__assertion_wrapper__
end

Public Instance Methods

__cordon__assertion_wrapper__(predicate) click to toggle source
# File lib/cordon/sanitaire.rb, line 4
def __cordon__assertion_wrapper__(predicate)
  ::Cordon::Whitelist.admit_one(predicate)
  return predicate
end

Protected Instance Methods

__cordon__call_method__(subject, method, *args, &b) click to toggle source
# File lib/cordon/sanitaire.rb, line 16
def __cordon__call_method__(subject, method, *args, &b)
  case
  when Watchlist.includes?(subject, method)
    ::Cordon::Watchlist.invoke_method(self, subject, method, *args, &b)
  when Whitelist.admits?(self)
    ::Cordon::Blacklist.invoke_method(self, subject, method, *args, &b)
  else
    raise ::Cordon::Violation.from_invocation(subject, method, args)
  end
end