class ShapeOf::Optional
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)
Public Class Methods
[](shape)
click to toggle source
# File lib/shape_of.rb, line 287 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
required?()
click to toggle source
# File lib/shape_of.rb, line 299 def self.required? false end