class WorkingTimes::CLI

Public Instance Methods

fi(comment = '')
Alias for: finish
finish(comment = '') click to toggle source
# File lib/working_times/cli.rb, line 38
def finish(comment = '')
  unless working?
    puts 'You are not starting work. Execute "wt start" to start working.'
    return
  end

  Record.new(timestamp: DateTime.now, comment: comment).finish
  finish_work
end
Also aliased as: fi
init(workon, term = 'default', company = '') click to toggle source
# File lib/working_times/cli.rb, line 9
def init(workon, term = 'default', company = '')
  if Dir.exist?(workon)
    puts "WORKON '#{workon}' is already created. Or name conflicted.'"
    return
  end

  FileUtils.mkdir_p(File.join(workon, 'terms'))
  FileUtils.mkdir_p(File.join(workon, 'invoices'))
  initialize_wtconf(workon, term, company)
end
invoice() click to toggle source
# File lib/working_times/cli.rb, line 63
def invoice
  Invoice.new.tap do |invoice|
    invoice.generate
    invoice.build if options[:build]
  end
  puts "Invoice created to #{path_invoice_current_term}."
end
rest(duration) click to toggle source
# File lib/working_times/cli.rb, line 52
def rest(duration)
  unless working?
    puts 'You are not starting work. Execute "wt start" to start working.'
    return
  end

  Record.new(timestamp: DateTime.now, duration: duration).rest
end
st(comment = '')
Alias for: start
start(comment = '') click to toggle source
# File lib/working_times/cli.rb, line 21
def start(comment = '')
  if working?
    puts "You are already on working at #{current_work}."
    puts "To finish this, execute 'wt finish'."
    return
  end

  initialize_term_log

  Record.new(timestamp: DateTime.now, comment: comment).start
  start_work
end
Also aliased as: st
version() click to toggle source
# File lib/working_times/cli.rb, line 72
def version
  puts 'version: ' + VERSION
end

Private Instance Methods

initialize_term_log() click to toggle source
# File lib/working_times/cli.rb, line 94
def initialize_term_log
  return if File.exist?(path_current_term)

  File.write(path_current_term, SCHEMA.join(',') + "\n")
end
initialize_wtconf(workon, term, company) click to toggle source
# File lib/working_times/cli.rb, line 78
    def initialize_wtconf(workon, term, company)
      # on initializing, we shouldn't use path helper e.g. Config#data_dir
      data_dir = File.expand_path(workon)
      File.write(File.join(data_dir, 'wtconf.json'), <<~WTCONF)
        {
          "term": "#{term}",
          "invoice": {
            "company": "#{company}",
            "template": "",
            "salaryPerHour": 0,
            "taxRate": 0.0
          }
        }
      WTCONF
    end