Typeprof Ruby Interpreter in Ruby 3.0+
TypeProf is a Ruby interpreter that abstractly executes Ruby programs at the type level. It executes a given program and observes what types are passed to and returned from methods and what types are assigned to instance variables. All values are, in principle, abstracted to the class to which the object belongs, not the object itself.
Example: 1
$ typeprof user.rb
# TypeProf 0.12.0
# Classes
class User
attr_accessor skip_add_role: untyped
def self.from_omniauth: (?Hash[bot, bot] auth) -> User
private
def assign_default_role: -> nil
end
Example 2:
$ typeprof skill.rb
# TypeProf 0.12.0
# Classes
class Skill
private
def acceptable_image: -> nil
end
Example 3:
$ typeprof ability.rb
# TypeProf 0.12.0
# Classes
class Ability
attr_accessor user: untyped
def initialize: (untyped user) -> untyped
private
def alias_actions: -> untyped
def register_extension_abilities: -> untyped
end