How to use RBS::Inline syntax in Ruby
mainRBS::Inline allows you to embed RBS type declarations directly into Ruby code using comments. To enable the feature in a file, you must include the magic comment # rbs_inline: enabled at the top.
Supported Annotation Styles
Attribute/Method shorthand (
#:syntax): The shortest way to declare types for attributes or methods.attr_reader :name #: String def hash #: () -> StringExplicit
@rbsparameter and return types: Useful for complex method signatures.# @rbs name: String # @rbs addresses: Array[String] # @rbs return: void def initialize(name:, addresses:)Method signature after
@rbs:# @rbs () -> String def to_sBlock annotations:
# @rbs &block: (String) -> void def each_address(&block) #: void
Full Example
# rbs_inline: enabled
class Person
attr_reader :name #: String
attr_reader :addresses #: Array[String]
# @rbs name: String
# @rbs addresses: Array[String]
# @rbs return: void
def initialize(name:, addresses:)
@name = name
@addresses = addresses
end
# @rbs () -> String
def to_s
"Person(name = #{name}, addresses = #{addresses.join(', ')})"
end
#: () -> String
def hash
[name, addresses].hash
end
# @rbs &block: (String) -> void
def each_address(&block) #: void
addresses.each(&block)
end
end# rbs_inline: enabled
class Person
attr_reader :name #: String
# @rbs name: String
# @rbs addresses: Array[String]
# @rbs return: void
def initialize(name:, addresses:)
@name = name
@addresses = addresses
end
end