Sha256: 9ded52808813b4f0350afb6c3528ab2a958f5a1f269399cd2a0815909e23b01c
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
class Rollin::Blog def initialize(options = {}) @articles_folder = options[:articles_folder] || 'articles' end def article(search) read_articles.find { |article| article.matches?(search) } end def articles(search=nil) if search.nil? read_articles else read_articles.select { |article| article.matches?(search) } end end def metatags metatag_labels = articles.map do |article| article.metatags.keys end.flatten.uniq metatag_labels.map do |metatag_label| values = articles.select { |article| article.metatags.has_key?(metatag_label) }.map do |article| article.metatags[metatag_label] end.flatten.uniq.map do |metatag_content| Rollin::MetatagValue.new(metatag_content, articles(metatag_label => metatag_content)) end Rollin::MetatagKey.new(metatag_label, values) end end def annual_archive monthly_archive.map { |month_archive| month_archive.year }.uniq.map do |year| Rollin::YearArchive.new(year, monthly_archive.select { |aMonth| aMonth.year == year }) end end def monthly_archive articles.map { |article| [article.year, article.month] }.uniq.map do |year_and_month| year = year_and_month[0] month = year_and_month[1] articles_for_month = articles.select { |anArticle| anArticle.year == year && anArticle.month == month } Rollin::MonthArchive.new(year, month, articles_for_month) end end private def read_articles Dir["#{@articles_folder}/**/*.mk"].sort.map do |article_source| Rollin::Article.new(article_source) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rollin-0.1.3 | lib/rollin/blog.rb |
rollin-0.1.2 | lib/rollin/blog.rb |
rollin-0.1.1 | lib/rollin/blog.rb |