class Controll::Flow::EventMapper::Util

Constants

NoMappingFoundError

Complex mapper

Attributes

event[R]
event_map[R]

Public Class Methods

new(event, event_map) click to toggle source
# File lib/controll/flow/event_mapper/util.rb, line 8
def initialize event, event_map
  @event ||= normalize event

  unless valid_map? event_map
    raise ArgumentError, "Invalid redirect map: #{event_map}, must be a non-empty Hash" 
  end
  @event_map ||= event_map
end

Public Instance Methods

map_event() click to toggle source

An event can also be a Symbol, in which case it is a :notice event

# File lib/controll/flow/event_mapper/util.rb, line 19
def map_event
  event_map.each do |path, events|            
    return path.to_s if valid? events
  end
  raise NoMappingFoundError, "No path could be found for event: #{event.inspect} in map: #{event_map}" 
end

Protected Instance Methods

matcher() click to toggle source
# File lib/controll/flow/event_mapper/util.rb, line 38
def matcher
  @matcher ||= Controll::Event::Matcher.new event
end
valid?(events) click to toggle source
# File lib/controll/flow/event_mapper/util.rb, line 34
def valid? events
  matcher.match?(events)
end
valid_map?(event_map) click to toggle source
# File lib/controll/flow/event_mapper/util.rb, line 30
def valid_map? event_map
  event_map.kind_of?(Hash) && !event_map.blank?
end