40 lines
953 B
Ruby
40 lines
953 B
Ruby
# -*- encoding : utf-8 -*-
|
|
module Modules
|
|
module Models
|
|
module Wiki
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
after_save :create_wiki
|
|
after_destroy :destroy_wiki
|
|
end
|
|
|
|
def wiki_path
|
|
build_path(wiki_repo_name)
|
|
end
|
|
|
|
def wiki_repo_name
|
|
File.join owner.uname, "#{name}.wiki"
|
|
end
|
|
|
|
protected
|
|
|
|
def create_wiki
|
|
if has_wiki && !FileTest.exist?(wiki_path)
|
|
Grit::Repo.init_bare(wiki_path)
|
|
wiki = Gollum::Wiki.new(wiki_path, {:base_path => Rails.application.routes.url_helpers.project_wiki_index_path(owner, self)})
|
|
wiki.write_page('Home', :markdown, I18n.t("wiki.seed.welcome_content"),
|
|
{:name => owner.name, :email => owner.email, :message => 'Initial commit'})
|
|
end
|
|
end
|
|
|
|
def destroy_wiki
|
|
FileUtils.rm_rf wiki_path
|
|
end
|
|
|
|
module ClassMethods
|
|
end
|
|
end
|
|
end
|
|
end
|