Class: TagCloud
- Inherits:
-
Object
- Object
- TagCloud
- Defined in:
- lib/tagcloud.rb
Instance Method Summary collapse
- #index(public_path, tags = [], filename = 'index.xml') ⇒ Object
-
#initialize(opt) ⇒ TagCloud
constructor
A new instance of TagCloud.
- #main(uri, tags = [], filename = 'tags.xml') ⇒ Object
- #rows(tags = [], url) ⇒ Object
- #tag(public_path, tags = []) ⇒ Object
Constructor Details
#initialize(opt) ⇒ TagCloud
Returns a new instance of TagCloud.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/tagcloud.rb', line 10 def initialize(opt) opts = {uri: '', tags: [], public_path: '/tags'}.merge(opt) uri, , public_path = [:uri, :tags, :public_path].map{|x| opts[x]} main(uri, , 'tags.xml') index(public_path, , 'index.xml') # add it to rows --> [tag]_rows.xml rows(, uri) # add it to [tag] -> [tag].xml tag(public_path, ) end |
Instance Method Details
#index(public_path, tags = [], filename = 'index.xml') ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/tagcloud.rb', line 35 def index(public_path, =[], filename='index.xml') if File.exists? filename then dynarex = Dynarex.new(filename) else dynarex = Dynarex.new('tags/entry(tag,url)') end .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') ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/tagcloud.rb', line 24 def main(uri, =[], filename='tags.xml') polyrex = Polyrex.new('entries/entry[tag]/urls[url]') .each do |tag| polyrex.create.entry(tag: tag) {|create| create.urls(url: uri) } end polyrex.save filename, pretty: true end |
#rows(tags = [], url) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/tagcloud.rb', line 51 def rows(=[], url) .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 = []) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/tagcloud.rb', line 77 def tag(public_path, =[]) .length.times do |tag| .rotate! main_tag = .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 [1..-1].each do |tag| dynarex.create tag: tag, url: "%s/%s.html" % [public_path, tag] end dynarex.save filename, pretty: true end end |