class Nesta::Page

Public Class Methods

pages_by_tag(tag) click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 32
def self.pages_by_tag(tag)
  Page.find_all.select { |page| page.tags.include?( tag ) }.sort { |x, y| y.date <=> x.date } unless tag.nil? || tag.empty?
end
tag_cloud() click to toggle source

return hash of tags

# File lib/nesta-plugin-taggr/init.rb, line 28
def self.tag_cloud
  @@tag_cloud = init_tag_cloud() if @@tag_cloud.nil? || @@tag_cloud.empty?
end

Private Class Methods

init_tag_cloud() click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 57
def self.init_tag_cloud
  cloud = Hash.new(0)
  Page.find_all.each do |page| 
    page.tags.each { |t| cloud[t] += 1 } 
  end
  cloud.sort
end

Public Instance Methods

similar_articles_by_tags() click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 48
def similar_articles_by_tags
  similar_articles = Hash.new(0)
  Page.find_articles.each do |page|
    similar_articles[page] = (self.tags & page.tags).size unless page == self
  end
  similar_articles.reject { |page, similarity| similarity == 0 }.sort_by { |page, similarity| similarity }.reverse
end
similar_pages_by_tags() click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 40
def similar_pages_by_tags
  similar_pages = Hash.new(0)
  Page.find_all.each do |page|
    similar_pages[page] = (self.tags & page.tags).size unless page == self 
  end
  similar_pages.reject { |page, similarity| similarity == 0 }.sort_by { |page, similarity| similarity }.reverse
end
tags() click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 36
def tags
  tag_strings
end

Private Instance Methods

tag_strings() click to toggle source
# File lib/nesta-plugin-taggr/init.rb, line 65
def tag_strings
  strings = metadata('tags')
  strings.nil? ? [] : strings.split(',').map { |string| string.strip.downcase }.reject { |s| s.empty? }
end