jaspermayone / greenhouse

0 stars 0 forks source link

deprecate this constant (use `EARTH_RADII[:km]`) #185

Closed github-actions[bot] closed 5 months ago

github-actions[bot] commented 5 months ago

source://geocoder//lib/geocoder/calculations.rb#36

source://geocoder//lib/geocoder/calculations.rb#16

source://geocoder//lib/geocoder/calculations.rb#21

source://geocoder//lib/geocoder/calculations.rb#39

@return [Configuration] a new instance of Configuration

source://geocoder//lib/geocoder/configuration.rb#97

source://geocoder//lib/geocoder/configuration.rb#74

@param value the value to set the attribute data to.

source://geocoder//lib/geocoder/configuration.rb#74

source://geocoder//lib/geocoder/configuration_hash.rb#7

source://geocoder//lib/geocoder/ip_address.rb#10

source://geocoder//lib/geocoder/ip_address.rb#19

source://geocoder//lib/geocoder/ip_address.rb#23

source://geocoder//lib/geocoder/ip_address.rb#27

source://geocoder//lib/geocoder/ip_address.rb#31

source://geocoder//lib/geocoder/kernel_logger.rb#21

source://geocoder//lib/geocoder/logger.rb#43

source://geocoder//lib/geocoder/lookup.rb#10

source://geocoder//lib/geocoder/lookup.rb#17

For example, Amazon Location Service uses the AWS gem, not HTTP REST requests, to fetch data.

source://geocoder//lib/geocoder/lookup.rb#25

Use this instead of Geocoder::Lookup::X.new to get an

already-configured Lookup object.

source://geocoder//lib/geocoder/lookup.rb#110

source://geocoder//lib/geocoder/lookup.rb#77

@param value the value to set the attribute ip_services to.

source://geocoder//lib/geocoder/lookup.rb#103

source://geocoder//lib/geocoder/lookup.rb#32

@param value the value to set the attribute street_services to.

source://geocoder//lib/geocoder/lookup.rb#103

source://geocoder//lib/geocoder/lookup.rb#136

source://geocoder//lib/geocoder/lookup.rb#143

source://geocoder//lib/geocoder/lookup.rb#122

source://geocoder//lib/geocoder/lookups/base.rb#17

source://geocoder//lib/geocoder/lookups/base.rb#85

source://geocoder//lib/geocoder/lookups/base.rb#31

Not necessarily implemented by all subclasses as only some lookups

also provide maps.

source://geocoder//lib/geocoder/lookups/base.rb#59

source://geocoder//lib/geocoder/lookups/base.rb#24

Subclasses should not modify this method. Instead they should define

base_query_url and url_query_string. If absolutely necessary to

subclss this method, they must also subclass #cache_key.

source://geocoder//lib/geocoder/lookups/base.rb#78

Empty array if keys are optional or not required.

source://geocoder//lib/geocoder/lookups/base.rb#67

Returns +nil+ on timeout or error.

Takes a search string (eg: "Mississippi Coast Coliseumf, Biloxi, MS",

"205.128.54.202") for geocoding, or coordinates (latitude, longitude)

for reverse geocoding. Returns an array of \<tt>Geocoder::Result\</tt>s.

source://geocoder//lib/geocoder/lookups/base.rb#44

Should be set to [:http] if only HTTP is supported

or [:https] if only HTTPS is supported.

source://geocoder//lib/geocoder/lookups/base.rb#98

produces the full query URL. Should include the "?" a the end.

source://geocoder//lib/geocoder/lookups/base.rb#108

request URL, but in cases where OAuth is used and the nonce,

timestamp, etc varies from one request to another, we need to use

something else (like the URL before OAuth encoding).

source://geocoder//lib/geocoder/lookups/base.rb#161

source://geocoder//lib/geocoder/lookups/base.rb#115

source://geocoder//lib/geocoder/lookups/base.rb#195

The result might or might not be cached.

source://geocoder//lib/geocoder/lookups/base.rb#244

Removes any keys with nil value.

source://geocoder//lib/geocoder/lookups/base.rb#343

source://geocoder//lib/geocoder/lookups/base.rb#122

return the response object.

source://geocoder//lib/geocoder/lookups/base.rb#297

source://geocoder//lib/geocoder/lookups/base.rb#224

Set in configuration but not available for every service.

source://geocoder//lib/geocoder/lookups/base.rb#232

Return false if exception not raised.

source://geocoder//lib/geocoder/lookups/base.rb#183

source://geocoder//lib/geocoder/lookups/base.rb#175

source://geocoder//lib/geocoder/lookups/base.rb#141

source://geocoder//lib/geocoder/lookups/base.rb#317

source://geocoder//lib/geocoder/lookups/base.rb#236

source://geocoder//lib/geocoder/models/base.rb#6

source://geocoder//lib/geocoder/models/active_record.rb#11

source://geocoder//lib/geocoder/models/active_record.rb#29

source://geocoder//lib/geocoder/query.rb#5

A query is considered blank if its text is nil or empty string AND

no URL parameters are specified.

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#52

or nil if none.

source://geocoder//lib/geocoder/query.rb#104

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#93

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#72

Does not check for actual validity, just the appearance of four

dot-delimited numbers.

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#65

appropriate to the Query text.

source://geocoder//lib/geocoder/query.rb#34

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#79

source://geocoder//lib/geocoder/query.rb#3

@param value the value to set the attribute options to.

source://geocoder//lib/geocoder/query.rb#3

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#86

@return [Boolean]

source://geocoder//lib/geocoder/query.rb#111

source://geocoder//lib/geocoder/query.rb#3

@param value the value to set the attribute text to.

source://geocoder//lib/geocoder/query.rb#3

source://geocoder//lib/geocoder/query.rb#121

Don't use it in authorization/authentication code, or any

other security-sensitive application. Use safe_location

instead.

source://geocoder//lib/geocoder/request.rb#10

