module Middleman::Blog::Selfbookmark

Constants

VERSION

Attributes

app[R]

Public Class Methods

app=(app) click to toggle source
# File lib/middleman/blog/selfbookmark.rb, line 21
def app=(app)
  @app = app
end
selfbookmark() click to toggle source
# File lib/middleman/blog/selfbookmark.rb, line 10
def selfbookmark
  @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_bookmark(latest_article)

  tag = settings.add_tags ? latest_article.data.tags.map{|t| "[#{t}]"}.join : ''
  client.create(url: "#{settings.hostname}#{latest_article.url}", comment: "#{tag}#{settings.comment}")
end

Private Class Methods

client() click to toggle source
# File lib/middleman/blog/selfbookmark.rb, line 31
def client
  Hatena::Bookmark.new(
      consumer_key:    settings.consumer_key,
      consumer_secret: settings.consumer_secret,
      request_token:   settings.request_token,
      request_secret:  settings.request_token_secret
  )
end
settings() click to toggle source
# File lib/middleman/blog/selfbookmark.rb, line 27
def settings
  @app.extensions[:blog_selfbookmark].options
end
should_bookmark(latest_article) click to toggle source
# File lib/middleman/blog/selfbookmark.rb, line 40
def should_bookmark(latest_article)
  (latest_article.date > DateTime.now.ago(settings.new_article_threshold)) && latest_article.published?
end