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
291 292 293 294 295 296 297 298 299 300 301 |
# File 'lib/shape_of.rb', line 291 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 |