Class: Miser::CLI
- Inherits:
-
Thor
- Object
- Thor
- Miser::CLI
- Defined in:
- lib/miser/cli.rb
Constant Summary collapse
- DATE_FORMAT =
'%Y-%m-%d'.freeze
Instance Method Summary collapse
- #check(driver, *login) ⇒ Object
- #interactive ⇒ Object
- #report(driver, *login) ⇒ Object
- #schedule(time, *args) ⇒ Object
Instance Method Details
#check(driver, *login) ⇒ Object
18 19 20 21 22 23 |
# 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 ⇒ Object
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 = [: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, *login) mail = Miser::Report::Mailgun.new([:api_key], [:from], [:to]) movements = movements(driver, *login) 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 |