module Octopress::Social::Twitter

Constants

DEFAULTS

Attributes

config[RW]
url[RW]

Public Instance Methods

button_message(site, item) click to toggle source
# File lib/octopress-social/twitter.rb, line 77
def button_message(site, item)
  %Q{data-text="#{message(site, item).sub(/\s?#{url}/, '')}"}
end
hashtags(item) click to toggle source
# File lib/octopress-social/twitter.rb, line 57
def hashtags(item)
  hashtags = Array(item['twitter_hashtag'] || item['twitter_hashtags'])
    .map{|h| "##{h.sub('#', '')}" } # ensure hash mark, but not two.
    .join(' ')
end
message(site, item) click to toggle source
# File lib/octopress-social/twitter.rb, line 67
def message(site, item)
  username_var = (username(item).empty? ? 'by :username' : ':username')
  (item['tweet_message'] || config['tweet_message'])
    .sub(':title', item['title'] || '')
    .sub(username_var, username(item))
    .sub(':url', url)
    .sub(':hashtags', hashtags(item))
    .strip
end
set_config(site) click to toggle source
# File lib/octopress-social/twitter.rb, line 20
def set_config(site)
  @config ||= begin
    config = site['octopress_social'] || site
    DEFAULTS.merge(config['twitter'] || {})
  end
end
set_url(site, item) click to toggle source
# File lib/octopress-social/twitter.rb, line 27
def set_url(site, item)
  @url = Social.full_url(site, item)
end
tweet(site, item, url, content) click to toggle source
# File lib/octopress-social/twitter.rb, line 103
def tweet(site, item, url, content)
  user = "@#{url.match(/.com\/(.+)?\/status/)[1]}"
  %Q{<blockquote class="twitter-tweet"
    data-link-color="#{config['embedded_link_color']}"
    lang="#{item['lang'] || site['lang']}">
    <p>#{content}</p>
    <a href="#{url}"> — #{user}</a>
    </blockquote>
  }
end
tweet_button(site, item) click to toggle source
# File lib/octopress-social/twitter.rb, line 38
def tweet_button(site, item)
  %Q{
    <a href="https://twitter.com/share" class="twitter-share-button" 
    #{'data-size="large"' if config['size'] == 'large'}
    #{'data-count="none"' if !config['tweet_count']}
    data-url="#{url}"
    #{button_message(site, item)}
    data-dnt="true">#{config['tweet_link_text']}</a>
  }
end
twitter_follow_button(*args) click to toggle source
# File lib/octopress-social/twitter.rb, line 92
def twitter_follow_button(*args)
  %Q{
    <a href="https://twitter.com/#{username.sub('@', '')}" class="twitter-follow-button" 
    #{'data-show-count="false"' if !config['follow_count']} data-dnt="true">#{profile_link_text}</a>
  }
end
twitter_script_tag(*args) click to toggle source
# File lib/octopress-social/twitter.rb, line 99
def twitter_script_tag(*args)
  "<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>"
end
username(item={}) click to toggle source
# File lib/octopress-social/twitter.rb, line 49
def username(item={})
  if username = item['twitter_username'] || config['username']
    "@#{username.sub('@', '')}" # ensure @ mark, but not two.
  else
    ''
  end
end