Sha256: 46cf3f05f698f68d37d5a21bca789325d44bced55ba72b53ad16cf08e37bd087

Contents?: true

Size: 918 Bytes

Versions: 4

Compression:

Stored size: 918 Bytes

Contents

require 'date'
require_relative 'settings'

module Dude
  class Report
    include Settings
    attr_reader :report

    def initialize(report)
      @report = report
    end

    def week_time_worked
      @time_worked ||= report['total_grand'] / 1000
    end

    def today_time_worked
      @today_time_worked ||= report['week_totals'].map {|a| a.nil? ? 0 : a / 1000}[Time.now.wday - 1]
    end

    def days_without_weekends
      @days_without_weekends ||= report['week_totals'][0..Time.now.wday - 1].compact.count
    end

    def weekends
      @weekends ||= report['week_totals'][0..Time.now.wday - 1].
        select { |a| a.nil? }.count
    end

    def hours_without_weekends
      @hours_without_weekends ||= settings['HOURS_PER_WEEK'].to_i - weekends * settings['HOURS_PER_DAY'].to_i
    end

    def seconds_for_today
      days_without_weekends * settings['HOURS_PER_DAY'].to_i * 3600
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dude-cli-1.0.2 lib/dude/report.rb
dude-cli-1.0.1 lib/dude/report.rb
dude-cli-1.0.0 lib/dude/report.rb
dude-cli-0.6.2.pre.rc1 lib/dude/report.rb