Class: Uprb::StaticRequireTracker::RequireVisitor

Inherits:
Prism::Visitor
  • Object
show all
Defined in:
lib/uprb/static_require_tracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequireVisitor

Returns a new instance of RequireVisitor.



168
169
170
171
# File 'lib/uprb/static_require_tracker.rb', line 168

def initialize
  super
  @requires = []
end

Instance Attribute Details

#requiresObject (readonly)

Returns the value of attribute requires.



166
167
168
# File 'lib/uprb/static_require_tracker.rb', line 166

def requires
  @requires
end

Instance Method Details

#visit_call_node(node) ⇒ Object



173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/uprb/static_require_tracker.rb', line 173

def visit_call_node(node)
  case node.name
  when :require, :require_relative
    if node.receiver.nil?
      name = extract_string_argument(node, index: 0)
      @requires << [node.name, name] if name
    end
  when :autoload
    name = extract_string_argument(node, index: 1)
    @requires << [:require, name] if name
  end
  super
end