module Google::Civic::Elections

Public Class Methods

for_zipcode(zipcode, client) click to toggle source
# File lib/google-civic/elections.rb, line 9
def for_zipcode(zipcode, client)
  raise InvalidZipcode if not zipcode?(zipcode)
  elections_from_response collection(zipcode, client)
end

Private Class Methods

collection(zipcode, client) click to toggle source
# File lib/google-civic/elections.rb, line 22
def collection(zipcode, client)
  client.request(:elections, zipcode: zipcode)
end
elections_from_response(response) click to toggle source
# File lib/google-civic/elections.rb, line 16
def elections_from_response(response)
  response.body.fetch("elections").map do |election|
    Election.new(election)
  end
end
zipcode?(zipcode) click to toggle source
# File lib/google-civic/elections.rb, line 26
def zipcode?(zipcode)
  zipcode =~ /\A\d{5}(?:[-\s]\d{4})?\z/
end