Module: Ace::Tmux::Molecules::ConfigLoader

Defined in:
lib/ace/tmux/molecules/config_loader.rb

Overview

Loads general tmux configuration via the ACE config cascade

Class Method Summary collapse

Class Method Details

.load(gem_root:) ⇒ Hash

Load tmux config from cascade

Parameters:

  • gem_root (String)

    Gem root directory

Returns:

  • (Hash)

    Merged configuration hash



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ace/tmux/molecules/config_loader.rb', line 16

def load(gem_root:)
  resolver = Ace::Support::Config.create(
    config_dir: ".ace",
    defaults_dir: ".ace-defaults",
    gem_path: gem_root
  )

  config = resolver.resolve_namespace("tmux")
  config.data
rescue => e
  warn "ace-tmux: Could not load config: #{e.class} - #{e.message}" if Tmux.debug?
  load_fallback(gem_root)
end

.load_fallback(gem_root) ⇒ Hash

Load gem defaults directly as fallback

Parameters:

  • gem_root (String)

    Gem root directory

Returns:

  • (Hash)

    Defaults hash or empty hash



34
35
36
37
38
39
40
41
42
# File 'lib/ace/tmux/molecules/config_loader.rb', line 34

def load_fallback(gem_root)
  defaults_path = File.join(gem_root, ".ace-defaults", "tmux", "config.yml")
  return {} unless File.exist?(defaults_path)

  require "yaml"
  YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {}
rescue
  {}
end