Sha256: 903ce0a69eef7a85ef137ac4ddc80c33b3ef8015411313af9b9603146d196c17

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

require 'caramelize/input_wiki/wiki'
require 'caramelize/database_connector'
require 'caramelize/filters/wikka_to_markdown'

module Caramelize
  module InputWiki
    class WikkaWiki < Wiki
      include DatabaseConnector

      def initialize options={}
        super(options)
        @options[:markup] = :wikka
        @options[:filters] << Caramelize::Wikka2Markdown.new
      end

      # after calling this action, titles and @revisions are expected to be filled
      def read_pages
        sql = "SELECT id, tag, body, time, latest, user, note FROM wikka_pages ORDER BY time;"
        results = database.query(sql)
        results.each do |row|
          titles << row["tag"]
          page = Page.new(build_properties(row))
          revisions << page
        end
        titles.uniq!
        #revisions.sort! { |a,b| a.time <=> b.time }

        revisions
      end

      def read_authors
        sql = "SELECT name, email FROM wikka_users;"
        results = database.query(sql)
        results.each do |row|
          authors[row["name"]] = OpenStruct.new(name:  row["name"],
                                                email: row["email"] )
        end
      end

      private

      def build_properties(row)
        author = authors[row["user"]]
        { id: row["id"],
          title: row["tag"],
          body: row["body"],
          markup: :wikka,
          latest: row["latest"] == "Y",
          time: row["time"],
          message: row["note"],
          author: author,
          author_name: row["user"]
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caramelize-0.4.0 lib/caramelize/input_wiki/wikkawiki.rb