class Miser::CLI
Constants
- DATE_FORMAT
Public Instance Methods
check(driver, *login)
click to toggle source
# File lib/miser/cli.rb, line 18 def check(driver, *login) console = Miser::Report::Console.new movements = movements(driver, *login) report = Miser::Report.new(movements, date) console.deliver(report) end
interactive()
click to toggle source
# 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)
click to toggle source
# File lib/miser/cli.rb, line 30 def report(driver, *login) mail = Miser::Report::Mailgun.new(options[:api_key], options[:from], options[:to]) movements = movements(driver, *login) report = Miser::Report.new(movements, date) mail.deliver(report) end
schedule(time, *args)
click to toggle source
# 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
Private Instance Methods
date()
click to toggle source
# File lib/miser/cli.rb, line 78 def date DateTime.now - options[:days] end
days()
click to toggle source
# File lib/miser/cli.rb, line 74 def days options[:days].to_f end
movements(driver, *login)
click to toggle source
# File lib/miser/cli.rb, line 65 def movements(driver, *login) driver = Miser::Driver[driver].new driver.login(*login) movements = driver.movements(date) movements.select{ |m| m.days_from_now < days && m.debit? } end
now()
click to toggle source
# File lib/miser/cli.rb, line 82 def now DateTime.now end