lib/caramelize/wiki/wiki.rb in caramelize-0.2.0 vs lib/caramelize/wiki/wiki.rb in caramelize-0.3.0
- old
+ new
@@ -1,42 +1,55 @@
-#Encoding: UTF-8
module Caramelize
- autoload :DatabaseConnector, 'caramelize/database_connector'
class Wiki
include DatabaseConnector
+
attr_accessor :revisions, :wiki_title, :titles, :description, :namespaces, :options
-
+
def initialize options={}
@options = options
@options[:filters] = []
@namespaces = []
end
-
- def revisions_by_title title
- if @titles.index title
- # new array only containing pages by this name sorted by time
- # TODO this is probably bad for renamed pages if supported
- return @revisions.reject { |revision| revision.title != title }.sort { |x,y| x.time <=> y.time }
- end
+
+ def revisions_by_title(title)
+ # new array only containing pages by this name sorted by time asc
+ # TODO this is probably bad for renamed pages if supported
+ return revisions.select { |revision| revision.title == title }.sort { |x,y| x.time <=> y.time }
+ []
end
-
+
# return an empty array in case this action was not overridden
def read_authors
return []
end
-
- def convert_markup? to_markup
+ def namespaces
+ @namespaces ||= {}
+ end
+
+ def authors
+ @authors ||= {}
+ end
+
+ def revisions
+ @revisions ||= []
+ end
+
+ def titles
+ @titles ||= []
+ end
+
+ def convert_markup?(to_markup)
markup != to_markup
end
def filters
@options[:filters]
end
-
+
def latest_revisions
@latest_revisions = []
- for title in @titles
+ titles.each do |title|
# pick first revision by descending date
@latest_revisions << revisions_by_title(title).last
end
@latest_revisions
end
\ No newline at end of file