class Balboa::CLI::Command::PunchCommand

Public Class Methods

new(interactor, cli) click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 9
def initialize(interactor, cli)
  @interactor = interactor
  @cli = cli
end

Public Instance Methods

execute() click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 14
def execute
  punch_dates.reject! { |date| skip_date?(date) }

  punch_dates.each { |date| @interactor.punch(date) }

  command_output
end

Private Instance Methods

command_output() click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 30
def command_output
  punch_dates.map do |date|
    "\n#{date.strftime('%d/%m/%Y')}"
  end.join
end
last_punch_date() click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 48
def last_punch_date
  Date.parse(@interactor.last) + 1
end
punch_dates() click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 24
def punch_dates
  @punch_dates ||= (last_punch_date..(Date.today - 1)).map do |date|
    Balboa::PunchDate.new(date, @cli)
  end
end
skip_date?(punch_date) click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 36
def skip_date?(punch_date)
  !punch_date.punchable? || skips_include?(punch_date)
end
skipped_dates() click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 44
def skipped_dates
  @interactor.options['skips']
end
skips_include?(punch_date) click to toggle source
# File lib/balboa/cli/command/punch_command.rb, line 40
def skips_include?(punch_date)
  skipped_dates.include?(punch_date.to_date)
end