class USNO::Transit::WorldWideRequest

Public Class Methods

new(options = {}) click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 9
def initialize(options = {})
  options = {
    uri: URI.parse("http://aa.usno.navy.mil/cgi-bin/aa_mrst2.pl"),
    z_meters: 0,
    days: 5,
    date: Time.now,
    lat_minutes: 0, lat_seconds: 0, long_minutes: 0, long_seconds: 0
  }.merge(options)


  load_options(:long, :lat, :days, :date, :object, options)
end

Public Instance Methods

call() click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 22
def call
  return result(true, request_response.body)
end

Private Instance Methods

coordinates() click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 39
def coordinates
  %W{
    xx0=#{ sign_of(@long) }
    xx1=#{ @long.abs }
    xx2=#{ @long_minutes }
    xx3=#{ @long_seconds }
    yy1=#{ @lat.abs }
    yy2=#{ @lat_minutes }
    yy3=#{ @lat_seconds }
    yy0=#{ sign_of(@lat) }
  }.join("&")
end
elevation() click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 35
def elevation
  "hh1=#{@z_meters}"
end
place() click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 27
def place
  %W{
    place=#{ @place || @city || "None given" }
    #{elevation}
    #{coordinates}
  }.join("&")
end
request_body() click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 56
def request_body
  %W{
    FFX=2
    ID=AA
    #{place}
    #{start_date}
    rep=#{@days}
    obj=#{@object}
    ZZZ=END
  }.join("&")
end
sign_of(int) click to toggle source
# File lib/usno/transit/worldwide_request.rb, line 52
def sign_of(int)
  int.zero? ? int.next : int / int.abs
end