module Middleman::Blog::Twitter

Constants

VERSION

Attributes

app[R]

Public Class Methods

app=(app) click to toggle source
# File lib/middleman/blog/twitter.rb, line 25
def app=(app)
  @app = app
end
tweet() click to toggle source
# File lib/middleman/blog/twitter.rb, line 12
def tweet
  @app ||= ::Middleman::Application.new

  blog_extension = @app.extensions[:blog].values.first
  latest_article = blog_extension.data.articles.select{ |a| a.published? }.first
  return unless should_tweet(latest_article)

  hostname = settings.hostname
  erb = ERB.new(read_template)
  tweet = erb.result(binding)
  client.update(tweet)
end

Private Class Methods

client() click to toggle source
# File lib/middleman/blog/twitter.rb, line 35
def client
  ::Twitter::REST::Client.new do |config|
    config.consumer_key        = settings.consumer_key
    config.consumer_secret     = settings.consumer_secret
    config.access_token        = settings.access_token
    config.access_token_secret = settings.access_token_secret
  end
end
read_template() click to toggle source
# File lib/middleman/blog/twitter.rb, line 44
def read_template
  file = File.open(settings.template_path, 'r')
  file.read
end
settings() click to toggle source
# File lib/middleman/blog/twitter.rb, line 31
def settings
  @app.extensions[:blog_twitter].options
end
should_tweet(latest_article) click to toggle source
# File lib/middleman/blog/twitter.rb, line 49
def should_tweet(latest_article)
  true if settings.force_tweet
  (latest_article.date > DateTime.now.ago(settings.new_article_threshold)) && latest_article.published?
end