master
 1class PublishToTwitterJob < ApplicationJob
 2  queue_as :default
 3
 4  def perform(cake)
 5    tweet_about(cake)
 6  end
 7
 8  private
 9
10  def twitter
11    @twitter ||= Spank::IOC.resolve(:twitter_publisher)
12  end
13
14  def tweet_about(cake)
15    twitter.tweet(tweet_for(cake)) if cake.published?
16  end
17
18  def tweet_for(cake)
19    "#{cake.name} By #{cake.user.name} on #{routes.cake_url(cake)}!"
20  end
21
22  def routes
23    Cake::Application.routes.url_helpers
24  end
25end