Class: Toys::Middleware::Spec
- Inherits:
 - 
      Object
      
        
- Object
 - Toys::Middleware::Spec
 
 
- Defined in:
 - lib/toys/middleware.rb
 
Overview
A middleware specification, including the middleware class and the arguments to pass to the constructor.
Use spec to create a middleware spec.
Instance Attribute Summary collapse
- #args ⇒ Array? readonly
 - #block ⇒ Proc? readonly
 - #kwargs ⇒ Hash? readonly
 - #name ⇒ String, ... readonly
 - #object ⇒ Toys::Middleware? readonly
 
Instance Method Summary collapse
- 
  
    
      #==(other)  ⇒ Boolean 
    
    
      (also: #eql?)
    
  
  
  
  
  
  
  
  
  
    
Equality check.
 - 
  
    
      #build(lookup)  ⇒ Toys::Middleware 
    
    
  
  
  
  
  
  
  
  
  
    
Builds a middleware for this spec, given a ModuleLookup for middleware.
 - 
  
    
      #hash  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    
Return the hash code.
 
Instance Attribute Details
#args ⇒ Array? (readonly)
      226 227 228  | 
    
      # File 'lib/toys/middleware.rb', line 226 def args @args end  | 
  
#block ⇒ Proc? (readonly)
      241 242 243  | 
    
      # File 'lib/toys/middleware.rb', line 241 def block @block end  | 
  
#kwargs ⇒ Hash? (readonly)
      233 234 235  | 
    
      # File 'lib/toys/middleware.rb', line 233 def kwargs @kwargs end  | 
  
#name ⇒ String, ... (readonly)
      218 219 220  | 
    
      # File 'lib/toys/middleware.rb', line 218 def name @name end  | 
  
#object ⇒ Toys::Middleware? (readonly)
      211 212 213  | 
    
      # File 'lib/toys/middleware.rb', line 211 def object @object end  | 
  
Instance Method Details
#==(other) ⇒ Boolean Also known as: eql?
Equality check
      249 250 251 252 253 254 255 256  | 
    
      # File 'lib/toys/middleware.rb', line 249 def ==(other) other.is_a?(Spec) && object.eql?(other.object) && name.eql?(other.name) && args.eql?(other.args) && kwargs.eql?(other.kwargs) && block.eql?(other.block) end  | 
  
#build(lookup) ⇒ Toys::Middleware
Builds a middleware for this spec, given a ModuleLookup for middleware.
If this spec wraps an existing middleware object, returns that object. Otherwise, constructs a middleware object from the spec.
      196 197 198 199 200 201 202 203 204 205  | 
    
      # File 'lib/toys/middleware.rb', line 196 def build(lookup) return @object unless @object.nil? if @name.is_a?(::String) || @name.is_a?(::Symbol) klass = lookup&.lookup(@name) raise ::NameError, "Unknown middleware name #{@name.inspect}" if klass.nil? else klass = @name end Compat.instantiate(klass, @args, @kwargs, @block) end  | 
  
#hash ⇒ Integer
Return the hash code
      264 265 266  | 
    
      # File 'lib/toys/middleware.rb', line 264 def hash [object, name, args, kwargs, block].hash end  |