For requests that go through a proxy that you haven't

whitelisted as trusted in your Rack config, you will get the

location for the IP of the last untrusted proxy in the chain,

not the original client IP. You WILL NOT get the location

corresponding to the original client IP for any request sent

through a non-whitelisted proxy.

source://geocoder//lib/geocoder/request.rb#21

been configured as trusted; includes private ranges by

default. (we don't want every lookup to return the location

of our own proxy/load balancer)

source://geocoder//lib/geocoder/request.rb#79

proxy softwares to indicate original client IP.

ANY of these can be trivially spoofed!

(except REMOTE_ADDR, which should by set by your server,

and is included at the end as a fallback.

Order does matter: we're following the convention established in

ActionDispatch::RemoteIp::GetIp::calculate_ip()

https://github\.com/rails/rails/blob/master/actionpack/lib/action\_dispatch/middleware/remote\_ip\.rb

where the forwarded_for headers, possibly containing lists,

are arbitrarily preferred over headers expected to contain a

single address.

source://geocoder//lib/geocoder/request.rb#36

source://geocoder//lib/geocoder/exceptions.rb#17

source://geocoder//lib/geocoder/exceptions.rb#15

@return [Base] a new instance of Base

source://geocoder//lib/geocoder/results/base.rb#15

This default implementation dumbly follows the United States address

format and will return incorrect results for most countries. Some APIs

return properly formatted addresses and those should be funneled

through this method.

source://geocoder//lib/geocoder/results/base.rb#28

service; nil if cache is not configured

source://geocoder//lib/geocoder/results/base.rb#10

service; nil if cache is not configured

source://geocoder//lib/geocoder/results/base.rb#10

source://geocoder//lib/geocoder/results/base.rb#42

source://geocoder//lib/geocoder/results/base.rb#6

source://geocoder//lib/geocoder/results/base.rb#6

source://geocoder//lib/geocoder/results/test.rb#24

Adds the contents of +h2+ to +h1+,

merging entries in +h1+ with duplicate keys with those from +h2+.

Compared with Hash#merge!, this method supports nested hashes.

When both +h1+ and +h2+ contains an entry with the same key,

it merges and returns the values from both hashes.

h1 \= {"a" \=> 100, "b" \=> 200, "c" \=> {"c1" \=> 12, "c2" \=> 14}}

h2 \= {"b" \=> 254, "c" \=> {"c1" \=> 16, "c3" \=> 94}}

recursive_hash_merge(h1, h2) #\=> {"a" \=> 100, "b" \=> 254, "c" \=> {"c1" \=> 16, "c2" \=> 14, "c3" \=> 94}}

Simply using Hash#merge! would return

h1.merge!(h2) #\=> {"a" \=> 100, "b" \= >254, "c" \=> {"c1" \=> 16, "c3" \=> 94}}

source://geocoder//lib/geocoder/util.rb#23

https://github.com/jaspermayone/greenhouse/blob/b44c6478e928fdd5ada0bd950c7340818b6e64fb/sorbet/rbi/gems/geocoder@1.8.3.rbi#L400


# typed: true

# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `geocoder` gem.
# Please instead update this file by running `bin/tapioca gem geocoder`.

class ActionDispatch::Request
  include ::Geocoder::Request
end

# source://geocoder//lib/geocoder/configuration_hash.rb#1
module Geocoder
  class << self
    # Look up the address of the given coordinates ([lat,lon])
    # or IP address (string).
    #
    # source://geocoder//lib/geocoder.rb#38
    def address(query, options = T.unsafe(nil)); end

    # Read-only access to the singleton's config data.
    #
    # source://geocoder//lib/geocoder/configuration.rb#26
    def config; end

    # Read-only access to lookup-specific config data.
    #
    # source://geocoder//lib/geocoder/configuration.rb#33
    def config_for_lookup(lookup_name); end

    # Configuration options should be set by passing a hash:
    #
    #   Geocoder.configure(
    #     :timeout  => 5,
    #     :lookup   => :yandex,
    #     :api_key  => "2a9fsa983jaslfj982fjasd",
    #     :units    => :km
    #   )
    #
    # source://geocoder//lib/geocoder/configuration.rb#17
    def configure(options = T.unsafe(nil), &block); end

    # Look up the coordinates of the given street or IP address.
    #
    # source://geocoder//lib/geocoder.rb#28
    def coordinates(address, options = T.unsafe(nil)); end

    # source://geocoder//lib/geocoder/logger.rb#5
    def log(level, message); end

    # Merge the given hash into a lookup's existing configuration.
    #
    # source://geocoder//lib/geocoder/configuration.rb#45
    def merge_into_lookup_config(lookup_name, options); end

    # Search for information about an address or a set of coordinates.
    #
    # source://geocoder//lib/geocoder.rb#20
    def search(query, options = T.unsafe(nil)); end
  end
end

# source://geocoder//lib/geocoder/cache.rb#4
class Geocoder::Cache
  # @return [Cache] a new instance of Cache
  #
  # source://geocoder//lib/geocoder/cache.rb#6
  def initialize(store, config); end

  # Read from the Cache.
  #
  # source://geocoder//lib/geocoder/cache.rb#14
  def [](url); end

  # Write to the Cache.
  #
  # source://geocoder//lib/geocoder/cache.rb#23
  def []=(url, value); end

  # Delete cache entry for given URL,
  # or pass <tt>:all</tt> to clear all URLs.
  #
  # source://geocoder//lib/geocoder/cache.rb#33
  def expire(url); end

  private

  # source://geocoder//lib/geocoder/cache.rb#73
  def expire_single_url(url); end

  # Clean up value before returning. Namely, convert empty string to nil.
  # (Some key/value stores return empty string instead of nil.)
  #
  # source://geocoder//lib/geocoder/cache.rb#69
  def interpret(value); end

  # Array of keys with the currently configured prefix
  # that have non-nil values.
  #
  # source://geocoder//lib/geocoder/cache.rb#54
  def keys; end

  # source://geocoder//lib/geocoder/cache.rb#48
  def store_service; end

  # Array of cached URLs.
  #
  # source://geocoder//lib/geocoder/cache.rb#61
  def urls; end
end

# source://geocoder//lib/geocoder/cache_stores/base.rb#1
module Geocoder::CacheStore; end

# source://geocoder//lib/geocoder/cache_stores/base.rb#2
class Geocoder::CacheStore::Base
  # @return [Base] a new instance of Base
  #
  # source://geocoder//lib/geocoder/cache_stores/base.rb#3
  def initialize(store, options); end

  # Array of keys with the currently configured prefix
  # that have non-nil values.
  #
  # source://geocoder//lib/geocoder/cache_stores/base.rb#12
  def keys; end

  # Array of cached URLs.
  #
  # source://geocoder//lib/geocoder/cache_stores/base.rb#19
  def urls; end

  protected

  # source://geocoder//lib/geocoder/cache_stores/base.rb#27
  def config; end

  # Cache key for a given URL.
  #
  # source://geocoder//lib/geocoder/cache_stores/base.rb#32
  def key_for(url); end

  # source://geocoder//lib/geocoder/cache_stores/base.rb#25
  def prefix; end

  # source://geocoder//lib/geocoder/cache_stores/base.rb#26
  def store; end
end

# source://geocoder//lib/geocoder/cache_stores/generic.rb#4
class Geocoder::CacheStore::Generic < ::Geocoder::CacheStore::Base
  # source://geocoder//lib/geocoder/cache_stores/generic.rb#27
  def keys; end

  # source://geocoder//lib/geocoder/cache_stores/generic.rb#16
  def read(url); end

  # source://geocoder//lib/geocoder/cache_stores/generic.rb#31
  def remove(key); end

  # source://geocoder//lib/geocoder/cache_stores/generic.rb#5
  def write(url, value); end
end

# source://geocoder//lib/geocoder/cache_stores/redis.rb#4
class Geocoder::CacheStore::Redis < ::Geocoder::CacheStore::Base
  # @return [Redis] a new instance of Redis
  #
  # source://geocoder//lib/geocoder/cache_stores/redis.rb#5
  def initialize(store, options); end

  # source://geocoder//lib/geocoder/cache_stores/redis.rb#22
  def keys; end

  # source://geocoder//lib/geocoder/cache_stores/redis.rb#18
  def read(url); end

  # source://geocoder//lib/geocoder/cache_stores/redis.rb#26
  def remove(key); end

  # source://geocoder//lib/geocoder/cache_stores/redis.rb#10
  def write(url, value, expire = T.unsafe(nil)); end

  private

  # source://geocoder//lib/geocoder/cache_stores/redis.rb#32
  def expire; end
end

# source://geocoder//lib/geocoder/calculations.rb#2
module Geocoder::Calculations
  extend ::Geocoder::Calculations

  # Bearing between two points on Earth.
  # Returns a number of degrees from due north (clockwise).
  #
  # See Geocoder::Calculations.distance_between for
  # ways of specifying the points. Also accepts an options hash:
  #
  # * <tt>:method</tt> - <tt>:linear</tt> or <tt>:spherical</tt>;
  #   the spherical method is "correct" in that it returns the shortest path
  #   (one along a great circle) but the linear method is less confusing
  #   (returns due east or west when given two points with the same latitude).
  #   Use Geocoder.configure(:distances => ...) to configure calculation method.
  #
  # Based on: http://www.movable-type.co.uk/scripts/latlong.html
  #
  # source://geocoder//lib/geocoder/calculations.rb#118
  def bearing_between(point1, point2, options = T.unsafe(nil)); end

  # Returns coordinates of the southwest and northeast corners of a box
  # with the given point at its center. The radius is the shortest distance
  # from the center point to any side of the box (the length of each side
  # is twice the radius).
  #
  # This is useful for finding corner points of a map viewport, or for
  # roughly limiting the possible solutions in a geo-spatial search
  # (ActiveRecord queries use it thusly).
  #
  # See Geocoder::Calculations.distance_between for
  # ways of specifying the point. Also accepts an options hash:
  #
  # * <tt>:units</tt> - <tt>:mi</tt> or <tt>:km</tt>.
  #   Use Geocoder.configure(:units => ...) to configure default units.
  #
  # source://geocoder//lib/geocoder/calculations.rb#210
  def bounding_box(point, radius, options = T.unsafe(nil)); end

  # Translate a bearing (float) into a compass direction (string, eg "North").
  #
  # source://geocoder//lib/geocoder/calculations.rb#156
  def compass_point(bearing, points = T.unsafe(nil)); end

  # Returns true if all given arguments are valid latitude/longitude values.
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/calculations.rb#44
  def coordinates_present?(*args); end

  # Distance between two points on Earth (Haversine formula).
  # Takes two points and an options hash.
  # The points are given in the same way that points are given to all
  # Geocoder methods that accept points as arguments. They can be:
  #
  # * an array of coordinates ([lat,lon])
  # * a geocodable address (string)
  # * a geocoded object (one which implements a +to_coordinates+ method
  #   which returns a [lat,lon] array
  #
  # The options hash supports:
  #
  # * <tt>:units</tt> - <tt>:mi</tt> or <tt>:km</tt>
  #   Use Geocoder.configure(:units => ...) to configure default units.
  #
  # source://geocoder//lib/geocoder/calculations.rb#84
  def distance_between(point1, point2, options = T.unsafe(nil)); end

  # source://geocoder//lib/geocoder/calculations.rb#319
  def distance_to_radians(distance, units = T.unsafe(nil)); end

  # Radius of the Earth in the given units (:mi or :km).
  # Use Geocoder.configure(:units => ...) to configure default units.
  #
  # source://geocoder//lib/geocoder/calculations.rb#355
  def earth_radius(units = T.unsafe(nil)); end

  # Given a start point, heading (in degrees), and distance, provides
  # an endpoint.
  # The starting point is given in the same way that points are given to all
  # Geocoder methods that accept points as arguments. It can be:
  #
  # * an array of coordinates ([lat,lon])
  # * a geocodable address (string)
  # * a geocoded object (one which implements a +to_coordinates+ method
  #   which returns a [lat,lon] array
  #
  # source://geocoder//lib/geocoder/calculations.rb#269
  def endpoint(start, heading, distance, options = T.unsafe(nil)); end

  # Takes an object which is a [lat,lon] array, a geocodable string,
  # or an object that implements +to_coordinates+ and returns a
  # [lat,lon] array. Note that if a string is passed this may be a slow-
  # running method and may return nil.
  #
  # source://geocoder//lib/geocoder/calculations.rb#397
  def extract_coordinates(point); end

  # Compute the geographic center (aka geographic midpoint, center of
  # gravity) for an array of geocoded objects and/or [lat,lon] arrays
  # (can be mixed). Any objects missing coordinates are ignored. Follows
  # the procedure documented at http://www.geomidpoint.com/calculation.html.
  #
  # source://geocoder//lib/geocoder/calculations.rb#167
  def geographic_center(points); end

  # Conversion factor: km to mi.
  #
  # source://geocoder//lib/geocoder/calculations.rb#362
  def km_in_mi; end

  # Conversion factor: km to nm.
  #
  # source://geocoder//lib/geocoder/calculations.rb#370
  def km_in_nm; end

  # Distance spanned by one degree of latitude in the given units.
  #
  # source://geocoder//lib/geocoder/calculations.rb#56
  def latitude_degree_distance(units = T.unsafe(nil)); end

  # Distance spanned by one degree of longitude at the given latitude.
  # This ranges from around 69 miles at the equator to zero at the poles.
  #
  # source://geocoder//lib/geocoder/calculations.rb#64
  def longitude_degree_distance(latitude, units = T.unsafe(nil)); end

  # Conversion factor: mi to km.
  #
  # source://geocoder//lib/geocoder/calculations.rb#378
  def mi_in_km; end

  # Conversion factor: nm to km.
  #
  # source://geocoder//lib/geocoder/calculations.rb#386
  def nm_in_km; end

  # source://geocoder//lib/geocoder/calculations.rb#323
  def radians_to_distance(radians, units = T.unsafe(nil)); end

  # Random point within a circle of provided radius centered
  # around the provided point
  # Takes one point, one radius, and an options hash.
  # The points are given in the same way that points are given to all
  # Geocoder methods that accept points as arguments. They can be:
  #
  # * an array of coordinates ([lat,lon])
  # * a geocodable address (string)
  # * a geocoded object (one which implements a +to_coordinates+ method
  #   which returns a [lat,lon] array
  #
  # The options hash supports:
  #
  # * <tt>:units</tt> - <tt>:mi</tt> or <tt>:km</tt>
  #   Use Geocoder.configure(:units => ...) to configure default units.
  # * <tt>:seed</tt> - The seed for the random number generator
  #
  # source://geocoder//lib/geocoder/calculations.rb#238
  def random_point_near(center, radius, options = T.unsafe(nil)); end

  # Convert radians to degrees.
  # If an array (or multiple arguments) is passed,
  # converts each value and returns array.
  #
  # source://geocoder//lib/geocoder/calculations.rb#310
  def to_degrees(*args); end

  # Convert miles to kilometers.
  #
  # source://geocoder//lib/geocoder/calculations.rb#330
  def to_kilometers(mi); end

  # Convert kilometers to miles.
  #
  # source://geocoder//lib/geocoder/calculations.rb#338
  def to_miles(km); end

  # Convert kilometers to nautical miles.
  #
  # source://geocoder//lib/geocoder/calculations.rb#346
  def to_nautical_miles(km); end

  # Convert degrees to radians.
  # If an array (or multiple arguments) is passed,
  # converts each value and returns array.
  #
  # source://geocoder//lib/geocoder/calculations.rb#296
  def to_radians(*args); end
end

# Compass point names, listed clockwise starting at North.
#
# If you want bearings named using more, fewer, or different points
# override Geocoder::Calculations.COMPASS_POINTS with your own array.
#
# source://geocoder//lib/geocoder/calculations.rb#11
Geocoder::Calculations::COMPASS_POINTS = T.let(T.unsafe(nil), Array)

# Conversion factor: multiply by radians to get degrees.
#
# source://geocoder//lib/geocoder/calculations.rb#26
Geocoder::Calculations::DEGREES_PER_RADIAN = T.let(T.unsafe(nil), Float)

# Radius of the Earth, in kilometers.
# Value taken from: http://en.wikipedia.org/wiki/Earth_radius
#
# source://geocoder//lib/geocoder/calculations.rb#32
Geocoder::Calculations::EARTH_RADII = T.let(T.unsafe(nil), Hash)

# TODO: deprecate this constant (use `EARTH_RADII[:km]`)
#
# source://geocoder//lib/geocoder/calculations.rb#36
Geocoder::Calculations::EARTH_RADIUS = T.let(T.unsafe(nil), Float)

# Conversion factor: multiply by kilometers to get miles.
#
# source://geocoder//lib/geocoder/calculations.rb#16
Geocoder::Calculations::KM_IN_MI = T.let(T.unsafe(nil), Float)

# Conversion factor: multiply by nautical miles to get miles.
#
# source://geocoder//lib/geocoder/calculations.rb#21
Geocoder::Calculations::KM_IN_NM = T.let(T.unsafe(nil), Float)

# Not a number constant
#
# source://geocoder//lib/geocoder/calculations.rb#39
Geocoder::Calculations::NAN = T.let(T.unsafe(nil), Float)

# source://geocoder//lib/geocoder/configuration.rb#50
class Geocoder::Configuration
  include ::Singleton
  extend ::Singleton::SingletonClassMethods

  # :nodoc
  #
  # @return [Configuration] a new instance of Configuration
  #
  # source://geocoder//lib/geocoder/configuration.rb#97
  def initialize; end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def always_raise; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def always_raise=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def api_key; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def api_key=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def basic_auth; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def basic_auth=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def cache; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def cache=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def cache_options; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def cache_options=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#93
  def configure(options); end

  # Returns the value of attribute data.
  #
  # source://geocoder//lib/geocoder/configuration.rb#74
  def data; end

  # Sets the attribute data
  #
  # @param value the value to set the attribute data to.
  #
  # source://geocoder//lib/geocoder/configuration.rb#74
  def data=(_arg0); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def distances; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def distances=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def host; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def host=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def http_headers; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def http_headers=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def http_proxy; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def http_proxy=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def https_proxy; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def https_proxy=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def ip_lookup; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def ip_lookup=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def kernel_logger_level; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def kernel_logger_level=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def language; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def language=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def logger; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def logger=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def lookup; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def lookup=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#102
  def set_defaults; end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def timeout; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def timeout=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def units; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def units=(value); end

  # source://geocoder//lib/geocoder/configuration.rb#85
  def use_https; end

  # source://geocoder//lib/geocoder/configuration.rb#88
  def use_https=(value); end

  class << self
    def always_raise; end
    def always_raise=(value); end
    def api_key; end
    def api_key=(value); end
    def basic_auth; end
    def basic_auth=(value); end
    def cache; end
    def cache=(value); end
    def cache_options; end
    def cache_options=(value); end
    def distances; end
    def distances=(value); end
    def host; end
    def host=(value); end
    def http_headers; end
    def http_headers=(value); end
    def http_proxy; end
    def http_proxy=(value); end
    def https_proxy; end
    def https_proxy=(value); end
    def ip_lookup; end
    def ip_lookup=(value); end
    def kernel_logger_level; end
    def kernel_logger_level=(value); end
    def language; end
    def language=(value); end
    def logger; end
    def logger=(value); end
    def lookup; end
    def lookup=(value); end

    # source://geocoder//lib/geocoder/configuration.rb#76
    def set_defaults; end

    def timeout; end
    def timeout=(value); end
    def units; end
    def units=(value); end
    def use_https; end
    def use_https=(value); end

    private

    def allocate; end
    def new(*_arg0); end
  end
end

# source://geocoder//lib/geocoder/configuration.rb#53
Geocoder::Configuration::OPTIONS = T.let(T.unsafe(nil), Array)

# source://geocoder//lib/geocoder/exceptions.rb#8
class Geocoder::ConfigurationError < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/configuration_hash.rb#2
class Geocoder::ConfigurationHash < ::Hash
  # source://geocoder//lib/geocoder/configuration_hash.rb#3
  def method_missing(meth, *args, &block); end

  private

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/configuration_hash.rb#7
  def respond_to_missing?(meth, include_private = T.unsafe(nil)); end
end

# source://geocoder//lib/geocoder/exceptions.rb#5
class Geocoder::Error < ::StandardError; end

# source://geocoder//lib/geocoder/exceptions.rb#28
class Geocoder::InvalidApiKey < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/exceptions.rb#25
class Geocoder::InvalidRequest < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/ip_address.rb#3
class Geocoder::IpAddress < ::String
  # @return [IpAddress] a new instance of IpAddress
  #
  # source://geocoder//lib/geocoder/ip_address.rb#10
  def initialize(ip); end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/ip_address.rb#19
  def internal?; end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/ip_address.rb#23
  def loopback?; end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/ip_address.rb#27
  def private?; end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/ip_address.rb#31
  def valid?; end
end

# source://geocoder//lib/geocoder/ip_address.rb#4
Geocoder::IpAddress::PRIVATE_IPS = T.let(T.unsafe(nil), Array)

# source://geocoder//lib/geocoder/kernel_logger.rb#2
class Geocoder::KernelLogger
  include ::Singleton
  extend ::Singleton::SingletonClassMethods

  # source://geocoder//lib/geocoder/kernel_logger.rb#5
  def add(level, message); end

  private

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/kernel_logger.rb#21
  def log_message_at_level?(level); end

  class << self
    private

    def allocate; end
    def new(*_arg0); end
  end
end

# source://geocoder//lib/geocoder/logger.rb#9
class Geocoder::Logger
  include ::Singleton
  extend ::Singleton::SingletonClassMethods

  # source://geocoder//lib/geocoder/logger.rb#20
  def log(level, message); end

  private

  # source://geocoder//lib/geocoder/logger.rb#35
  def current_logger; end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/logger.rb#43
  def valid_level?(level); end

  class << self
    private

    def allocate; end
    def new(*_arg0); end
  end
end

# source://geocoder//lib/geocoder/logger.rb#12
Geocoder::Logger::SEVERITY = T.let(T.unsafe(nil), Hash)

# source://geocoder//lib/geocoder/lookups/base.rb#14
module Geocoder::Lookup
  extend ::Geocoder::Lookup

  # Array of valid Lookup service names.
  #
  # source://geocoder//lib/geocoder/lookup.rb#10
  def all_services; end

  # Array of valid Lookup service names, excluding :test.
  #
  # source://geocoder//lib/geocoder/lookup.rb#17
  def all_services_except_test; end

  # Array of valid Lookup service names, excluding any that do not build their own HTTP requests.
  # For example, Amazon Location Service uses the AWS gem, not HTTP REST requests, to fetch data.
  #
  # source://geocoder//lib/geocoder/lookup.rb#25
  def all_services_with_http_requests; end

  # Retrieve a Lookup object from the store.
  # Use this instead of Geocoder::Lookup::X.new to get an
  # already-configured Lookup object.
  #
  # source://geocoder//lib/geocoder/lookup.rb#110
  def get(name); end

  # All IP address lookup services, default first.
  #
  # source://geocoder//lib/geocoder/lookup.rb#77
  def ip_services; end

  # Sets the attribute ip_services
  #
  # @param value the value to set the attribute ip_services to.
  #
  # source://geocoder//lib/geocoder/lookup.rb#103
  def ip_services=(_arg0); end

  # All street address lookup services, default first.
  #
  # source://geocoder//lib/geocoder/lookup.rb#32
  def street_services; end

  # Sets the attribute street_services
  #
  # @param value the value to set the attribute street_services to.
  #
  # source://geocoder//lib/geocoder/lookup.rb#103
  def street_services=(_arg0); end

  private

  # Convert an "underscore" version of a name into a "class" version.
  #
  # source://geocoder//lib/geocoder/lookup.rb#136
  def classify_name(filename); end

  # Safely instantiate Lookup
  #
  # source://geocoder//lib/geocoder/lookup.rb#143
  def instantiate_lookup(name); end

  # Spawn a Lookup of the given name.
  #
  # source://geocoder//lib/geocoder/lookup.rb#122
  def spawn(name); end
end

# source://geocoder//lib/geocoder/lookups/base.rb#16
class Geocoder::Lookup::Base
  # @return [Base] a new instance of Base
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#17
  def initialize; end

  # The working Cache object.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#85
  def cache; end

  # Symbol which is used in configuration to refer to this Lookup.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#31
  def handle; end

  # Return the URL for a map of the given coordinates.
  #
  # Not necessarily implemented by all subclasses as only some lookups
  # also provide maps.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#59
  def map_link_url(coordinates); end

  # Human-readable name of the geocoding API.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#24
  def name; end

  # URL to use for querying the geocoding engine.
  #
  # Subclasses should not modify this method. Instead they should define
  # base_query_url and url_query_string. If absolutely necessary to
  # subclss this method, they must also subclass #cache_key.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#78
  def query_url(query); end

  # Array containing string descriptions of keys required by the API.
  # Empty array if keys are optional or not required.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#67
  def required_api_key_parts; end

  # Query the geocoding API and return a Geocoder::Result object.
  # Returns +nil+ on timeout or error.
  #
  # Takes a search string (eg: "Mississippi Coast Coliseumf, Biloxi, MS",
  # "205.128.54.202") for geocoding, or coordinates (latitude, longitude)
  # for reverse geocoding. Returns an array of <tt>Geocoder::Result</tt>s.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#44
  def search(query, options = T.unsafe(nil)); end

  # Array containing the protocols supported by the api.
  # Should be set to [:http] if only HTTP is supported
  # or [:https] if only HTTPS is supported.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#98
  def supported_protocols; end

  private

  # String which, when concatenated with url_query_string(query)
  # produces the full query URL. Should include the "?" a the end.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#108
  def base_query_url(query); end

  # Key to use for caching a geocoding result. Usually this will be the
  # request URL, but in cases where OAuth is used and the nonce,
  # timestamp, etc varies from one request to another, we need to use
  # something else (like the URL before OAuth encoding).
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#161
  def cache_key(query); end

  # source://geocoder//lib/geocoder/lookups/base.rb#165
  def cache_key_params(query); end

  # source://geocoder//lib/geocoder/lookups/base.rb#329
  def check_api_key_configuration!(query); end

  # source://geocoder//lib/geocoder/lookups/base.rb#274
  def check_response_for_errors!(response); end

  # An object with configuration data for this particular lookup.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#115
  def configuration; end

  # source://geocoder//lib/geocoder/lookups/base.rb#327
  def configure_ssl!(client); end

  # Returns a parsed search result (Ruby hash).
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#195
  def fetch_data(query); end

  # Fetch a raw geocoding result (JSON string).
  # The result might or might not be cached.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#244
  def fetch_raw_data(query); end

  # Simulate ActiveSupport's Object#to_query.
  # Removes any keys with nil value.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#343
  def hash_to_query(hash); end

  # Object used to make HTTP requests.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#122
  def http_client; end

  # Make an HTTP(S) request to a geocoding API and
  # return the response object.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#297
  def make_api_request(query); end

  # source://geocoder//lib/geocoder/lookups/base.rb#208
  def parse_json(data); end

  # Parses a raw search result (returns hash or array).
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#224
  def parse_raw_data(raw_data); end

  # Protocol to use for communication with geocoding services.
  # Set in configuration but not available for every service.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#232
  def protocol; end

  # source://geocoder//lib/geocoder/lookups/base.rb#145
  def query_url_params(query); end

  # Raise exception if configuration specifies it should be raised.
  # Return false if exception not raised.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#183
  def raise_error(error, message = T.unsafe(nil)); end

  # Class of the result objects
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#175
  def result_class; end

  # Geocoder::Result object or nil on timeout or other error.
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#141
  def results(query); end

  # source://geocoder//lib/geocoder/lookups/base.rb#149
  def url_query_string(query); end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#317
  def use_ssl?; end

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/lookups/base.rb#236
  def valid_response?(response); end
end

# source://geocoder//lib/geocoder/lookups/test.rb#6
class Geocoder::Lookup::Test < ::Geocoder::Lookup::Base
  # source://geocoder//lib/geocoder/lookups/test.rb#8
  def name; end

  private

  # source://geocoder//lib/geocoder/lookups/test.rb#43
  def results(query); end

  class << self
    # source://geocoder//lib/geocoder/lookups/test.rb#12
    def add_stub(query_text, results); end

    # source://geocoder//lib/geocoder/lookups/test.rb#32
    def delete_stub(query_text); end

    # source://geocoder//lib/geocoder/lookups/test.rb#20
    def read_stub(query_text); end

    # source://geocoder//lib/geocoder/lookups/test.rb#36
    def reset; end

    # source://geocoder//lib/geocoder/lookups/test.rb#16
    def set_default_stub(results); end

    # source://geocoder//lib/geocoder/lookups/test.rb#28
    def stubs; end
  end
end

# source://geocoder//lib/geocoder/exceptions.rb#34
class Geocoder::LookupTimeout < ::Timeout::Error; end

# Methods for invoking Geocoder in a model.
#
# source://geocoder//lib/geocoder/models/base.rb#6
module Geocoder::Model; end

# source://geocoder//lib/geocoder/models/active_record.rb#5
module Geocoder::Model::ActiveRecord
  include ::Geocoder::Model::Base

  # Set attribute names and include the Geocoder module.
  #
  # source://geocoder//lib/geocoder/models/active_record.rb#11
  def geocoded_by(address_attr, options = T.unsafe(nil), &block); end

  # Set attribute names and include the Geocoder module.
  #
  # source://geocoder//lib/geocoder/models/active_record.rb#29
  def reverse_geocoded_by(latitude_attr, longitude_attr, options = T.unsafe(nil), &block); end

  private

  # source://geocoder//lib/geocoder/models/active_record.rb#47
  def geocoder_file_name; end

  # source://geocoder//lib/geocoder/models/active_record.rb#48
  def geocoder_module_name; end
end

# source://geocoder//lib/geocoder/models/base.rb#7
module Geocoder::Model::Base
  # source://geocoder//lib/geocoder/models/base.rb#19
  def geocoded_by; end

  # source://geocoder//lib/geocoder/models/base.rb#9
  def geocoder_options; end

  # source://geocoder//lib/geocoder/models/base.rb#23
  def reverse_geocoded_by; end

  private

  # source://geocoder//lib/geocoder/models/base.rb#29
  def geocoder_init(options); end
end

# source://geocoder//lib/geocoder/exceptions.rb#37
class Geocoder::NetworkError < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/exceptions.rb#11
class Geocoder::OverQueryLimitError < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/query.rb#2
class Geocoder::Query
  # @return [Query] a new instance of Query
  #
  # source://geocoder//lib/geocoder/query.rb#5
  def initialize(text, options = T.unsafe(nil)); end

  # Is the Query blank? (ie, should we not bother searching?)
  # A query is considered blank if its text is nil or empty string AND
  # no URL parameters are specified.
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#52
  def blank?; end

  # Return the latitude/longitude coordinates specified in the query,
  # or nil if none.
  #
  # source://geocoder//lib/geocoder/query.rb#104
  def coordinates; end

  # Does the given string look like latitude/longitude coordinates?
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#93
  def coordinates?; end

  # source://geocoder//lib/geocoder/query.rb#10
  def execute; end

  # Is the Query text a loopback or private IP address?
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#72
  def internal_ip_address?; end

  # Does the Query text look like an IP address?
  #
  # Does not check for actual validity, just the appearance of four
  # dot-delimited numbers.
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#65
  def ip_address?; end

  # source://geocoder//lib/geocoder/query.rb#115
  def language; end

  # Get a Lookup object (which communicates with the remote geocoding API)
  # appropriate to the Query text.
  #
  # source://geocoder//lib/geocoder/query.rb#34
  def lookup; end

  # Is the Query text a loopback IP address?
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#79
  def loopback_ip_address?; end

  # Returns the value of attribute options.
  #
  # source://geocoder//lib/geocoder/query.rb#3
  def options; end

  # Sets the attribute options
  #
  # @param value the value to set the attribute options to.
  #
  # source://geocoder//lib/geocoder/query.rb#3
  def options=(_arg0); end

  # Is the Query text a private IP address?
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#86
  def private_ip_address?; end

  # Should reverse geocoding be performed for this query?
  #
  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#111
  def reverse_geocode?; end

  # source://geocoder//lib/geocoder/query.rb#18
  def sanitized_text; end

  # Returns the value of attribute text.
  #
  # source://geocoder//lib/geocoder/query.rb#3
  def text; end

  # Sets the attribute text
  #
  # @param value the value to set the attribute text to.
  #
  # source://geocoder//lib/geocoder/query.rb#3
  def text=(_arg0); end

  # source://geocoder//lib/geocoder/query.rb#14
  def to_s; end

  # source://geocoder//lib/geocoder/query.rb#43
  def url; end

  private

  # @return [Boolean]
  #
  # source://geocoder//lib/geocoder/query.rb#121
  def params_given?; end
end

# source://geocoder//lib/geocoder/railtie.rb#6
class Geocoder::Railtie < ::Rails::Railtie
  class << self
    # source://geocoder//lib/geocoder/railtie.rb#20
    def insert; end
  end
end

# source://geocoder//lib/geocoder/request.rb#4
module Geocoder::Request
  # source://geocoder//lib/geocoder/request.rb#46
  def geocoder_spoofable_ip; end

  # The location() method is vulnerable to trivial IP spoofing.
  #   Don't use it in authorization/authentication code, or any
  #   other security-sensitive application.  Use safe_location
  #   instead.
  #
  # source://geocoder//lib/geocoder/request.rb#10
  def location; end

  # This safe_location() protects you from trivial IP spoofing.
  #   For requests that go through a proxy that you haven't
  #   whitelisted as trusted in your Rack config, you will get the
  #   location for the IP of the last untrusted proxy in the chain,
  #   not the original client IP.  You WILL NOT get the location
  #   corresponding to the original client IP for any request sent
  #   through a non-whitelisted proxy.
  #
  # source://geocoder//lib/geocoder/request.rb#21
  def safe_location; end

  private

  # source://geocoder//lib/geocoder/request.rb#98
  def geocoder_reject_non_ipv4_addresses(ip_addresses); end

  # use Rack's trusted_proxy?() method to filter out IPs that have
  #   been configured as trusted; includes private ranges by
  #   default.  (we don't want every lookup to return the location
  #   of our own proxy/load balancer)
  #
  # source://geocoder//lib/geocoder/request.rb#79
  def geocoder_reject_trusted_ip_addresses(ip_addresses); end

  # source://geocoder//lib/geocoder/request.rb#83
  def geocoder_remove_port_from_addresses(ip_addresses); end

  # source://geocoder//lib/geocoder/request.rb#71
  def geocoder_split_ip_addresses(ip_addresses); end
end

# There's a whole zoo of nonstandard headers added by various
#   proxy softwares to indicate original client IP.
# ANY of these can be trivially spoofed!
#   (except REMOTE_ADDR, which should by set by your server,
#    and is included at the end as a fallback.
# Order does matter: we're following the convention established in
#   ActionDispatch::RemoteIp::GetIp::calculate_ip()
#   https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/remote_ip.rb
#   where the forwarded_for headers, possibly containing lists,
#   are arbitrarily preferred over headers expected to contain a
#   single address.
#
# source://geocoder//lib/geocoder/request.rb#36
Geocoder::Request::GEOCODER_CANDIDATE_HEADERS = T.let(T.unsafe(nil), Array)

# source://geocoder//lib/geocoder/exceptions.rb#22
class Geocoder::RequestDenied < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/exceptions.rb#14
class Geocoder::ResponseParseError < ::Geocoder::Error
  # @return [ResponseParseError] a new instance of ResponseParseError
  #
  # source://geocoder//lib/geocoder/exceptions.rb#17
  def initialize(response); end

  # Returns the value of attribute response.
  #
  # source://geocoder//lib/geocoder/exceptions.rb#15
  def response; end
end

# source://geocoder//lib/geocoder/results/base.rb#2
module Geocoder::Result; end

# source://geocoder//lib/geocoder/results/base.rb#3
class Geocoder::Result::Base
  # Takes a hash of data from a parsed geocoding service response.
  #
  # @return [Base] a new instance of Base
  #
  # source://geocoder//lib/geocoder/results/base.rb#15
  def initialize(data); end

  # A string in the given format.
  #
  # This default implementation dumbly follows the United States address
  # format and will return incorrect results for most countries. Some APIs
  # return properly formatted addresses and those should be funneled
  # through this method.
  #
  # source://geocoder//lib/geocoder/results/base.rb#28
  def address(format = T.unsafe(nil)); end

  # true if result came from cache, false if from request to geocoding
  # service; nil if cache is not configured
  #
  # source://geocoder//lib/geocoder/results/base.rb#10
  def cache_hit; end

  # true if result came from cache, false if from request to geocoding
  # service; nil if cache is not configured
  #
  # source://geocoder//lib/geocoder/results/base.rb#10
  def cache_hit=(_arg0); end

  # A two-element array: [lat, lon].
  #
  # source://geocoder//lib/geocoder/results/base.rb#42
  def coordinates; end

  # source://geocoder//lib/geocoder/results/base.rb#70
  def country; end

  # source://geocoder//lib/geocoder/results/base.rb#74
  def country_code; end

  # data (hash) fetched from geocoding service
  #
  # source://geocoder//lib/geocoder/results/base.rb#6
  def data; end

  # data (hash) fetched from geocoding service
  #
  # source://geocoder//lib/geocoder/results/base.rb#6
  def data=(_arg0); end

  # source://geocoder//lib/geocoder/results/base.rb#46
  def latitude; end

  # source://geocoder//lib/geocoder/results/base.rb#50
  def longitude; end

  # source://geocoder//lib/geocoder/results/base.rb#58
  def province; end

  # source://geocoder//lib/geocoder/results/base.rb#66
  def province_code; end

  # source://geocoder//lib/geocoder/results/base.rb#54
  def state; end

  # source://geocoder//lib/geocoder/results/base.rb#62
  def state_code; end
end

# source://geocoder//lib/geocoder/results/test.rb#5
class Geocoder::Result::Test < ::Geocoder::Result::Base
  # @return [Test] a new instance of Test
  #
  # source://geocoder//lib/geocoder/results/test.rb#24
  def initialize(data); end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def address; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def city; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def coordinates; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def country; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def country_code; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def geometry; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def neighborhood; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def postal_code; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def province; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def province_code; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def route; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def state; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def state_code; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def street_address; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def street_number; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def sub_state; end

  # source://geocoder//lib/geocoder/results/test.rb#13
  def sub_state_code; end

  class << self
    # source://geocoder//lib/geocoder/results/test.rb#7
    def add_result_attribute(attr); end
  end
end

# source://geocoder//lib/geocoder/exceptions.rb#31
class Geocoder::ServiceUnavailable < ::Geocoder::Error; end

# source://geocoder//lib/geocoder/util.rb#4
module Geocoder::Util
  class << self
    # Recursive version of Hash#merge!
    #
    # Adds the contents of +h2+ to +h1+,
    # merging entries in +h1+ with duplicate keys with those from +h2+.
    #
    # Compared with Hash#merge!, this method supports nested hashes.
    # When both +h1+ and +h2+ contains an entry with the same key,
    # it merges and returns the values from both hashes.
    #
    #    h1 = {"a" => 100, "b" => 200, "c" => {"c1" => 12, "c2" => 14}}
    #    h2 = {"b" => 254, "c" => {"c1" => 16, "c3" => 94}}
    #    recursive_hash_merge(h1, h2)   #=> {"a" => 100, "b" => 254, "c" => {"c1" => 16, "c2" => 14, "c3" => 94}}
    #
    # Simply using Hash#merge! would return
    #
    #    h1.merge!(h2)    #=> {"a" => 100, "b" = >254, "c" => {"c1" => 16, "c3" => 94}}
    #
    # source://geocoder//lib/geocoder/util.rb#23
    def recursive_hash_merge(h1, h2); end
  end
end

class Rack::Request
  include ::Geocoder::Request
end