# File lib/god/watch.rb, line 60 def transition(start_states, end_states) # convert to into canonical hash form canonical_end_states = canonical_hash_form(end_states) # for each start state do Array(start_states).each do |start_state| # validate start state unless VALID_STATES.include?(start_state) abort "Invalid state :#{start_state}. Must be one of the symbols #{VALID_STATES.map{|x| ":#{x}"}.join(', ')}" end # create a new metric to hold the watch, end states, and conditions m = Metric.new(self, canonical_end_states) # let the config file define some conditions on the metric yield(m) # record the metric self.metrics[start_state] << m end end