class Dubliner

Constants

VERSION

Public Class Methods

new(latitude, longitude) click to toggle source
# File lib/dubliner.rb, line 5
def initialize(latitude, longitude)
  self.latitude = latitude
  self.longitude = longitude
end

Public Instance Methods

getInvitees(filename) click to toggle source
# File lib/dubliner.rb, line 20
def getInvitees(filename)
  file = fileRead(filename)
  customers = jsonParse(file)
  invitees = []
  longestName = 0
  customers.each do |c|
    distance = distanceCalculator(c.latitude, c.longitude, @latitude, @longitude)
    if distance < 100.0
      c.distance = distance
      invitees.push(c)
      longestName = c.name.length unless longestName >=c.name.length
    end
  end
  invitees.sort_by! {|i| i.user_id}
  printInvitees(invitees, longestName)
end
latitude=(l) click to toggle source
# File lib/dubliner.rb, line 10
def latitude=(l)
  raise ArgumentError.new("latitude #{l} is invalid") unless l
  @latitude = (l.to_f * Math::PI) / 180
end
longitude=(l) click to toggle source
# File lib/dubliner.rb, line 15
def longitude=(l)
  raise ArgumentError.new("longitude #{l} is invalid") unless l
  @longitude = (l.to_f * Math::PI) / 180
end
printInvitees(invitees, width) click to toggle source
# File lib/dubliner.rb, line 37
def printInvitees(invitees, width)
  printf "count  %-#{width}s %s    %s", 'invitees', 'user_id', 'distance(km)'
  puts ''
  puts '-------------------------------------------------------------------------'
  counter = 1
  invitees.each do |i|
    printf "%3d    %-#{width}s %3d        %-3.2f\n", counter, i.name, i.user_id, i.distance
    counter += 1
  end
  puts '-------------------------------------------------------------------------'
end