Handle wiki updates and web hooks from the PushProcessor.
[gitorious:mainline.git] / lib / gitorious / wiki / update_event_logger.rb
1 # encoding: utf-8
2 #--
3 #   Copyright (C) 2011 Gitorious AS
4 #
5 #   This program is free software: you can redistribute it and/or modify
6 #   it under the terms of the GNU Affero General Public License as published by
7 #   the Free Software Foundation, either version 3 of the License, or
8 #   (at your option) any later version.
9 #
10 #   This program is distributed in the hope that it will be useful,
11 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #   GNU Affero General Public License for more details.
14 #
15 #   You should have received a copy of the GNU Affero General Public License
16 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #++
18 module Gitorious
19   module Wiki
20     class UpdateEventLogger
21       def initialize(repository, spec, user)
22         @repository = repository
23         @spec = spec
24         @user = user
25       end
26
27       def create_wiki_events
28         parser = CommitParser.new
29         commits = parser.fetch_from_git(@repository, @spec)
30         project = @repository.project
31         commits.each do |c|
32           c.modified_page_names.each do |p|
33             project.create_event(Action::UPDATE_WIKI_PAGE, project, @user, p)
34           end
35           c.added_page_names.each do |p|
36             project.create_event(Action::UPDATE_WIKI_PAGE, project, @user, p)
37           end
38         end
39       end
40     end
41   end
42 end