Skip to content

Commit c5bc226

Browse files
author
Alex Evanczuk
committed
Mark private API as constant
1 parent 7e8e7a5 commit c5bc226

51 files changed

Lines changed: 325 additions & 255 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/packwerk.rb

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,44 +13,58 @@
1313
module Packwerk
1414
extend ActiveSupport::Autoload
1515

16+
# Public APIs
17+
autoload :Checker
18+
autoload :Cli
19+
autoload :Offense
20+
autoload :OffensesFormatter
21+
autoload :OutputStyle
22+
autoload :Package
23+
autoload :PackageSet
24+
autoload :PackageTodo
25+
autoload :Parsers
26+
autoload :Reference
27+
autoload :ReferenceOffense
28+
autoload :Validator
29+
autoload :Version
30+
31+
# Private APIs
32+
# Please submit an issue if you have a use-case for these
1633
autoload :ApplicationLoadPaths
1734
autoload :ApplicationValidator
1835
autoload :AssociationInspector
19-
autoload :OffenseCollection
2036
autoload :Cache
21-
autoload :Checker
22-
autoload :Cli
2337
autoload :Configuration
2438
autoload :ConstantDiscovery
2539
autoload :ConstantNameInspector
2640
autoload :ConstNodeInspector
27-
autoload :PackageTodo
2841
autoload :ExtensionLoader
2942
autoload :FileProcessor
3043
autoload :FilesForProcessing
3144
autoload :Graph
32-
autoload :Loader
3345
autoload :Node
3446
autoload :NodeHelpers
3547
autoload :NodeProcessor
3648
autoload :NodeProcessorFactory
3749
autoload :NodeVisitor
38-
autoload :Offense
39-
autoload :OffensesFormatter
40-
autoload :OutputStyle
41-
autoload :Package
42-
autoload :PackageSet
50+
autoload :OffenseCollection
4351
autoload :ParsedConstantDefinitions
44-
autoload :Parsers
4552
autoload :ParseRun
46-
autoload :UnresolvedReference
47-
autoload :Reference
4853
autoload :ReferenceExtractor
49-
autoload :ReferenceOffense
50-
autoload :Result
5154
autoload :RunContext
52-
autoload :Validator
53-
autoload :Version
55+
autoload :UnresolvedReference
56+
57+
module Validator
58+
extend ActiveSupport::Autoload
59+
60+
autoload :Result
61+
end
62+
63+
class Cli
64+
extend ActiveSupport::Autoload
65+
66+
autoload :Result
67+
end
5468

5569
module OutputStyles
5670
extend ActiveSupport::Autoload
@@ -69,13 +83,17 @@ module Formatters
6983
autoload :ProgressFormatter
7084
end
7185

86+
private_constant :Formatters
87+
7288
module Generators
7389
extend ActiveSupport::Autoload
7490

7591
autoload :ConfigurationFile
7692
autoload :RootPackage
7793
end
7894

95+
private_constant :Generators
96+
7997
module ReferenceChecking
8098
extend ActiveSupport::Autoload
8199

@@ -89,17 +107,18 @@ module Checkers
89107
end
90108
end
91109

110+
private_constant :ReferenceChecking
111+
92112
class ApplicationValidator
93113
extend ActiveSupport::Autoload
94114

95-
autoload :Result
96115
autoload :Helpers
97116
end
98117
end
99118

100-
# Required to register the default OffensesFormatter
119+
# Required to register the DefaultOffensesFormatter
101120
# We put this at the *end* of the file to specify all autoloads first
102-
require "packwerk/formatters/offenses_formatter"
121+
require "packwerk/formatters/default_offenses_formatter"
103122

104123
# Required to register the default DependencyChecker
105124
require "packwerk/reference_checking/checkers/dependency_checker"

lib/packwerk/application_load_paths.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,6 @@ def assert_load_paths_present(paths)
7070
end
7171
end
7272
end
73+
74+
private_constant :ApplicationLoadPaths
7375
end

lib/packwerk/application_validator.rb

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ class ApplicationValidator
1212
include Validator
1313
extend T::Sig
1414

