class MingleEvents::Processors::AuthorFilter::AuthorSpec

Public Class Methods

new(spec, mingle_access, project_identifier) click to toggle source
   # File lib/mingle_events/processors/author_filter.rb
21 def initialize(spec, mingle_access, project_identifier)
22   @spec = spec
23   @mingle_access = mingle_access
24   @project_identifier = project_identifier
25 end

Public Instance Methods

event_triggered_by?(event) click to toggle source
   # File lib/mingle_events/processors/author_filter.rb
27 def event_triggered_by?(event)
28   event.author.uri == author_uri
29 end

Private Instance Methods

author_uri() click to toggle source
   # File lib/mingle_events/processors/author_filter.rb
33 def author_uri
34   lookup_author_uri
35 end
lookup_author_uri() click to toggle source
   # File lib/mingle_events/processors/author_filter.rb
37 def lookup_author_uri
38   team_resource = "/api/v2/projects/#{@project_identifier}/team.xml"
39   @raw_xml ||= @mingle_access.fetch_page(URIParser.escape(team_resource))
40   @doc ||= Xml.parse(@raw_xml)
41 
42   users = @doc.select_all('/projects_members/projects_member/user').map do |user|
43     {
44       :url => user.attr('url'),
45       :login => user.inner_text('login'),
46       :email => user.inner_text('email')
47     }
48   end
49   
50   spec_user = users.find do |user|
51     # is this too hacky?
52     user.merge(@spec) == user
53   end
54   
55   spec_user.nil? ? nil : spec_user[:url]
56 end