Class: TempestTime::Commands::Report

Inherits:
TempestTime::Command show all
Defined in:
lib/tempest_time/commands/report.rb

Instance Method Summary collapse

Methods inherited from TempestTime::Command

#command, #date_prompt, #execute, #pastel, #prompt, #spinner, #table, #week_prompt, #with_spinner, #with_success_fail_spinner

Methods included from Helpers::GitHelper

#automatic_issue

Methods included from Helpers::FormattingHelper

#braced, #with_percent_sign

Methods included from Helpers::TimeHelper

#beginning_of_week, #dates_in_range, #end_of_week, #formatted_date, #formatted_date_range, #formatted_time, #formatted_time_for_input, #formatted_time_long, #future_dates, #parsed_time, #past_dates, #past_week_selections, #week_beginnings, #week_dates

Constructor Details

#initialize(users, options) ⇒ Report

Returns a new instance of Report.



11
12
13
14
15
# File 'lib/tempest_time/commands/report.rb', line 11

def initialize(users, options)
  @users = users || []
  @team = options[:team]
  @teams = TempestTime::Settings::Teams.new
end

Instance Method Details

#execute!Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/tempest_time/commands/report.rb', line 17

def execute!
  if @users.empty? && @team.nil?
    @users = user_prompt
  end

  @users.push(@teams.members(@team)) if @team
  abort('No users specified.') unless @users.any?

  @week = week_prompt('Please select the week to report.')

  with_spinner('Generating report...') do |spinner|
    table = render_table
    spinner.stop(pastel.green('Your report is ready!'))
    date_range = "#{formatted_date(start_date)}"\
                 ' to '\
                 "#{formatted_date(end_date)}"
    prompt.say("\nReport for #{pastel.green(date_range)}")
    puts table
  end
end