Method: Activr::Timeline::Route#resolve

Defined in:
lib/activr/timeline/route.rb

#resolve(activity) ⇒ Array<Object>

Resolve recipients for given activity

Parameters:

  • activity (Activity)

    Activity to resolve

Returns:

  • (Array<Object>)

    Array of recipients instances and/or ids



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/activr/timeline/route.rb', line 79

def resolve(activity)
  recipients = if self.settings[:using]
    self.resolve_using_method(self.settings[:using], activity)
  elsif self.settings[:to]
    self.resolve_to_path(self.settings[:to], activity)
  else
    raise "Don't know how to resolve recipients: #{self.settings}"
  end

  recipients = [ recipients ] unless recipients.is_a?(Array)
  recipients.compact!

  # check recipients
  bad_recipient = recipients.find{ |recipient| !self.timeline_class.valid_recipient?(recipient) }
  if bad_recipient
    raise "Invalid recipient resolved by route #{self.inspect}: #{bad_recipient.inspect}"
  end

  recipients
end