class ColissimoFuelAdjustmentCoefficients

Excepted XML is like:

<indice_gazole>
  <cap>
    <cap_mois>
      <titre>05-2017</titre>
      <routier>0,77%</routier>
      <aerien>0,00%</aerien>
    </cap_mois>
    ...
  </cap>
<indice_gazole>

Public Class Methods

new() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 21
def initialize
  @parsed_values = {}
  return unless xml_root

  caps  = xml_root.elements.first
  month = caps.elements.first
  month.elements.each do |element|
    @parsed_values[element.name] = element.text
  end
end

Public Instance Methods

air_multiplier() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 40
def air_multiplier
  format_multiplier @parsed_values["aerien"]
end
road_multiplier() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 44
def road_multiplier
  format_multiplier @parsed_values["routier"]
end
time_period() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 36
def time_period
  @parsed_values["titre"]
end
url() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 32
def url
  "https://www.colissimo.entreprise.laposte.fr/fr/system/files/imagescontent/docs/indice_gazole.xml"
end

Private Instance Methods

format_multiplier(value) click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 61
def format_multiplier(value)
  return unless value

  value.tr!("%", "")
  value.tr!(",", ".")

  number = (value.to_f / 100 + 1).round(4)
  BigDecimal(number.to_s)
end
response() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 50
def response
  ::HTTP.timeout(10).get(url)
rescue HTTP::Error
  ""
end
xml_root() click to toggle source
# File lib/colissimo_fuel_adjustment_coefficients.rb, line 56
def xml_root
  doc = Document.new response.to_s
  doc.root
end