Class: Lagoon::Parser::ApplicationClassFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/lagoon/parser/application_class_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(directory:, include_all: false) ⇒ ApplicationClassFilter

Returns a new instance of ApplicationClassFilter.



10
11
12
13
# File 'lib/lagoon/parser/application_class_filter.rb', line 10

def initialize(directory:, include_all: false)
  @directory = directory
  @include_all = include_all
end

Instance Method Details

#include?(klass) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
# File 'lib/lagoon/parser/application_class_filter.rb', line 15

def include?(klass)
  return false unless klass.name
  return true if @include_all
  return true unless defined?(Rails) && Rails.respond_to?(:root)

  application_directory = File.expand_path(File.join(Rails.root.to_s, 'app', @directory))
  source_locations(klass).any? do |location|
    File.expand_path(location).start_with?("#{application_directory}#{File::SEPARATOR}")
  end
end