class Menthol::Provider
Attributes
accounts[R]
Public Class Methods
new(name, username, password, accounts)
click to toggle source
# File lib/menthol/provider.rb, line 6 def initialize(name, username, password, accounts) @name = name @username = username @password = password @accounts = accounts.map { |a| Account.open(self.name, a) } end
Public Instance Methods
amount()
click to toggle source
# File lib/menthol/provider.rb, line 19 def amount @accounts.map(&:amount).reduce(Money.new(0, "THB"), &:+) end
name()
click to toggle source
# File lib/menthol/provider.rb, line 15 def name @name || self.class.name.split("::").last end
sync!()
click to toggle source
# File lib/menthol/provider.rb, line 23 def sync! browser.goto(login_url) login synchronize_accounts logout browser.quit @browser = nil end
Private Instance Methods
browser()
click to toggle source
# File lib/menthol/provider.rb, line 43 def browser @browser ||= Watir::Browser.new(:chrome) end
login()
click to toggle source
# File lib/menthol/provider.rb, line 47 def login raise NotImplementedError end
logout()
click to toggle source
# File lib/menthol/provider.rb, line 57 def logout raise NotImplementedError end
submit_credentials(username:, password:, button:)
click to toggle source
# File lib/menthol/provider.rb, line 36 def submit_credentials(username:, password:, button:) browser.text_field(name: username).set(@username) browser.text_field(name: password).set(@password) button.click button.wait_while_present end
synchronize_accounts()
click to toggle source
# File lib/menthol/provider.rb, line 51 def synchronize_accounts @accounts.each do |account| account.parse_amount(find_amount(account.name)) end end