Class: Orthoses::Trace::Method

Inherits:
Object
  • Object
show all
Includes:
Targetable
Defined in:
lib/orthoses/trace/method.rb

Defined Under Namespace

Classes: Info

Instance Method Summary collapse

Methods included from Targetable

#target?

Constructor Details

#initialize(loader, patterns:, sort_union_types: true) ⇒ Method

Returns a new instance of Method.



10
11
12
13
14
15
16
17
18
# File 'lib/orthoses/trace/method.rb', line 10

def initialize(loader, patterns:, sort_union_types: true)
  @loader = loader
  @patterns = patterns
  @sort_union_types = sort_union_types

  @stack = []
  @args_return_map = Hash.new { |h, k| h[k] = [] }
  @alias_map = {}
end

Instance Method Details

#callObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/orthoses/trace/method.rb', line 20

def call
  build_trace_point.enable do
    @loader.call
  end.tap do |store|
    build_members.each do |(mod_name, member)|
      out = StringIO.new
      writer = ::RBS::Writer.new(out: out)
      writer.write_member(member)
      store[mod_name] << out.string
    end
  end
end