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
48 49 50 51 52 53 54 |
# File 'lib/contracts/formatters.rb', line 48 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
76 77 78 |
# File 'lib/contracts/formatters.rb', line 76 def delim(value) @full ? "(#{value})" : "#{value}" end |
#initialize(value, full) ⇒ Object
58 59 60 |
# File 'lib/contracts/formatters.rb', line 58 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.
67 68 69 70 71 72 73 74 |
# File 'lib/contracts/formatters.rb', line 67 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.
81 82 83 |
# File 'lib/contracts/formatters.rb', line 81 def to_s inspect end |