Sha256: 7643bfc64e342c369208c4b69fe46e2d184be371878276015bdc196ad2631af8

Contents?: true

Size: 1.37 KB

Versions: 29

Compression:

Stored size: 1.37 KB

Contents

module Awestruct
  module Extensions
    class Atomizer

      def initialize(entries, output_path, opts={})
        @entries = entries
        @output_path = output_path
        @num_entries = opts[:num_entries] || 50
        @content_url = opts[:content_url]
        @feed_title = opts[:feed_title]
        @template = opts[:template] || File.join( File.dirname(__FILE__), 'template.atom.haml' )
      end

      def execute(site)
        entries = @entries.is_a?(Array) ? @entries : site.send( @entries ) || []
        unless ( @num_entries == :all )
          entries = entries[0, @num_entries]
        end

        atom_pages = []

        entries.each do |entry|
          feed_entry = site.engine.load_page(entry.source_path, :relative_path => entry.relative_source_path, :html_entities => false)

          feed_entry.output_path = entry.output_path
          feed_entry.date = feed_entry.timestamp.nil? ? entry.date : feed_entry.timestamp

          atom_pages << feed_entry
        end

        site.engine.set_urls(atom_pages)

        page = site.engine.load_page( @template )
        page.date = page.timestamp unless page.timestamp.nil?
        page.output_path = @output_path
        page.entries = atom_pages
        page.title = @feed_title || site.title || site.base_url
        page.content_url = @content_url || site.base_url
        site.pages << page
      end

    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
awestruct-0.5.7.RC2 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.7.RC1 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta9 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta8 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta7 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta6 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta5 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta4 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta3 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta2 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.6.beta lib/awestruct/extensions/atomizer.rb
awestruct-0.5.5 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.2 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.1 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.rc3 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.rc2 lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.rc lib/awestruct/extensions/atomizer.rb
awestruct-0.5.4.beta1 lib/awestruct/extensions/atomizer.rb