Class: Miser::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/miser/cli.rb

Constant Summary collapse

DATE_FORMAT =
'%Y-%m-%d'.freeze

Instance Method Summary collapse

Instance Method Details

#check(driver, *login) ⇒ Object



18
19
20
21
22
23
# File 'lib/miser/cli.rb', line 18

def check(driver, *)
  console = Miser::Report::Console.new
  movements = movements(driver, *)
  report = Miser::Report.new(movements, date)
  console.deliver(report)
end

#interactiveObject



39
40
41
42
43
44
45
# File 'lib/miser/cli.rb', line 39

def interactive
  puts "Please enter what to run and press enter:"
  mode = options[:echo] ? :cooked : :noecho
  command = STDIN.send(mode, &:gets).strip
  cmd = "#{Process.argv0} #{command}"
  exec cmd
end

#report(driver, *login) ⇒ Object



30
31
32
33
34
35
# File 'lib/miser/cli.rb', line 30

def report(driver, *)
  mail = Miser::Report::Mailgun.new(options[:api_key], options[:from], options[:to])
  movements = movements(driver, *)
  report = Miser::Report.new(movements, date)
  mail.deliver(report)
end

#schedule(time, *args) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/miser/cli.rb', line 48

def schedule(time, *args)
  hour, minute = time.split(':')
  scheduler = Rufus::Scheduler.new

  line = "#{minute || '*'} #{hour || '*'} * * *"
  scheduler.cron line do
    system(Process.argv0, *args)
  end

  Process.setproctitle "miser schedule #{line}"
  puts "Scheduled to be executed every #{line}"

  scheduler.join
end