module ChilexpressRails

This class will retreive some information according to param

Public Class Methods

receiver_info(html_doc) click to toggle source
# File lib/chilexpress_rails.rb, line 29
def self.receiver_info(html_doc)
  widget_content = html_doc.css('.wigdet-content')
  li = widget_content[1].css('li')
  return "Website's structure has change" unless li
  date = li[2].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, '')
  hour = " #{li[3].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, '')}:#{li[3].text.to_s.split(':')[2].strip.gsub(/\A\p{Space}*/, '')}"
  {
    receiver: li[1].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, ''),
    datetime: date + hour,
    receiver_name: li[4].text.to_s.split(':')[1].split(' ').first(2).join(' ').gsub(/\A\p{Space}*/, '')
  }
rescue
  "Website's structure has change"
end
search_order(tracking_number) click to toggle source
# File lib/chilexpress_rails.rb, line 7
def self.search_order(tracking_number)
  url = "http://www.chilexpress.cl/Views/ChilexpressCL/Resultado-busqueda.aspx?DATA=#{tracking_number}"
  doc = Nokogiri::HTML(open(url))
  return "The order doesn't exist" if doc.css('.section-title')[0].text.include?('No hemos encontrado')
  attributes = shipping_info(doc).merge!(receiver_info(doc))
  Order.new(attributes)
end
shipping_info(html_doc) click to toggle source
# File lib/chilexpress_rails.rb, line 15
def self.shipping_info(html_doc)
  widget_content = html_doc.css('.wigdet-content')
  li = widget_content[0].css('li')
  return "Website's structure has change" unless li
  {
    track_number: li[1].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, ''),
    product: li[2].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, ''),
    service: li[3].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, ''),
    status: li[4].text.to_s.split(':')[1].strip.gsub(/\A\p{Space}*/, '')
  }
rescue
  "Website's structure has change"
end