Current section

Files

Jump to
excessibility lib system_behavior.ex
Raw

lib/system_behavior.ex

defmodule Excessibility.SystemBehaviour do
@moduledoc """
Behaviour for system-level operations.
This behaviour defines the interface for opening files in the system browser,
used during interactive diff resolution.
## Mocking
Implement this behaviour to mock system operations in tests:
Mox.defmock(Excessibility.SystemMock, for: Excessibility.SystemBehaviour)
Application.put_env(:excessibility, :system_mod, Excessibility.SystemMock)
See `Excessibility.System` for the default implementation.
"""
@doc """
Opens a file path in the system's default browser.
## Parameters
- `path` - The file path to open
## Returns
The result of the system command (typically ignored).
"""
@callback open_with_system_cmd(String.t()) :: any()
end