Sha256: 5601a8e4a2ddb854dcf418ad6b189521cb4c85499888d585b0db4b20c6569726
Contents?: true
Size: 1.99 KB
Versions: 2
Compression:
Stored size: 1.99 KB
Contents
module Compactor module Amazon class ScrapedRow def initialize(node, mechanize) @node = node @mechanize = mechanize end def can_download_report? !report_buttons.empty? end def report_buttons last_cell.search(".secondarySmallButton").map do |ele| Mechanize::Page::Link.new(ele.parent, @mechanize, @mechanize.page) end end def download_report report_url = report_buttons[0].node["href"] report_identifier = report_buttons[0].node.search(".button_label").text type = ReportScraper.report_type(report_identifier) response_body = @mechanize.get(report_url).body [type, response_body] end def reload table_rows.each do |row| row = ScrapedRow.new(row, @mechanize) return row if row.date_range == date_range end nil end def request_report button = last_cell.search(".regenerateButton")[0] button_id = button['id'] @mechanize.post("/gp/payments-account/redrive.html", { "groupId" => button_id }) end def ready? div = last_cell.search("div")[-1] text = div.text ignorable_periods = ["(Processing)", "(Open)", "In Progress"] !ignorable_periods.any? { |ignore_text| text.include?(ignore_text) && div.search(".regenerateButton").blank? } end def deposit_amount @deposit_amount = fetch_deposit_amount if !@deposit_amount @deposit_amount end def date_range @date_range ||= @node.search("td:first-child a").text end private def fetch_deposit_amount deposit_cell = @node.search("td")[-2] deposit_cell ? deposit_cell.text.gsub(/[^0-9\.]/, '').to_f : 0.0 end def table_rows @mechanize.page.search("tr") end def last_cell @last_cell ||= @node.search("td")[-1] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
compactor-0.1.6 | lib/compactor/scraped_row.rb |
compactor-0.1.2 | lib/compactor/scraped_row.rb |