class GovernorBlogger::Blogger
Public Class Methods
new(article)
click to toggle source
# File lib/governor_blogger/blogger.rb, line 3 def initialize(article) @article = article @blogger = GData::Client::Blogger.new # log in @blogger.clientlogin(GovernorBlogger.config.username, GovernorBlogger.config.password) end
Public Instance Methods
post()
click to toggle source
# File lib/governor_blogger/blogger.rb, line 11 def post entry = Nokogiri::XML::Builder.new do |xml| xml.entry(:xmlns => 'http://www.w3.org/2005/Atom') do xml.title @article.title, :type => 'text' xml.content(:type => 'xhtml') { |content| content << body } end end.to_xml # post to page, retrieve blogger_id response = @blogger.post(page, entry) post_id = response.headers['location'].match(%r{posts/default/(\d+)})[1] post_id end
put()
click to toggle source
# File lib/governor_blogger/blogger.rb, line 24 def put # retrieve post xml = @blogger.get(page).to_xml # transform XML xml.children.detect{|e| e.name == 'title' }.text = @article.title xml.children.detect{|e| e.name == 'content' }.text = body # post back to page @blogger.put(page, xml) end
Private Instance Methods
body()
click to toggle source
# File lib/governor_blogger/blogger.rb, line 35 def body Nokogiri::XML.fragment(Governor::Formatters.format_article @article).to_s end
page()
click to toggle source
# File lib/governor_blogger/blogger.rb, line 39 def page "http://www.blogger.com/feeds/#{GovernorBlogger.config.blog_id}/posts/default/#{@article.blogger_id}".chomp '/' end