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