Class: TRuby::RBSGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/t_ruby/rbs_generator.rb

Instance Method Summary collapse

Constructor Details

#initializeRBSGenerator

Returns a new instance of RBSGenerator.



5
6
7
# File 'lib/t_ruby/rbs_generator.rb', line 5

def initialize
  # RBS generation configuration
end

Instance Method Details

#generate(functions, type_aliases) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/t_ruby/rbs_generator.rb', line 9

def generate(functions, type_aliases)
  lines = []

  # Add type aliases
  type_aliases.each do |type_alias|
    lines << generate_type_alias(type_alias)
  end

  lines << "" if type_aliases.any? && functions.any?

  # Add function signatures
  functions.each do |func|
    lines << generate_function_signature(func)
  end

  lines.compact.join("\n")
end

#generate_function_signature(func) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/t_ruby/rbs_generator.rb', line 38

def generate_function_signature(func)
  name = func[:name]
  params = func[:params] || []
  return_type = func[:return_type]

  param_str = format_parameters(params)
  return_str = format_return_type(return_type)

  "def #{name}: (#{param_str}) -> #{return_str}"
end

#generate_type_alias(type_alias) ⇒ Object



31
32
33
34
35
36
# File 'lib/t_ruby/rbs_generator.rb', line 31

def generate_type_alias(type_alias)
  name = type_alias[:name]
  definition = type_alias[:definition]

  "type #{name} = #{definition}"
end

#generate_type_aliases(aliases) ⇒ Object



27
28
29
# File 'lib/t_ruby/rbs_generator.rb', line 27

def generate_type_aliases(aliases)
  aliases.map { |alias_def| generate_type_alias(alias_def) }.join("\n")
end