class Ruhoh::Resources::Pages::Compiler
Public Instance Methods
pagination()
click to toggle source
# File lib/ruhoh/resources/pages/compiler.rb, line 25 def pagination config = @collection.config["paginator"] || {} resource_name = @collection.resource_name if config["enable"] == false Ruhoh::Friend.say { yellow "#{resource_name} paginator: disabled - skipping." } return end pages_count = @collection.all.length total_pages = (pages_count.to_f/config["per_page"]).ceil Ruhoh::Friend.say { cyan "#{resource_name} paginator: (#{total_pages} pages)" } total_pages.times.map { |i| # if a root page is defined we assume it's getting compiled elsewhere. next if (i.zero? && config["root_page"]) url = "#{config["url"]}/#{i+1}" view = @ruhoh.master_view({"resource" => resource_name}) view.page_data = { "layout" => config["layout"], "current_page" => (i+1), "total_pages" => total_pages, "url" => @ruhoh.to_url(url) } FileUtils.mkdir_p File.dirname(view.compiled_path) File.open(view.compiled_path, 'w:UTF-8') { |p| p.puts view.render_full } Ruhoh::Friend.say { green " > #{view.page_data['url']}" } } end
rss()
click to toggle source
# File lib/ruhoh/resources/pages/compiler.rb, line 56 def rss config = @collection.config["rss"] || {} resource_name = @collection.resource_name if config["enable"] == false Ruhoh::Friend.say { yellow "#{resource_name} RSS: disabled - skipping." } return end limit = config["limit"] || 20 pages = @collection.all.first(limit) Ruhoh::Friend.say { cyan "#{resource_name} RSS: (first #{limit} pages)" } data = @ruhoh.collection("data").dictionary feed = Nokogiri::XML::Builder.new do |xml| xml.rss(:version => '2.0') { xml.channel { xml.title_ data['title'] xml.description_ (data['description'] ? data['description'] : data['title']) xml.link_ @ruhoh.config['production_url'] xml.pubDate_ Time.now pages.each do |page| view = @ruhoh.master_view(page.pointer) xml.item { xml.title_ page.title xml.link "#{@ruhoh.config['production_url']}#{page.url}" xml.pubDate_ page.date if page.date xml.description_ (page.try(:description) ? page.description : view.render_content) } end } } end compiled_path = @ruhoh.compiled_path(@ruhoh.to_url(config['url'], "rss.xml")) FileUtils.mkdir_p File.dirname(compiled_path) File.open(compiled_path, 'w'){ |p| p.puts feed.to_xml } Ruhoh::Friend.say { green " > #{compiled_path}" } end
run()
click to toggle source
# File lib/ruhoh/resources/pages/compiler.rb, line 6 def run pages = @collection.all resource_name = @collection.resource_name Ruhoh::Friend.say { cyan "#{resource_name.capitalize}: (#{pages.count} #{resource_name})" } pages.each do |data| view = @ruhoh.master_view(data['pointer']) FileUtils.mkdir_p File.dirname(view.compiled_path) File.open(view.compiled_path, 'w:UTF-8') { |p| p.puts view.render_full } Ruhoh::Friend.say { green " > #{data['id']}" } end pagination rss end