class GitWakaTime::Cli
Provides two CLI heartbeats init and tally
Public Instance Methods
init()
click to toggle source
# File lib/gitwakatime/cli.rb, line 21 def init unless File.exist?(File.join(Dir.home, '.wakatime.yml')) api_key = ask('What is your wakatime api key? ( Get it here https://wakatime.com/settings):') say('Adding .wakatime.yml to home directory') create_file File.join(Dir.home, '.wakatime.yml') do YAML.dump(api_key: api_key, last_commit: nil, log_level: :info) end end reset end
print_commit(c_date, commits)
click to toggle source
# File lib/gitwakatime/cli.rb, line 80 def print_commit(c_date, commits) sum_c_time = commits.map(&:time_in_seconds).compact.reduce(&:+).to_i Log.new format( '%-40s %-40s'.blue, c_date, "Total #{ChronicDuration.output sum_c_time}" ) commits.each do |commit| # Log.new commit.message Log.new commit.to_s commit.commited_files.each { |file| Log.new file.to_s } end end
print_output(timer, format: 'text')
click to toggle source
# File lib/gitwakatime/cli.rb, line 70 def print_output(timer, format: 'text') if format == 'text' timer.each do |c_date, commits| print_commit(c_date, commits) end elsif format == 'json' @timer.to_json end end
reset()
click to toggle source
# File lib/gitwakatime/cli.rb, line 34 def reset DB.disconnect db_path = File.expand_path(File.join(Dir.home, '.wakatime.sqlite')) FileUtils.rm_r(db_path) if File.exist?(db_path) DB.connect("sqlite://#{db_path}") GitWakaTime.config.setup_local_db end
tally()
click to toggle source
# File lib/gitwakatime/cli.rb, line 48 def tally date = Date.parse(options.start_on) @timer = GitWakaTime::Controller.new( path: File.expand_path(options.file), date: date ).timer print_output(@timer, format: options.output) end
update()
click to toggle source
# File lib/gitwakatime/cli.rb, line 61 def update GitWakaTime.config.setup_local_db GitWakaTime.config.load_config_yaml date = Date.parse(options.start_on || GitWakaTime::Heartbeat.max(:time)) GitWakaTime::Query.new(date, Date.today, @project).call end