Sha256: 0f05451b830a75db740ab85124ed02315cd785764764f3af505fde71f9effff8
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
require 'benchmark' require 'colorize' module GitWakaTime # Integrates the nested hash from mapper with heartbeats api class Query def initialize(start_at, end_at, project) @start_at = start_at @end_at = end_at @project = project @requests = RequestBuilder.new(@start_at, @end_at).call Log.new "Loading Committed time from #{@start_at} to #{@end_at}".red end def call @requests.each do |params| next if cached?(params[:date]) persist_heartbeats_localy(Request.new(params).call) end DurationsCalculator.new(heartbeats: local_heartbeats.where('duration <= 0') ).heartbeats_to_durations local_heartbeats.where(project: @project).all end def cached?(date) max_local_timestamp = Heartbeat.max(:time) return false if max_local_timestamp.nil? @max_local_timestamp ||= (Time.parse(max_local_timestamp + ' UTC')) date.to_date < @max_local_timestamp.to_date end private def persist_heartbeats_localy(heartbeats) heartbeats.map do |heartbeat| heartbeat['uuid'] = heartbeat['id'] heartbeat['time'] = Time.at(heartbeat['time']) heartbeat.delete('id') Heartbeat.find_or_create(uuid: heartbeat['uuid']) do |a| a.update(heartbeat) end end end def local_heartbeats Heartbeat.where( 'time >= ? and time <= ? ', @start_at, @end_at ) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gitwakatime-0.4.0 | lib/gitwakatime/query.rb |