Module: Contracts::Formatters::InspectWrapper
- Included in:
 - ClassInspectWrapper, ObjectInspectWrapper
 
- Defined in:
 - lib/contracts/formatters.rb
 
Overview
A wrapper class to produce correct inspect behaviour for different contract values - constants, Class contracts, instance contracts etc.
Class Method Summary collapse
- 
  
    
      .create(value, full = true)  ⇒ ClassInspectWrapper, ObjectInspectWrapper 
    
    
  
  
  
  
  
  
  
  
  
    
InspectWrapper is a factory, will never be an instance.
 - .inspector_klass(value) ⇒ Object
 
Instance Method Summary collapse
- #delim(value) ⇒ Object
 - #initialize(value, full) ⇒ Object
 - 
  
    
      #inspect  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Inspect different types of contract values.
 - 
  
    
      #to_s  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Eliminates erroneous quotes in output that plain inspect includes.
 
Class Method Details
.create(value, full = true) ⇒ ClassInspectWrapper, ObjectInspectWrapper
InspectWrapper is a factory, will never be an instance
      40 41 42  | 
    
      # File 'lib/contracts/formatters.rb', line 40 def self.create(value, full = true) inspector_klass(value).new(value, full) end  | 
  
.inspector_klass(value) ⇒ Object
      44 45 46 47  | 
    
      # File 'lib/contracts/formatters.rb', line 44 def self.inspector_klass(value) return ClassInspectWrapper if value.class == Class ObjectInspectWrapper end  | 
  
Instance Method Details
#delim(value) ⇒ Object
      69 70 71  | 
    
      # File 'lib/contracts/formatters.rb', line 69 def delim(value) @full ? "(#{value})" : value.to_s end  | 
  
#initialize(value, full) ⇒ Object
      51 52 53 54  | 
    
      # File 'lib/contracts/formatters.rb', line 51 def initialize(value, full) @value = value @full = full end  | 
  
#inspect ⇒ Object
Inspect different types of contract values. Contracts module prefix will be removed from classes. Custom to_s messages will be wrapped in round brackets to differentiate from standard Strings. Primitive values e.g. 42, true, nil will be left alone.
      61 62 63 64 65 66 67  | 
    
      # File 'lib/contracts/formatters.rb', line 61 def inspect return "" unless full? return @value.inspect if empty_val? return @value.to_s if plain? return delim(@value.to_s) if useful_to_s? useful_inspect end  | 
  
#to_s ⇒ Object
Eliminates erroneous quotes in output that plain inspect includes.
      74 75 76  | 
    
      # File 'lib/contracts/formatters.rb', line 74 def to_s inspect end  |