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.
Instance Method Summary collapse
- #delim(value) ⇒ Object
- #initialize(value, full) ⇒ Object
-
#inspect ⇒ Object
Inspect different types of contract values.
-
#to_s ⇒ Object
Eliminates eronious 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
49 50 51 52 53 54 55 |
# File 'lib/contracts/formatters.rb', line 49 def self.create(value, full: true) if value.instance_of?(Class) ClassInspectWrapper else ObjectInspectWrapper end.new(value, full) end |
Instance Method Details
#delim(value) ⇒ Object
77 78 79 |
# File 'lib/contracts/formatters.rb', line 77 def delim(value) @full ? "(#{value})" : "#{value}" end |
#initialize(value, full) ⇒ Object
59 60 61 |
# File 'lib/contracts/formatters.rb', line 59 def initialize(value, full) @value, @full = value, 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.
68 69 70 71 72 73 74 75 |
# File 'lib/contracts/formatters.rb', line 68 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 eronious quotes in output that plain inspect includes.
82 83 84 |
# File 'lib/contracts/formatters.rb', line 82 def to_s inspect end |