Class: Faraday::Adapter::EMHttp::Manager
- Defined in:
 - lib/puppet/feature/faraday/adapter/em_http.rb
 
Overview
The parallel manager is designed to start an EventMachine loop and block until all registered requests have been completed.
Instance Method Summary collapse
- #add ⇒ Object
 - #check_finished ⇒ Object
 - 
  
    
      #initialize  ⇒ Manager 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Manager.
 - #perform_request ⇒ Object
 - #reset ⇒ Object
 - #run ⇒ Object
 - #running? ⇒ Boolean
 
Constructor Details
#initialize ⇒ Manager
Returns a new instance of Manager.
      176 177 178  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 176 def initialize reset end  | 
  
Instance Method Details
#add ⇒ Object
      190 191 192 193 194 195 196 197  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 190 def add if running? perform_request { yield } else @registered_procs << Proc.new end @num_registered += 1 end  | 
  
#check_finished ⇒ Object
      221 222 223 224 225  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 221 def check_finished if @num_succeeded + @errors.size == @num_registered EventMachine.stop end end  | 
  
#perform_request ⇒ Object
      215 216 217 218 219  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 215 def perform_request client = yield client.callback { @num_succeeded += 1; check_finished } client.errback { @errors << client.error; check_finished } end  | 
  
#reset ⇒ Object
      180 181 182 183 184 185 186  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 180 def reset @registered_procs = [] @num_registered = 0 @num_succeeded = 0 @errors = [] @running = false end  | 
  
#run ⇒ Object
      199 200 201 202 203 204 205 206 207 208 209 210 211 212 213  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 199 def run if @num_registered > 0 @running = true EventMachine.run do @registered_procs.each do |proc| perform_request(&proc) end end if @errors.size > 0 raise Faraday::Error::ClientError, @errors.first || "connection failed" end end ensure reset end  | 
  
#running? ⇒ Boolean
      188  | 
    
      # File 'lib/puppet/feature/faraday/adapter/em_http.rb', line 188 def running?() @running end  |