end
end
+ ##
+ # raised when someone tries to redact a current version of
+ # an element - only historical versions can be redacted.
+ class APICannotRedactError < APIError
+ def status
+ :bad_request
+ end
+
+ def to_s
+ "Cannot redact current version of element, only historical versions may be redacted."
+ end
+ end
+
+ # Raised when the note provided is already closed
+ class APINoteAlreadyClosedError < APIError
+ def initialize(note)
+ @note = note
+ end
+
+ attr_reader :note
+
+ def status
+ :conflict
+ end
+
+ def to_s
+ "The note #{@note.id} was closed at #{@note.closed_at}"
+ end
+ end
+
+ # raised when a two preferences have a duplicate key string.
+ class APIDuplicatePreferenceError < APIError
+ def initialize(key)
+ @key = key
+ end
+
+ attr_reader :key
+
+ def status
+ :bad_request
+ end
+
+ def to_s
+ "Duplicate preferences with key #{@key}"
+ end
+ end
+
# Helper methods for going to/from mercator and lat/lng.
class Mercator
include Math
root = XML::Node.new 'osm'
root['version'] = API_VERSION.to_s
root['generator'] = GENERATOR
+ root['copyright'] = COPYRIGHT_OWNER
+ root['attribution'] = ATTRIBUTION_URL
+ root['license'] = LICENSE_URL
doc.root = root
return doc
end
country = "GB" if country == "UK"
end
end
-
+
return country.upcase
end