end
end
+ # Raised when the note provided is already open
+ class APINoteAlreadyOpenError < APIError
+ def initialize(note)
+ @note = note
+ end
+
+ attr_reader :note
+
+ def status
+ :conflict
+ end
+
+ def to_s
+ "The note #{@note.id} is already open"
+ end
+ end
+
# raised when a two preferences have a duplicate key string.
class APIDuplicatePreferenceError < APIError
def initialize(key)
return nil
end
+ # Parse a float, raising a specified exception on failure
+ def self.parse_float(str, klass, *args)
+ Float(str)
+ rescue
+ raise klass.new(*args)
+ end
+
# Construct a random token of a given length
def self.make_token(length = 30)
chars = 'abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'