module PHLopa
Constants
- API_BASE
- DEFAULT_QUERY_STRING
- VERSION
Public Class Methods
get_by_account(account=nil)
click to toggle source
# File lib/phl_opa/api.rb, line 12 def get_by_account(account=nil) raise ArgumentError("Account Number must be 9 digits long") unless account.length == 9 raise ArgumentError("Account Number must be a string") unless account.is_a? String raise ArgumentError("Account Number must be made up only of numbers") unless account !~ /\D/ response = invoke_api('account/', account) data = parse_response(response) data end
search_by_address(address=nil)
click to toggle source
# File lib/phl_opa/api.rb, line 23 def search_by_address(address=nil) raise ArgumentError("Address must be a string") unless address.is_a? String response = invoke_api('address/', address + '/') data = parse_response(response) data end
search_by_block(block=nil)
click to toggle source
# File lib/phl_opa/api.rb, line 32 def search_by_block(block=nil) raise ArgumentError("Block must be a string") unless block.is_a? String response = invoke_api('block/', block + '/') data = parse_response(response) data end
search_by_intersection(street_a=nil, street_b=nil)
click to toggle source
# File lib/phl_opa/api.rb, line 41 def search_by_intersection(street_a=nil, street_b=nil) raise ArgumentError("Street_a must be a string") unless street_a.is_a? String raise ArgumentError("Street_b must be a string") unless street_b.is_a? String if (street_a.nil? || street_b.nil?); raise ArgumentError("Both parameters are required") end response = invoke_api('intersection/', street_a + '/' + street_b) data = parse_response(response) data end
search_nearby(lat=nil, lng=nil, radius=200)
click to toggle source
# File lib/phl_opa/api.rb, line 52 def search_nearby(lat=nil, lng=nil, radius=200) raise ArgumentError("Latitude must be a number") unless lat.is_a? Float raise ArgumentError("Longitude must be a number") unless lng.is_a? Float raise ArgumentError("Radius must be a number") unless radius.is_a? Fixnum raise ArgumentError("Radius must be a positive number") unless radius > 0 if (lat.nil? || lng.nil?); raise ArgumentError("Both latitude and longitude are required") end response = invoke_api('nearby/', "#{lng}/#{lat}/#{radius}") data = parse_response(response) data end
Private Class Methods
invoke_api(path, parameter)
click to toggle source
# File lib/phl_opa/api.rb, line 73 def invoke_api(path, parameter) encoded = URI::encode(parameter) url = URI.parse("#{API_BASE}#{path}#{encoded}#{DEFAULT_QUERY_STRING}") Net::HTTP.get_response(url) end
parse_response(response)
click to toggle source
# File lib/phl_opa/api.rb, line 67 def parse_response(response) json = JSON.parse(response.body) json end