Sha256: b4cc49571a38ba7d93cffbd22c2e1f78aff21fe7627cd18ee5c84bd80eace830

Contents?: true

Size: 728 Bytes

Versions: 1

Compression:

Stored size: 728 Bytes

Contents

require 'httpi'
require 'open-uri'
require 'json'

module OverpassAPI
  class Base
    DEFAULT_ENDPOINT='http://overpass-api.de/api/interpreter?data='

    def initialize(args={})
      bbox = args[:bbox]
      bounding_box(bbox[:s],bbox[:n],bbox[:w],bbox[:e]) if bbox

      @endpoint = args[:endpoint] || DEFAULT_ENDPOINT
      @timeout = args[:timeout]
    end

    def bounding_box(s,n,w,e)
      @bbox = "#{s},#{w},#{n},#{e}"
    end

    def query(q)
      perform build_query(q)
    end

    def raw_query(q)
      perform q
    end

    private

    def perform(q)
      url = URI::encode("#{@endpoint}#{q}")
      r = HTTPI::Request.new(url)
      JSON.parse(HTTPI.get(r).body, symbolize_names: true)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
overpass-api-ruby-0.2.2 lib/base.rb