Sha256: ced9d15e338f1d47e93e81a3d55445d1820fd206e713f5265ad00669a90089a4
Contents?: true
Size: 1.72 KB
Versions: 2
Compression:
Stored size: 1.72 KB
Contents
class Rollin::Blog def initialize(options = {}) @articles_folder = options[:articles_folder] || 'articles' end def article(search = {}) unfiltered_articles.find { |article| article.matches?(search) } end def articles(search = {}) unfiltered_articles.select { |article| article.matches?(search) } end def unfiltered_articles read_articles.reverse end def metatags metatag_labels = unfiltered_articles.map do |article| article.metatags.keys end.flatten.uniq metatag_labels.map do |metatag_label| values = unfiltered_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 extensions = %w{markdown mdown mkdn md mkd mdwn mdtxt mdtext text} Dir[*extensions.map { |ext| "#{@articles_folder}/**/*.#{ext}" }].sort.map do |article_source| Rollin::Article.new(article_source) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rollin-0.2.2 | lib/rollin/blog.rb |
rollin-0.2.1 | lib/rollin/blog.rb |