class MinaRevisioneer::MessageExtractor

Attributes

api_token[R]
binding[R]
host[R]

Public Class Methods

new(host, token, binding) click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 7
def initialize host, token, binding
  @host = host
  @api_token = token
  @binding = binding
end

Public Instance Methods

last_deploy() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 13
def last_deploy
  @last_deploy ||= begin
    curl = %Q{curl "#{host}/deployments?limit=1" -H "API-TOKEN: #{api_token}" -s}
    response = %x[#{curl}].strip
    JSON.parse(response).first || {}
  end
rescue => err
  {} # no JSON received - propably first deploy?
end
last_deploy_date() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 30
def last_deploy_date
  Time.parse(last_deploy.fetch("deployed_at"))
end
last_deploy_sha() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 34
def last_deploy_sha
  last_deploy.fetch("sha", nil)
end
messages() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 42
def messages
  [] # implemented in subclass
end
number_of_new_commits() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 23
def number_of_new_commits
  walker = Rugged::Walker.new(repo)
  walker.push sha
  walker.hide last_deploy_sha if last_deploy_sha
  walker.each.to_a.count
end
repo() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 38
def repo
  @repo ||= Rugged::Repository.new(".")
end
sha() click to toggle source
# File lib/mina_revisioneer/message_extractor.rb, line 46
def sha
  ref = repo.head
  ref.target
end