Class: Rails::Generators::Hyperdrive::SyncGenerator

Inherits:
Base
  • Object
show all
Includes:
ContentSyncSupport
Defined in:
lib/generators/hyperdrive/sync/sync_generator.rb

Overview

Content-only by contract: no step may write a bootstrap artifact (.mcp.json, the engine mount, the initializer, the .gitignore rule).

Instance Method Summary collapse

Methods included from ContentSyncSupport

#options

Instance Method Details

#discover_artifactsObject



33
34
35
# File 'lib/generators/hyperdrive/sync/sync_generator.rb', line 33

def discover_artifacts
  runner.discover_artifacts
end


47
48
49
50
51
# File 'lib/generators/hyperdrive/sync/sync_generator.rb', line 47

def print_summary
  say ""
  say_status :done, "hyperdrive synced", :green
  runner.summary_lines.each { |line| say line }
end

#sync_contentObject



37
38
39
40
41
42
43
44
45
# File 'lib/generators/hyperdrive/sync/sync_generator.rb', line 37

def sync_content
  mode =
    if options[:overwrite]  then :overwrite
    elsif options[:merge]   then :merge
    elsif options[:sidecar] then :sidecar
    else :preserve
    end
  runner.install(mode: mode)
end

#verify_environmentObject



29
30
31
# File 'lib/generators/hyperdrive/sync/sync_generator.rb', line 29

def verify_environment
  runner.verify_environment!
end

#verify_optionsObject

Raises:

  • (Thor::Error)


22
23
24
25
26
27
# File 'lib/generators/hyperdrive/sync/sync_generator.rb', line 22

def verify_options
  chosen = %i[overwrite merge sidecar].select { |flag| options[flag] }
  return if chosen.size <= 1
  raise Thor::Error,
    "hyperdrive: #{chosen.map { |flag| "--#{flag}" }.join(" and ")} are mutually exclusive; pick one"
end