Sha256: cef1312d129fc05601ba67ac3a95f3edb27d294d306872f78c30ae475d4803ad

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

require 'rubygems'
require 'xmlsimple'
require 'net/http'

module Echelon
  class SeaworldOrlando < Park

    attr_reader :xml_data

    def ride_list
      {
        2002 => 'Wild Arctic Ride',
        2048 => 'Flying Fiddler',
        2049 => 'Swishy Fishies',
        2034 => 'Kraken',
        2018 => 'Sky Tower',
        2036 => 'Journey to Atlantis',
        2037 => 'Manta',
        2008 => 'Sea Carousel',
        2044 => 'Shamu Express',
        2045 => 'Ocean Commotion',
        2046 => 'Jazzy Jellies'
      }
    end

    def initialize
      # fetch the xml file
      http = Net::HTTP.new('lab.defimobile.com', 443)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE
      resp, data = http.get('/orlando/rides')

      # were only interested in the ride data, throw everything else away
      xml_data = XmlSimple.xml_in(data)
      @xml_data = xml_data['ride']
    end

    private

    def create_ride_object(ref)
      self.xml_data.each do |ride|
        if ride["id"].to_s.to_i == ref
          active, queue_time = parse_wait_time(ride["waitTime"].to_s)
          updated_at = DateTime.parse(ride["lastModified"].to_s)
          return Ride.new(:name => self.ride_list[ref], :queue_time => queue_time, :active => active, :updated_at => updated_at)
        end
      end
    end

    def parse_wait_time(wait)
      if wait == "Closed"
        queue_time = 0
        active = 0
      elsif wait == "No Wait"
        queue_time = 0
        active = 1
      elsif wait =~ /(\d*) min/
        queue_time = $1.to_i
        active = 1
      else
        queue_time = 0
        active = 0
      end
      return active, queue_time
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
echelon-0.0.5 lib/echelon/parks/seaworld_orlando.rb