class Sorbet::Private::GemGeneratorTracepoint::TracepointSerializer
def generate_method(method, instance, spaces = 2)
def generate_method(method, instance, spaces = 2) # method.parameters is an array of: # a [:req, :a] # b = 1 [:opt, :b] # c: [:keyreq, :c] # d: 1 [:key, :d] # *e [:rest, :e] # **f [:keyrest, :f] # &g [:block, :g] prefix = ' ' * spaces parameters = method.parameters.map.with_index do |(type, name), index| name = "arg#{index}" if name.nil? || name.empty? case type when :req name when :opt "#{name} = nil" when :keyreq "#{name}:" when :key "#{name}: nil" when :rest case name when :* then "*" else "*#{name}" end when :keyrest case name when :** then "**" else "**#{name}" end when :block case name when :& then "&" else "&#{name}" end else raise "Unknown parameter type: #{type}" end end parameters = parameters.join(', ') parameters = "(#{parameters})" unless parameters.empty? "#{prefix}def #{instance ? '' : 'self.'}#{method.name}#{parameters}; end" end