Class: TRuby::RBSGenerator
- Inherits:
-
Object
- Object
- TRuby::RBSGenerator
- Defined in:
- lib/t_ruby/rbs_generator.rb
Instance Method Summary collapse
- #generate(functions, type_aliases) ⇒ Object
- #generate_function_signature(func) ⇒ Object
- #generate_type_alias(type_alias) ⇒ Object
- #generate_type_aliases(aliases) ⇒ Object
-
#initialize ⇒ RBSGenerator
constructor
A new instance of RBSGenerator.
Constructor Details
#initialize ⇒ RBSGenerator
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 |