Class: SimMeterAU::Providers::AldiMobile::Parsers::ServiceDetails

Inherits:
Object
  • Object
show all
Defined in:
lib/sim_meter_au/providers/aldi_mobile/parsers/service_details.rb

Constant Summary collapse

QUANTITY_UNITS =
{
  "B" => 1,
  "KB" => 1024,
  "MB" => 1024**2,
  "GB" => 1024**3,
  "TB" => 1024**4
}.freeze

Instance Method Summary collapse

Instance Method Details

#parse(page:, service:, roaming_enabled:, retrieved_at: Time.now) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/sim_meter_au/providers/aldi_mobile/parsers/service_details.rb', line 18

def parse(page:, service:, roaming_enabled:, retrieved_at: Time.now)
  plan_panel = find_panel(page, excluding: /Pay As You Go/i)
  payg_panel = find_panel(page, including: /Pay As You Go/i)
  plan_rows = resource_rows(plan_panel)
  payg_rows = resource_rows(payg_panel)
  plan = parse_plan(plan_panel, plan_rows)

  SimMeterAU::ServiceDetails.new(
    service:,
    status: plan ? "active_plan" : "no_active_plan",
    plan:,
    data: parse_data(plan_rows),
    payg: parse_payg(payg_rows),
    roaming_enabled:,
    retrieved_at:
  )
end