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