Class: Rails::Worktrees::InitializerUpdater

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

Overview

Safely updates the generated initializer to use the current managed app-config format. rubocop:disable Metrics/ClassLength

Defined Under Namespace

Classes: Result

Constant Summary collapse

TEMPLATE_PATH =
File.expand_path('../../generators/rails/worktrees/templates/rails_worktrees.rb.tt', __dir__)
FILE_ENCODING =
'UTF-8'.freeze
CURRENT_WRAPPER_CALL =
'Rails.application.config.x.rails_worktrees.tap do |config|'.freeze
CONFIGURE_CALL =
'Rails::Worktrees.configure do |config|'.freeze
KNOWN_GUARD_FRAGMENTS =
[
  "Gem.loaded_specs.key?('rails-worktrees')",
  'defined?(Rails::Worktrees)',
  'Rails::Worktrees.respond_to?(:configure)'
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content:) ⇒ InitializerUpdater

Returns a new instance of InitializerUpdater.



26
# File 'lib/rails/worktrees/initializer_updater.rb', line 26

def initialize(content:) = @content = content

Class Method Details

.default_contentObject



24
# File 'lib/rails/worktrees/initializer_updater.rb', line 24

def self.default_content = new(content: '').send(:render_default_template)

Instance Method Details

#callObject



28
29
30
31
32
33
34
35
36
# File 'lib/rails/worktrees/initializer_updater.rb', line 28

def call
  return identical_result if current_guard_present?
  return updated_result(self.class.default_content) if blank_content?

  body = wrapped_body
  return skip_result unless body

  updated_result(rebuild_content(body))
end