Class: Kiqr::Cli::Generators::DummyGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/kiqr/cli/generators/dummy/dummy_generator.rb

Constant Summary collapse

CLEANUP_FILES =
%w[
  .dockerignore
  .github
  .gitignore
  .rubocop.yml
  .ruby-version
  Gemfile
  Gemfile.lock
  Dockerfile
  lib/tasks
  test
]

Instance Method Summary collapse

Instance Method Details

#clean_up_dummy_directoryObject



23
24
25
26
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 23

def clean_up_dummy_directory
  say "Cleaning up dummy directory: #{dummy_path}"
  remove_dir dummy_path
end

#cleanup_unnessary_filesObject



44
45
46
47
48
49
50
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 44

def cleanup_unnessary_files
  inside dummy_path do
    CLEANUP_FILES.each do |file|
      remove_file file
    end
  end
end

#create_dummy_appObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 28

def create_dummy_app
  opts = {
    skip_bundle: true,
    skip_git: true,
    skip_decrypted_diffs: true,
    skip_listen: true,
    skip_rc: true,
    skip_spring: true,
    skip_test: true,
    skip_bootsnap: true
  }

  say "Generating dummy Rails application at #{dummy_path}"
  invoke Rails::Generators::AppGenerator, [ dummy_path ], opts
end

#install_frontend_dependenciesObject



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 59

def install_frontend_dependencies
  inside dummy_path do
    run "bin/rails importmap:install"

    # Turbo
    append_to_file File.join(dummy_path, "app/javascript/application.js"), %(import "@hotwired/turbo-rails"\n)
    append_to_file File.join(dummy_path, "config/importmap.rb"), %(pin "@hotwired/turbo-rails", to: "turbo.min.js"\n)

    # Stimulus
    run "bin/rails stimulus:install"
  end
end

#install_kiqrObject



72
73
74
75
76
77
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 72

def install_kiqr
  inside dummy_path do
    run "bin/rails g kiqr:install"
    run "bin/rails g kiqr:themes:irelia:install"
  end
end

#replace_boot_fileObject



52
53
54
55
56
57
# File 'lib/kiqr/cli/generators/dummy/dummy_generator.rb', line 52

def replace_boot_file
  directory "rails", File.join(dummy_path), force: true
  inside dummy_path do
    run "bundle install --quiet"
  end
end