15-
sig { params(package_set: PackageSet, configuration: Configuration).returns(ApplicationValidator::Result) }
15+
sig { params(package_set: PackageSet, configuration: Configuration).returns(Validator::Result) }
1616
def check_all(package_set, configuration)
1717
results = Validator.all.flat_map { |validator| validator.call(package_set, configuration) }
1818
merge_results(results)
1919
end
2020

21-
sig { override.params(package_set: PackageSet, configuration: Configuration).returns(ApplicationValidator::Result) }
21+
sig { override.params(package_set: PackageSet, configuration: Configuration).returns(Validator::Result) }
2222
def call(package_set, configuration)
2323
results = [
2424
check_package_manifest_syntax(configuration),
@@ -37,7 +37,7 @@ def permitted_keys
3737
]
3838
end
3939

40-
sig { params(configuration: Configuration).returns(Result) }
40+
sig { params(configuration: Configuration).returns(Validator::Result) }
4141
def check_package_manifest_syntax(configuration)
4242
errors = []
4343

@@ -54,18 +54,18 @@ def check_package_manifest_syntax(configuration)
5454
end
5555

5656
if errors.empty?
57-
Result.new(ok: true)
57+
Validator::Result.new(ok: true)
5858
else
5959
merge_results(
60-
errors.map { |error| Result.new(ok: false, error_value: error) },
60+
errors.map { |error| Validator::Result.new(ok: false, error_value: error) },
6161
separator: "\n",
6262
before_errors: "Malformed syntax in the following manifests:\n\n",
6363
after_errors: "\n",
6464
)
6565
end
6666
end
6767

