class TaskJuggler::Tj3TsSummary

Public Class Methods

new() click to toggle source
Calls superclass method TaskJuggler::Tj3SheetAppBase::new
# File lib/taskjuggler/apps/Tj3TsSummary.rb, line 27
def initialize
  super

  # The default report period end is next Monday 0:00.
  @date = TjTime.new.nextDayOfWeek(1).to_s('%Y-%m-%d')
  @resourceList = []
  @sheetRecipients = []
  @digestRecipients = []
end

Public Instance Methods

appMain(argv) click to toggle source
# File lib/taskjuggler/apps/Tj3TsSummary.rb, line 69
def appMain(argv)
  ts = TimeSheetSummary.new
  @rc.configure(ts, 'global')
  @rc.configure(ts, 'timesheets')
  @rc.configure(ts, 'timesheets.summary')
  ts.workingDir = @workingDir if @workingDir
  ts.dryRun = @dryRun
  ts.date = @date if @date
  ts.sheetRecipients += @sheetRecipients
  ts.digestRecipients += @digestRecipients

  ts.sendSummary(@resourceList)

  0
end
processArguments(argv) click to toggle source
# File lib/taskjuggler/apps/Tj3TsSummary.rb, line 37
    def processArguments(argv)
      super do
        @opts.banner.prepend(<<'EOT'
This program can be used to send out individual copies and a summary of all
accepted time sheets a list of email addresses. The directory structures for
templates and submitted time sheets must be present. The project data will be
accesses via tj3client from a running TaskJuggler server process.

EOT
        )
        @opts.on('-r', '--resource <ID>', String,
                 format('Only generate summary for given resource')) do |arg|
          @resourceList << arg
        end
        @opts.on('-t', '--to <EMAIL>', String,
                 format('Send all individual reports and a summary report ' +
                        'to this email address')) do |arg|
          @sheetRecipients << arg
          @digestRecipients << arg
        end
        @opts.on('--sheet <EMAIL>', String,
                 format('Send all reports to this email address')) do |arg|
          @sheetRecipients << arg
        end
        @opts.on('--digest <EMAIL>', String,
                 format('Send a summary report to this email address')) do |arg|
          @digestRecipients << arg
        end
        optsEndDate
      end
    end