module Vnstat::Parser

A module containing several utility methods responsible for document parsing.

Public Instance Methods

extract_date_from_xml_element(element) click to toggle source

Extracts the date from the given XML element.

@param [Nokogiri::XML::Element] element The XML element. @return [Date]

# File lib/vnstat/parser.rb, line 26
def extract_date_from_xml_element(element)
  day = element.xpath('date/day').text.to_i
  year, month = extract_month_from_xml_element(element)
  Date.new(year, month, day)
end
extract_datetime_from_xml_element(element) click to toggle source

Extracts the date and time from the given XML element.

@param [Nokogiri::XML::Element] element The XML element. @return [Time]

# File lib/vnstat/parser.rb, line 37
def extract_datetime_from_xml_element(element)
  date = extract_date_from_xml_element(element)
  hour = element.xpath('time/hour').text.to_i
  minute = element.xpath('time/minute').text.to_i
  offset = Time.now.strftime('%:z')
  Time.new(date.year, date.month, date.day, hour, minute, 0, offset)
end
extract_month_from_xml_element(element) click to toggle source

Extracts the year and month from the given XML element.

@param [Nokogiri::XML::Element] element The XML element. @return [Array<Integer, Integer>] An Array consisting of year and month.

# File lib/vnstat/parser.rb, line 15
def extract_month_from_xml_element(element)
  month = element.xpath('date/month').text.to_i
  year = element.xpath('date/year').text.to_i
  [year, month]
end
extract_transmitted_bytes_from_xml_element(element) click to toggle source

Extracts the bytes received and sent from the given XML element.

@param [Nokogiri::XML::Element] element The XML element. @return [Array<Integer, Integer>] An Array consisting of bytes received

and bytes sent.
# File lib/vnstat/parser.rb, line 51
def extract_transmitted_bytes_from_xml_element(element)
  bytes_received = element.xpath('rx').text.to_i * 1024
  bytes_sent = element.xpath('tx').text.to_i * 1024
  [bytes_received, bytes_sent]
end