Module: RailVerdict::MCP::RepositoryRoot

Defined in:
lib/rail_verdict/mcp/repository_root.rb

Class Method Summary collapse

Class Method Details

.contained?(root, path) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
# File 'lib/rail_verdict/mcp/repository_root.rb', line 19

def self.contained?(root, path)
  root = File.realpath(root) rescue File.expand_path(root)
  target = File.expand_path(path, root)
  real_target = begin
    File.realpath(target)
  rescue Errno::ENOENT
    target
  end
  real_target == root || real_target.start_with?(root + File::SEPARATOR)
end

.resolve(requested) ⇒ Object

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rail_verdict/mcp/repository_root.rb', line 6

def self.resolve(requested)
  raw = requested && !requested.to_s.strip.empty? ? requested.to_s.strip : Dir.pwd
  expanded = File.expand_path(raw)
  real = begin
    File.realpath(expanded)
  rescue Errno::ENOENT
    expanded
  end
  raise ArgumentError, "repository root is not a directory: #{real}" unless File.directory?(real)

  real.freeze
end