]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/feature/faraday/middleware.rb
c45d51ade71890bb891b2b43079dd24a613edf6b
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / faraday / middleware.rb
1 module Faraday
2   class Middleware
3     extend MiddlewareRegistry
4
5     class << self
6       attr_accessor :load_error
7       private :load_error=
8     end
9
10     self.load_error = nil
11
12     # Executes a block which should try to require and reference dependent libraries
13     def self.dependency(lib = nil)
14       lib ? require(lib) : yield
15     rescue LoadError, NameError => error
16       self.load_error = error
17     end
18
19     def self.new(*)
20       raise "missing dependency for #{self}: #{load_error.message}" unless loaded?
21       super
22     end
23
24     def self.loaded?
25       load_error.nil?
26     end
27
28     def self.inherited(subclass)
29       super
30       subclass.send(:load_error=, self.load_error)
31     end
32
33     def initialize(app = nil)
34       @app = app
35     end
36   end
37 end