lib/ratis/schedule_nearby.rb in ratis-3.6.0 vs lib/ratis/schedule_nearby.rb in ratis-3.6.1

- old
+ new

@@ -3,26 +3,33 @@ class ScheduleNearby attr_accessor :atstops def self.where(conditions) + keys = conditions.keys + + if keys.include? :latitude + raise ArgumentError.new('You must provide longitude') unless keys.include?(:longitude) + elsif keys.include? :longitude + raise ArgumentError.new('You must provide latitude') unless keys.include?(:latitude) + else + raise ArgumentError.new('You must provide stop_id') unless keys.include?(:stop_id) + end + latitude = conditions.delete(:latitude) longitude = conditions.delete(:longitude) date = conditions.delete(:date) time = conditions.delete(:time) window = conditions.delete(:window) walk_distance = conditions.delete(:walk_distance) landmark_id = conditions.delete(:landmark_id) stop_id = conditions.delete(:stop_id) || '' - raise ArgumentError.new('You must provide latitude') unless latitude - raise ArgumentError.new('You must provide longitude') unless longitude raise ArgumentError.new('You must provide date') unless date raise ArgumentError.new('You must provide time') unless time raise ArgumentError.new('You must provide window') unless window raise ArgumentError.new('You must provide walk_distance') unless walk_distance - raise ArgumentError.new('You must provide landmark_id') unless landmark_id Ratis.all_conditions_used? conditions response = Request.get 'Schedulenearby', {'Locationlat' => latitude, @@ -38,19 +45,19 @@ return [] unless response.success? # TODO: where is this nightmare-ish hash being used? # need to refactor this into something more OO atstops = response.to_array :schedulenearby_response, :atstop - atstops.map do |atstop| + atstops.each do |atstop| atstop[:services] = atstop.to_array :service - atstop[:services].map do |service| + atstop[:services].each do |service| service[:tripinfos] = service.to_array :tripinfo end end schedule_nearby = ScheduleNearby.new - schedule_nearby.atstops = atstops + schedule_nearby.atstops = atstops.collect { |stop| Hashie::Mash.new stop } schedule_nearby end def to_hash