class Toggl::Reports::Base
Public Class Methods
new(connection, workspace_id, from, to)
click to toggle source
# File lib/toggl/reports/base.rb, line 12 def initialize(connection, workspace_id, from, to) @connection = connection @workspace_id = workspace_id @from = from @to = to end
path()
click to toggle source
# File lib/toggl/reports/base.rb, line 7 def path raise 'Subclass Responsibility' end
Public Instance Methods
get()
click to toggle source
# File lib/toggl/reports/base.rb, line 19 def get @response ||= @connection.get( self.class.path, :workspace_id => @workspace_id, :user_agent => 'toggl-reports', :since => @from, :until => @to ) end
hours(time)
click to toggle source
# File lib/toggl/reports/base.rb, line 40 def hours(time) whole, fraction = (time/3600000.0).divmod(1) "%s:%s" % [whole, (fraction * 60).to_i] end
inspect()
click to toggle source
# File lib/toggl/reports/base.rb, line 59 def inspect ap projects end
projects()
click to toggle source
# File lib/toggl/reports/base.rb, line 29 def projects get['data'].map do |item| OpenStruct.new( name: item['title']['project'], total_time: seconds(item['time']), total_time_display: hours(item['time']), entries: time_entries(item['items']) ) end end
seconds(time)
click to toggle source
# File lib/toggl/reports/base.rb, line 45 def seconds(time) (BigDecimal.new(time) / 1000).to_i end
time_entries(items)
click to toggle source
# File lib/toggl/reports/base.rb, line 49 def time_entries(items) items.map do |item| OpenStruct.new( title: item['title']['time_entry'], time: seconds(item['time']), time_display: hours(item['time']), ) end end