class ActionMessage::Interceptor

Public Class Methods

register(conditions={}) click to toggle source
# File lib/action_message/interceptor.rb, line 7
def register(conditions={})
  raise TypeError, 'Invalid type. Please provide a hash object' unless conditions.methods.include?(:key)

  conditions.each do |attribute, condition|
    @@blacklist[attribute.to_sym] ||= []
    @@blacklist[attribute.to_sym].push(condition)
  end
end
registered_for?(message) click to toggle source
# File lib/action_message/interceptor.rb, line 17
def registered_for?(message)
  @@blacklist.each do |attribute, conditions|
    value = message.send(attribute.to_sym)

    conditions.each do |condition|
      return true if value.send(match_method_for(condition), condition)
    end
  end

  return false
end

Private Class Methods

match_method_for(condition) click to toggle source
# File lib/action_message/interceptor.rb, line 30
def match_method_for(condition)
  condition.is_a?(Regexp)? :=~ : :==
end