class Georama::Url

Public Class Methods

new(url) click to toggle source
# File lib/georama/url.rb, line 5
def initialize(url)
  raise ArgumentError, "Expected a valid maps url, got nil" if url.nil?
  @url_string = URI.encode(url)
  raise ArgumentError, "Not a valid url" unless Georama::Parser.is_valid_url?(@url_string)
  raise ArgumentError, "Not a valid maps url" unless Georama::Parser.is_google_maps_url?(@url_string)
  @parsed_url = URI.parse(@url_string)
end

Public Instance Methods

coordinates() click to toggle source
# File lib/georama/url.rb, line 17
def coordinates
  @coordinates ||= Georama::Parser.get_coordinates(coordinates_component)
end
latitude() click to toggle source
# File lib/georama/url.rb, line 21
def latitude
  coordinates[:latitude]
end
longitude() click to toggle source
# File lib/georama/url.rb, line 25
def longitude
  coordinates[:longitude]
end
metadata() click to toggle source
# File lib/georama/url.rb, line 29
def metadata
  @metadata ||= Georama::Parser.get_metadata(coordinates_component)
end
place() click to toggle source
# File lib/georama/url.rb, line 37
def place
  return nil unless type == :place
  @place ||= URI.unescape(path_components[2].gsub("+", " "))
end
type() click to toggle source
# File lib/georama/url.rb, line 13
def type
  @type ||= Georama::Parser.url_type(@parsed_url.path)
end
zoom() click to toggle source
# File lib/georama/url.rb, line 33
def zoom
  metadata[:zoom]
end

Private Instance Methods

coordinates_component() click to toggle source
# File lib/georama/url.rb, line 44
def coordinates_component
  @coordinates_component ||= case type
  when :general
    path_components[1]
  when :place
    path_components[3]
  end
end
path_components() click to toggle source
# File lib/georama/url.rb, line 53
def path_components
  @path_components ||= @parsed_url.path.split("/")[1..-1]
end