Class: Rails::Worktrees::MiseTomlUpdater

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/worktrees/mise_toml_updater.rb

Overview

Safely updates mise config to load the worktree-local .env.

Defined Under Namespace

Classes: Result

Constant Summary collapse

ENV_SECTION_PATTERN =
/\A\s*\[env\]\s*(?:#.*)?\z/
ENV_FILE_PATTERN =
/\A\s*_.file\s*=\s*["']\.env["']\s*(?:#.*)?\z/
SECTION_PATTERN =
/\A\s*\[[^\]]+\]\s*(?:#.*)?\z/
ENV_FILE_ENTRY =
'_.file = ".env"'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(content:, file_name:) ⇒ MiseTomlUpdater

Returns a new instance of MiseTomlUpdater.



16
17
18
19
# File 'lib/rails/worktrees/mise_toml_updater.rb', line 16

def initialize(content:, file_name:)
  @content = content
  @file_name = file_name
end

Instance Method Details

#callObject



21
22
23
24
25
26
# File 'lib/rails/worktrees/mise_toml_updater.rb', line 21

def call
  lines = @content.lines(chomp: true)
  return update_existing_env_section(lines) if env_section_present?(lines)

  append_env_section(lines)
end