Class: Ace::Tmux::Molecules::RuntimeTargetResolver
- Inherits:
-
Object
- Object
- Ace::Tmux::Molecules::RuntimeTargetResolver
- Defined in:
- lib/ace/tmux/molecules/runtime_target_resolver.rb
Instance Method Summary collapse
-
#initialize(executor: Ace::Tmux::Molecules::TmuxExecutor.new, tmux: "tmux", env: ENV) ⇒ RuntimeTargetResolver
constructor
A new instance of RuntimeTargetResolver.
- #resolve_pane(session: nil, window: nil, pane: nil) ⇒ Object
- #resolve_session(session: nil) ⇒ Object
- #resolve_window(session: nil, window: nil) ⇒ Object
Constructor Details
#initialize(executor: Ace::Tmux::Molecules::TmuxExecutor.new, tmux: "tmux", env: ENV) ⇒ RuntimeTargetResolver
Returns a new instance of RuntimeTargetResolver.
7 8 9 10 11 |
# File 'lib/ace/tmux/molecules/runtime_target_resolver.rb', line 7 def initialize(executor: Ace::Tmux::Molecules::TmuxExecutor.new, tmux: "tmux", env: ENV) @executor = executor @tmux = tmux @env = env end |
Instance Method Details
#resolve_pane(session: nil, window: nil, pane: nil) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ace/tmux/molecules/runtime_target_resolver.rb', line 50 def resolve_pane(session: nil, window: nil, pane: nil) explicit = normalize(pane) return build_pane_target(explicit, session: session, window: window, source: "explicit") if explicit env_pane = normalize(env["ACE_TMUX_PANE"]) return build_pane_target(env_pane, session: session, window: window, source: "env") if env_pane window_target = resolve_window(session: session, window: window) live_pane = resolve_live_pane(window_target.window_target) return Models::RuntimeTarget.new( session: window_target.session, window: window_target.window, pane: live_pane, raw_window_target: window_target.window_target, source: "live" ) if live_pane raise Ace::Tmux::TargetResolutionError, "Could not resolve tmux pane from flags, ACE_TMUX_PANE, or live tmux context." end |
#resolve_session(session: nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ace/tmux/molecules/runtime_target_resolver.rb', line 13 def resolve_session(session: nil) explicit = normalize(session) return Models::RuntimeTarget.new(session: explicit, source: "explicit") if explicit env_session = normalize(env["ACE_TMUX_SESSION"]) return Models::RuntimeTarget.new(session: env_session, source: "env") if env_session live_session = resolve_live_session return Models::RuntimeTarget.new(session: live_session, source: "live") if live_session raise Ace::Tmux::TargetResolutionError, "Could not resolve tmux session from flags, ACE_TMUX_SESSION, or live tmux context." end |
#resolve_window(session: nil, window: nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/ace/tmux/molecules/runtime_target_resolver.rb', line 26 def resolve_window(session: nil, window: nil) session_target = resolve_session(session: session) explicit_window = normalize(window) if explicit_window return build_window_target(session: session_target.session, raw_window: explicit_window, source: "explicit") end env_window = normalize(env["ACE_TMUX_WINDOW"]) if env_window return build_window_target(session: session_target.session, raw_window: env_window, source: "env") end live_window = resolve_live_window(session: session_target.session) return Models::RuntimeTarget.new( session: session_target.session, window: live_window[:name], raw_window_target: live_window[:id], source: "live" ) if live_window raise Ace::Tmux::TargetResolutionError, "Could not resolve tmux window from flags, ACE_TMUX_WINDOW, or live tmux context." end |