Class: RBI::Type::Shape
Overview
A shape type like ‘String, age: Integer`.
Instance Attribute Summary collapse
-
#types ⇒ Object
readonly
: Hash[(String | Symbol), Type].
Instance Method Summary collapse
-
#==(other) ⇒ Object
: (BasicObject other) -> bool.
-
#initialize(types) ⇒ Shape
constructor
: (Hash[(String | Symbol), Type] types) -> void.
-
#to_rbi ⇒ Object
: -> String.
Methods inherited from RBI::Type
all, any, anything, attached_class, boolean, class_of, #eql?, generic, #hash, #nilable, nilable, #nilable?, #non_nilable, noreturn, parse_node, parse_string, proc, #rbs_string, self_type, shape, simple, t_class, #to_s, tuple, type_parameter, untyped, void
Constructor Details
#initialize(types) ⇒ Shape
: (Hash[(String | Symbol), Type] types) -> void
360 361 362 363 |
# File 'lib/rbi/type.rb', line 360 def initialize(types) super() @types = types end |
Instance Attribute Details
#types ⇒ Object (readonly)
: Hash[(String | Symbol), Type]
357 358 359 |
# File 'lib/rbi/type.rb', line 357 def types @types end |
Instance Method Details
#==(other) ⇒ Object
: (BasicObject other) -> bool
367 368 369 |
# File 'lib/rbi/type.rb', line 367 def ==(other) Shape === other && @types.sort_by { |t| t.first.to_s } == other.types.sort_by { |t| t.first.to_s } end |
#to_rbi ⇒ Object
: -> String
373 374 375 376 377 378 379 |
# File 'lib/rbi/type.rb', line 373 def to_rbi if @types.empty? "{}" else "{ " + @types.map { |name, type| "#{name}: #{type.to_rbi}" }.join(", ") + " }" end end |