Module: Rails::Worktrees

Defined in:
lib/rails/worktrees.rb,
lib/rails/worktrees/cli.rb,
lib/rails/worktrees/command.rb,
lib/rails/worktrees/railtie.rb,
lib/rails/worktrees/version.rb,
lib/rails/worktrees/configuration.rb,
lib/rails/worktrees/command/output.rb,
lib/rails/worktrees/browser_command.rb,
lib/rails/worktrees/env_bootstrapper.rb,
lib/rails/worktrees/mise_environment.rb,
lib/rails/worktrees/procfile_updater.rb,
lib/rails/worktrees/mise_toml_updater.rb,
lib/rails/worktrees/post_create_runner.rb,
lib/rails/worktrees/initializer_updater.rb,
lib/rails/worktrees/project_maintenance.rb,
lib/rails/worktrees/puma_config_updater.rb,
lib/rails/worktrees/command/name_picking.rb,
lib/rails/worktrees/credential_key_linker.rb,
lib/rails/worktrees/command/git_operations.rb,
lib/rails/worktrees/command/workspace_paths.rb,
lib/rails/worktrees/database_config_updater.rb,
lib/generators/rails/worktrees/mise_follow_up.rb,
lib/generators/rails/worktrees/puma_follow_up.rb,
lib/rails/worktrees/application_configuration.rb,
lib/rails/worktrees/command/environment_support.rb,
lib/rails/worktrees/command/post_create_support.rb,
lib/rails/worktrees/project_configuration_loader.rb,
sig/rails/worktrees.rbs

Overview

Rails-specific git worktree helpers and installer support.

Defined Under Namespace

Modules: ApplicationConfiguration, Generators Classes: BrowserCommand, CLI, Command, Configuration, CredentialKeyLinker, DatabaseConfigUpdater, EnvBootstrapper, Error, InitializerUpdater, MiseEnvironment, MiseTomlUpdater, PostCreateRunner, ProcfileUpdater, ProjectConfigurationLoader, ProjectMaintenance, PumaConfigUpdater, Railtie

Constant Summary collapse

INSTALL_GENERATOR_COMMAND =
'bin/rails generate worktrees:install'.freeze
INSTALL_GENERATOR_NAMES =
%w[worktrees:install].freeze
REQUIRED_INSTALLATION_PATHS =
[
  'bin/wt',
  'config/initializers/rails_worktrees.rb'
].freeze
VERSION =

Returns:

  • (String)
'0.7.2'.freeze

Class Method Summary collapse

Class Method Details

.apply_application_configuration(source, configuration: self.configuration) ⇒ Object



47
48
49
# File 'lib/rails/worktrees.rb', line 47

def apply_application_configuration(source, configuration: self.configuration)
  ApplicationConfiguration.apply(source, configuration: configuration)
end

.configurationConfiguration

Returns:



34
35
36
# File 'lib/rails/worktrees.rb', line 34

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Configuration

Yields:

Yield Parameters:

Yield Returns:

  • (void)

Returns:



38
39
40
41
# File 'lib/rails/worktrees.rb', line 38

def configure
  yield(configuration)
  configuration
end

.installation_complete?(root = resolve_root) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
55
# File 'lib/rails/worktrees.rb', line 51

def installation_complete?(root = resolve_root)
  return false unless root

  required_installation_paths(root).all?(&:exist?)
end

.missing_installation_message(root: resolve_root) ⇒ Object



57
58
59
60
61
# File 'lib/rails/worktrees.rb', line 57

def missing_installation_message(root: resolve_root)
  return generic_missing_installation_message unless root

  detailed_missing_installation_message(normalize_root(root))
end

.reset_configuration!Configuration

Returns:



43
44
45
# File 'lib/rails/worktrees.rb', line 43

def reset_configuration!
  @configuration = Configuration.new
end

.warn_about_missing_installation(root: resolve_root, stderr: $stderr, argv: ARGV) ⇒ Object



63
64
65
66
67
# File 'lib/rails/worktrees.rb', line 63

def warn_about_missing_installation(root: resolve_root, stderr: $stderr, argv: ARGV)
  return unless missing_installation_warning_needed?(root: root, argv: argv)

  stderr.puts(missing_installation_message(root: root))
end