module Travis::Api::App::Responders require 'securerandom' class Atom < Base ATOM_FEED_ERB = ERB.new(File.read(__FILE__).split("__END__").last.strip) def apply? if resource.is_a?(ActiveRecord::Relation) && resource.first.is_a?(Build) @builds = resource end super && @builds end def apply super ATOM_FEED_ERB.result(binding) end private def content_type 'application/atom+xml;charset=utf-8' end end end __END__ <%= @builds.first.repository.slug %> Builds urn:uuid:<%= SecureRandom.uuid %> <%= DateTime.now.strftime %> <% @builds.each do |build| %> <%= build.repository.slug %> Build #<%= build.number %> urn:uuid:<%= SecureRandom.uuid %> <%= build.finished_at || build.started_at %> <p> <%= build.commit.message %> (<%= build.commit.committer_name %>) <br/><br/> State: <%= build.state %> <br/> Started at: <%= build.started_at ? build.started_at : 'not started' %> <br/> Finished at: <%= build.finished_at ? build.finished_at : build.started_at ? 'still running' : 'not started' %> </p> <%= build.commit.committer_name %> <% end %>