class TagCloud
Public Class Methods
new(opt)
click to toggle source
# File lib/tagcloud.rb, line 10 def initialize(opt) opts = {uri: '', tags: [], public_path: '/tags'}.merge(opt) uri, tags, public_path = [:uri, :tags, :public_path].map{|x| opts[x]} main(uri, tags, 'tags.xml') index(public_path, tags, 'index.xml') # add it to rows --> [tag]_rows.xml rows(tags, uri) # add it to [tag] -> [tag].xml tag(public_path, tags) end
Public Instance Methods
index(public_path, tags=[], filename='index.xml')
click to toggle source
# File lib/tagcloud.rb, line 35 def index(public_path, tags=[], filename='index.xml') if File.exists? filename then dynarex = Dynarex.new(filename) else dynarex = Dynarex.new('tags/entry(tag,url)') end tags.each do |tag| dynarex.create tag: tag, url: "%s/%s.html" % [public_path, tag] end dynarex.save filename, pretty: true end
main(uri, tags=[], filename='tags.xml')
click to toggle source
# File lib/tagcloud.rb, line 24 def main(uri, tags=[], filename='tags.xml') polyrex = Polyrex.new('entries/entry[tag]/urls[url]') tags.each do |tag| polyrex.create.entry(tag: tag) {|create| create.urls(url: uri) } end polyrex.save filename, pretty: true end
rows(tags=[], url)
click to toggle source
# File lib/tagcloud.rb, line 51 def rows(tags=[], url) tags.each do |tag| filename = "%s_rows.xml" % tag if File.exists? filename then dynarex = Dynarex.new() else dynarex = Dynarex.new('entries/entry(url)') end dynarex.create url: url dynarex.save filename, pretty: true end end
tag(public_path, tags=[])
click to toggle source
# File lib/tagcloud.rb, line 77 def tag(public_path, tags=[]) tags.length.times do |tag| tags.rotate! main_tag = tags.first filename = "%s.xml" % main_tag if File.exists? filename then dynarex = Dynarex.new(filename) else dynarex = Dynarex.new('entries[tag]/entry(tag, url)') end dynarex.summary['tag'] = main_tag tags[1..-1].each do |tag| dynarex.create tag: tag, url: "%s/%s.html" % [public_path, tag] end dynarex.save filename, pretty: true end end