Class: ShapeOf::Optional
Overview
Optional denotes that the usual type is a shape, but is optional (meaning if it is nil or the key is not present in the Hash, it’s still true)
Class Method Summary collapse
Methods inherited from Shape
Constructor Details
This class inherits a constructor from ShapeOf::Shape
Class Method Details
.[](shape) ⇒ Object
441 442 443 444 445 446 447 448 449 450 451 |
# File 'lib/shape_of.rb', line 441 def self.[](shape) raise TypeError, "Shape cannot be nil" if shape.nil? || shape == NilClass Union[shape, NilClass].tap do |this| new_class_name = this.name.sub('Union', 'Optional').sub(/(?<=\[).*(?=\])/, shape.inspect) this.instance_variable_set(:@class_name, new_class_name) def this.required? false end end end |