class Packwerk::PrivacyChecker

Public Instance Methods

invalid_reference?(reference) click to toggle source
# File lib/packwerk/privacy_checker.rb, line 19
def invalid_reference?(reference)
  return false if reference.constant.public?

  privacy_option = reference.constant.package.enforce_privacy
  return false if enforcement_disabled?(privacy_option)

  return false unless privacy_option == true ||
    explicitly_private_constant?(reference.constant, explicitly_private_constants: privacy_option)

  true
end
violation_type() click to toggle source
# File lib/packwerk/privacy_checker.rb, line 10
def violation_type
  ViolationType::Privacy
end

Private Instance Methods

enforcement_disabled?(privacy_option) click to toggle source
# File lib/packwerk/privacy_checker.rb, line 49
def enforcement_disabled?(privacy_option)
  [false, nil].include?(privacy_option)
end
explicitly_private_constant?(constant, explicitly_private_constants:) click to toggle source
# File lib/packwerk/privacy_checker.rb, line 39
def explicitly_private_constant?(constant, explicitly_private_constants:)
  explicitly_private_constants.include?(constant.name) ||
    # nested constants
    explicitly_private_constants.any? { |epc| constant.name.start_with?(epc + "::") }
end