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
51 52 53 54 55 56 57 |
# File 'lib/contracts/formatters.rb', line 51 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
79 80 81 |
# File 'lib/contracts/formatters.rb', line 79 def delim(value) @full ? "(#{value})" : "#{value}" end |
#initialize(value, full) ⇒ Object
61 62 63 |
# File 'lib/contracts/formatters.rb', line 61 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.
70 71 72 73 74 75 76 77 |
# File 'lib/contracts/formatters.rb', line 70 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.
84 85 86 |
# File 'lib/contracts/formatters.rb', line 84 def to_s inspect end |