class Pocky::PackwerkLoader
Public Class Methods
load(root_path, package_paths)
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 5 def self.load(root_path, package_paths) new(root_path, package_paths).load end
new(root_path, package_paths)
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 10 def initialize(root_path, package_paths) @root_path = root_path @package_paths = package_paths @packages = {} end
Public Instance Methods
load()
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 16 def load load_primary_packages load_secondary_packages @packages end
Private Instance Methods
dependencies_files()
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 35 def dependencies_files @dependencies_files ||= begin return Dir[@root_path.join('**', Pocky::Package::DEPENDENCIES_FILENAME).to_s] unless @package_paths @package_paths.flat_map do |path| Dir[@root_path.join(path, '**', Pocky::Package::DEPENDENCIES_FILENAME).to_s] end end end
deprecated_references_files()
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 25 def deprecated_references_files @deprecated_references_files ||= begin return Dir[@root_path.join('**', Pocky::Package::DEPRECATED_REFERENCES_FILENAME).to_s] unless @package_paths @package_paths.flat_map do |path| Dir[@root_path.join(path, '**', Pocky::Package::DEPRECATED_REFERENCES_FILENAME).to_s] end end end
init_package(package_name, primary)
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 45 def init_package(package_name, primary) Pocky::Package.new( name: package_name, path: @root_path.join(package_name).to_s, primary: primary ) end
load_primary_packages()
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 53 def load_primary_packages filenames = dependencies_files + deprecated_references_files primary_package_names = filenames.map { |filename| parse_package_name(filename) }.uniq primary_package_names.each do |name| @packages[name] ||= init_package(name, true) end end
load_secondary_packages()
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 61 def load_secondary_packages secondary_packages = {} @packages.each do |_, package| package.dependencies.each do |dependency| secondary_packages[dependency] ||= init_package(dependency, false) unless @packages[dependency] end package.deprecated_references.each do |reference, _violations| secondary_packages[reference] ||= init_package(reference, false) unless @packages[reference] end end @packages.merge!(secondary_packages) end
parse_package_name(filename)
click to toggle source
# File lib/pocky/packwerk_loader.rb, line 76 def parse_package_name(filename) name = File.dirname(filename).gsub(@root_path.to_s, '') name == '' ? '.' : name.gsub(/^\//, '') end