68-
sig { params(configuration: Configuration).returns(Result) }
68+
sig { params(configuration: Configuration).returns(Validator::Result) }
6969
def check_application_structure(configuration)
7070
resolver = ConstantResolver.new(
7171
root_path: configuration.root_path.to_s,
@@ -74,23 +74,23 @@ def check_application_structure(configuration)
7474

7575
begin
7676
resolver.file_map
77-
Result.new(ok: true)
77+
Validator::Result.new(ok: true)
7878
rescue => e
79-
Result.new(ok: false, error_value: e.message)
79+
Validator::Result.new(ok: false, error_value: e.message)
8080
end
8181
end
8282

83-
sig { params(configuration: Configuration).returns(Result) }
83+
sig { params(configuration: Configuration).returns(Validator::Result) }
8484
def check_package_manifest_paths(configuration)
8585
all_package_manifests = package_manifests(configuration, "**/")
8686
package_paths_package_manifests = package_manifests(configuration, package_glob(configuration))
8787

8888
difference = all_package_manifests - package_paths_package_manifests
8989

9090
if difference.empty?
91-
Result.new(ok: true)
91+
Validator::Result.new(ok: true)
9292
else
93-
Result.new(
93+
Validator::Result.new(
9494
ok: false,
9595
error_value: <<~EOS
9696
Expected package paths for all package.ymls to be specified, but paths were missing for the following manifests:
@@ -101,15 +101,15 @@ def check_package_manifest_paths(configuration)
101101
end
102102
end
103103

104-
sig { params(configuration: Configuration).returns(Result) }
104+
sig { params(configuration: Configuration).returns(Validator::Result) }
105105
def check_root_package_exists(configuration)
106106
root_package_path = File.join(configuration.root_path, "package.yml")
107107
all_packages_manifests = package_manifests(configuration, package_glob(configuration))
108108

109109
if all_packages_manifests.include?(root_package_path)
110-
Result.new(ok: true)
110+
Validator::Result.new(ok: true)
111111
else
112-
Result.new(
112+
Validator::Result.new(
113113
ok: false,
114114
error_value: <<~EOS
115115
A root package does not exist. Create an empty `package.yml` at the root directory.
@@ -130,4 +130,6 @@ def relative_paths(configuration, paths)
130130
paths.map { |path| relative_path(configuration, path) }
131131
end
132132
end
133+
134+
private_constant :ApplicationValidator
133135
end

lib/packwerk/association_inspector.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,6 @@ def association_name(arguments)
7070
NodeHelpers.literal_value(association_name_node)
7171
end
7272
end
73+
74+
private_constant :AssociationInspector
7375
end

lib/packwerk/cache.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,9 @@ def out(out)
169169
puts(out)
170170
end
171171
end
172-
end
172+
end
173173
end
174174

175+
private_constant :Cache
175176
private_constant :Debug
176177
end

lib/packwerk/cli.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class Cli
1414
out: T.any(StringIO, IO),
1515
err_out: T.any(StringIO, IO),
1616
environment: String,
17-
style: Packwerk::OutputStyle,
18-
offenses_formatter: T.nilable(Packwerk::OffensesFormatter)
17+
style: OutputStyle,
18+
offenses_formatter: T.nilable(OffensesFormatter)
1919
).void
2020
end
2121
def initialize(
@@ -77,12 +77,12 @@ def init
7777

7878
sig { returns(T::Boolean) }
7979
def generate_configs
80-
configuration_file = Packwerk::Generators::ConfigurationFile.generate(
80+
configuration_file = Generators::ConfigurationFile.generate(
8181
root: @configuration.root_path,
8282
out: @out
8383
)
8484

85-
root_package = Packwerk::Generators::RootPackage.generate(root: @configuration.root_path, out: @out)
85+
root_package = Generators::RootPackage.generate(root: @configuration.root_path, out: @out)
8686

8787
success = configuration_file && root_package
8888

@@ -159,7 +159,7 @@ def validate(_paths)
159159

160160
sig { returns(ApplicationValidator) }
161161
def validator
162-
Packwerk::ApplicationValidator.new
162+
ApplicationValidator.new
163163
end
164164

165165
sig { returns(PackageSet) }
@@ -170,7 +170,7 @@ def package_set
170170
)
171171
end
172172

173-
sig { params(result: ApplicationValidator::Result).void }
173+
sig { params(result: Validator::Result).void }
174174
def list_validation_errors(result)
175175
@out.puts
176176
if result.ok?

lib/packwerk/cli/result.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# typed: strict
2+
# frozen_string_literal: true
3+
4+
module Packwerk
5+
class Cli
6+
class Result < T::Struct
7+
const :message, String
8+
const :status, T::Boolean
9+
end
10+
end
11+
end

lib/packwerk/configuration.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def initialize(configs = {}, config_path: nil)
5151
@cache_directory = Pathname.new(configs["cache_directory"] || "tmp/cache/packwerk")
5252
@config_path = config_path
5353

54-
@offenses_formatter_identifier = configs["offenses_formatter"] || Formatters::OffensesFormatter::IDENTIFIER
54+
@offenses_formatter_identifier = configs["offenses_formatter"] || Formatters::DefaultOffensesFormatter::IDENTIFIER
5555

5656
if configs.key?("require")
5757
configs["require"].each do |require_directive|
@@ -77,4 +77,6 @@ def cache_enabled?
7777
@cache_enabled
7878
end
7979
end
80+
81+
private_constant :Configuration
8082
end

lib/packwerk/const_node_inspector.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,6 @@ def fully_qualify_constant(ancestors)
5252
"::" + NodeHelpers.parent_module_name(ancestors: ancestors)
5353
end
5454
end
55+
56+
private_constant :ConstNodeInspector
5557
end

lib/packwerk/constant_discovery.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def package_from_path(path)
5050
# @param const_name [String] The unresolved constant's name.
5151
# @param current_namespace_path [Array<String>] (optional) The namespace of the context in which the constant is
5252
# used, e.g. ["Apps", "Models"] for `Apps::Models`. Defaults to [] which means top level.
53-
# @return [Packwerk::ConstantDiscovery::ConstantContext]
53+
# @return [ConstantDiscovery::ConstantContext]
5454
sig do
5555
params(
5656
const_name: String,
@@ -74,4 +74,6 @@ def context_for(const_name, current_namespace_path: [])
7474
)
7575
end
7676
end
77+
78+
private_constant :ConstantDiscovery
7779
end

0 commit comments

Comments
 (0)