Class: GemXray::CodeScanner::Snapshot

Inherits:
Object
  • Object
show all
Defined in:
lib/gemxray/code_scanner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(requires:, constants:, dependency_names:, files:) ⇒ Snapshot

Returns a new instance of Snapshot.



23
24
25
26
27
28
# File 'lib/gemxray/code_scanner.rb', line 23

def initialize(requires:, constants:, dependency_names:, files:)
  @requires = requires
  @constants = constants
  @dependency_names = dependency_names
  @files = files
end

Instance Attribute Details

#constantsObject (readonly)

Returns the value of attribute constants.



21
22
23
# File 'lib/gemxray/code_scanner.rb', line 21

def constants
  @constants
end

#dependency_namesObject (readonly)

Returns the value of attribute dependency_names.



21
22
23
# File 'lib/gemxray/code_scanner.rb', line 21

def dependency_names
  @dependency_names
end

#filesObject (readonly)

Returns the value of attribute files.



21
22
23
# File 'lib/gemxray/code_scanner.rb', line 21

def files
  @files
end

#requiresObject (readonly)

Returns the value of attribute requires.



21
22
23
# File 'lib/gemxray/code_scanner.rb', line 21

def requires
  @requires
end

Instance Method Details

#constant_used?(candidates) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/gemxray/code_scanner.rb', line 36

def constant_used?(candidates)
  !(constants & candidates.to_set).empty?
end

#dependency_used?(gem_name) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/gemxray/code_scanner.rb', line 40

def dependency_used?(gem_name)
  dependency_names.include?(gem_name)
end

#require_used?(candidates) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
# File 'lib/gemxray/code_scanner.rb', line 30

def require_used?(candidates)
  Array(candidates).any? do |candidate|
    requires.any? { |reference| reference == candidate || reference.start_with?("#{candidate}/") }
  end
end