class Mudguard::Infrastructure::Persistence::ProjectRepository
Provides access to the persisted source and policies
Public Class Methods
load_source_policies(project_path)
click to toggle source
# File lib/mudguard/infrastructure/persistence/project_repository.rb, line 13 def load_source_policies(project_path) file = PolicyFile.read(project_path) scopes = file.flat_map do |patterns, policies| build_scope(patterns, policies, project_path) end sources = scopes.group_by { |e| e[:source] } sources.map(&method(:build_policies)) end
Private Class Methods
build_policies(source, group)
click to toggle source
# File lib/mudguard/infrastructure/persistence/project_repository.rb, line 26 def build_policies(source, group) policies = group.flat_map { |r| r[:policies] }.uniq Domain::SourcePolicies.new(source: source, policies: policies) end
build_scope(patterns, policies, project_path)
click to toggle source
# File lib/mudguard/infrastructure/persistence/project_repository.rb, line 31 def build_scope(patterns, policies, project_path) sources = RubyFiles.select(project_path, patterns: [patterns]) sources.flat_map { |s| { source: s, policies: policies } } end