class StarTrack::TimeTracker::Freckle

Attributes

client[R]

Public Class Methods

new() click to toggle source
# File lib/star_track/time_tracker/freckle.rb, line 8
def initialize
  config = YAML.load_file("#{ENV['HOME']}/.star_track.yaml")["freckle"]

  @token      = config["token"]
  @project_id = config["project_id"].to_i

  @client = ::Freckle::Client.new(token: @token)
end

Public Instance Methods

track(tasks) click to toggle source
# File lib/star_track/time_tracker/freckle.rb, line 17
def track(tasks)
  params = {
    description: tasks.join(" - ").gsub("#", " "),
    project_id:  @project_id,
    minutes:     billable_time,
    date:        Date.today.to_s,
  }

  begin
    client.create_entry(params)
  rescue => error
    ErrorHandler.raise(error.message)
  end
end

Private Instance Methods

billable_time() click to toggle source
# File lib/star_track/time_tracker/freckle.rb, line 34
def billable_time
  validate_given_time!

  args          = ARGV[0].split(":")
  given_hours   = args[0].to_i
  given_minutes = args[1].to_i

  (given_hours * 60) + given_minutes
end
validate_given_time!() click to toggle source
# File lib/star_track/time_tracker/freckle.rb, line 44
def validate_given_time!
  unless ARGV[0]
    ErrorHandler.raise("[ERROR] Missing time parameter!")
  end
end