class GitWakaTime::Controller
Extract Duration Data from Heartbeats for the WAKATIME API
Attributes
heartbeats[RW]
project[RW]
relevant_commits[RW]
time_range[RW]
Public Class Methods
new(path: '.', date: nil)
click to toggle source
# File lib/gitwakatime/controller.rb, line 6 def initialize(path: '.', date: nil) @path = path GitWakaTime.config.setup_local_db GitWakaTime.config.root = path GitWakaTime.config.load_config_yaml GitWakaTime.config.git = Git.open(path) GitWakaTime::Query.new(date, Date.today, @project).call @git_map = Mapper.new(start_at: date) @project = File.basename(GitWakaTime.config.git.dir.path) @relevant_commits = Commit.where( 'project = ?', @project ) # Scope by date if one has been passed @relevant_commits = @relevant_commits.where('date > ? ', date) if date @files = CommitedFile.where( 'commit_id IN ?', @relevant_commits.select_map(:id) ).where('project = ?', @project) end
Public Instance Methods
timer()
click to toggle source
# File lib/gitwakatime/controller.rb, line 28 def timer Timer.new( @relevant_commits.all, Heartbeat ).process end