]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/aviator/lib/puppet/feature/faraday/error.rb
add aimonb/aviator to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / aviator / lib / puppet / feature / faraday / error.rb
diff --git a/3rdparty/modules/aviator/lib/puppet/feature/faraday/error.rb b/3rdparty/modules/aviator/lib/puppet/feature/faraday/error.rb
new file mode 100644 (file)
index 0000000..1771230
--- /dev/null
@@ -0,0 +1,53 @@
+module Faraday
+  class Error < StandardError; end
+  class MissingDependency < Error; end
+
+  class ClientError < Error
+    attr_reader :response
+
+    def initialize(ex, response = nil)
+      @wrapped_exception = nil
+      @response = response
+
+      if ex.respond_to?(:backtrace)
+        super(ex.message)
+        @wrapped_exception = ex
+      elsif ex.respond_to?(:each_key)
+        super("the server responded with status #{ex[:status]}")
+        @response = ex
+      else
+        super(ex.to_s)
+      end
+    end
+
+    def backtrace
+      if @wrapped_exception
+        @wrapped_exception.backtrace
+      else
+        super
+      end
+    end
+
+    def inspect
+      %(#<#{self.class}>)
+    end
+  end
+
+  class ConnectionFailed < ClientError;   end
+  class ResourceNotFound < ClientError;   end
+  class ParsingError     < ClientError;   end
+
+  class TimeoutError < ClientError
+    def initialize(ex = nil)
+      super(ex || "timeout")
+    end
+  end
+
+  class SSLError < ClientError
+  end
+
+  [:MissingDependency, :ClientError, :ConnectionFailed, :ResourceNotFound,
+   :ParsingError, :TimeoutError, :SSLError].each do |const|
+    Error.const_set(const, Faraday.const_get(const))
+  end
+end