Made a simple gem for website sitemap generation. Could be used in any Ruby/Rails/Merb/Sinatra application. It does not have any caching in that case if you want to use framework built-in cache methods.
Installation:
$ sudo gem install xml-sitemap
Example
pages = Page.all(:order => [:updated_at.desc] # DM model map = XmlSitemap::Map.new('somedomain.com') do |m| m.add(:url => '/', :period => :daily, :priority => 1.0) m.add(:url => '/contractors', :period => :daily, :priority => 1.0) pages.each do |p| m.add( :url => url_for_page(p), :updated => p.updated_at, :priority => 0.5, :period => :never ) end end # render the sitemap puts map.render
Sinatra Example
# ... your code get '/sitemap.xml' do map = XmlSitemap::Map.new('domain.com') do |m| m.add(:url => '/') m.add(:url => '/posts', :period => :weekly) end headers['Content-Type'] = 'text/xml' map.render end # ... more code
Options
:url – page path, relative to domain (ex.: /test), String.
:period – freqchange attribute, Symbol, :none, :never, :always, :hourly, :daily, :weekly, :monthly, :yearly
:priority – priority attribute, Float class,(0.0..1.0)
:updated – (optional) last_update attribute, Time class