X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/eea25bd1546a42b783ffffb4d0c794d59e643597..12b4d11d44055399085bf1d10136ffbe4255bcbe:/lib/osm.rb diff --git a/lib/osm.rb b/lib/osm.rb index 4241ad700..c7f8bef2f 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -353,6 +353,17 @@ module OSM end end + # Raised when a rate limit is exceeded + class APIRateLimitExceeded < APIError + def initialize + super "Rate limit exceeded" + end + + def status + :too_many_requests + end + end + # Helper methods for going to/from mercator and lat/lng. class Mercator include Math @@ -491,15 +502,8 @@ module OSM end # Construct a random token of a given length - def self.make_token(length = 30) - chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - token = "" - - length.times do - token += chars[(rand * chars.length).to_i].chr - end - - token + def self.make_token(length = 24) + SecureRandom.urlsafe_base64(length) end # Return an SQL fragment to select a given area of the globe