Class: Kiqr::Cli::Generators::AppGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Kiqr::Cli::Generators::AppGenerator
- Defined in:
- lib/kiqr/cli/generators/app/app_generator.rb
Constant Summary collapse
- PASSTHROUGH_OPTIONS =
%w[ ruby template skip_gemfile skip_bootsnap skip_bundle skip_git skip_keeps skip_active_record skip_sprockets skip_spring database javascript skip_javascript dev edge skip_turbolinks skip_test_unit rc no_rc force pretend quiet skip help version skip_decrypted_diffs ]
Instance Method Summary collapse
- #add_kiqr_gem ⇒ Object
- #add_test_gems ⇒ Object
- #generate_rails_application ⇒ Object
- #reset_gemfile_env ⇒ Object
- #run_kiqr_update_generator ⇒ Object
-
#set_bundle_gemfile ⇒ Object
Temporary set BUNDLE_GEMFILE to the path of the Gemfile in the root of the application.
Instance Method Details
#add_kiqr_gem ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 29 def add_kiqr_gem if kiqr_core_directory = find_upwards("kiqr.gemspec") version_tag = "path: \"#{kiqr_core_directory}\"" else version_tag = "\"~> #{Kiqr.version}\"" end gemfile_additions = <<~EOS \n # KIQR Framework [https://github.com/kiqr/kiqr] gem "kiqr", #{version_tag} EOS append_file File.("Gemfile", app_path), gemfile_additions, after: /gem "rails", ".*"/ end |
#add_test_gems ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 44 def add_test_gems gemfile_additions = <<~EOS \n gem "factory_bot", "~> 6.4.3" gem "faraday-retry" gem "faraday-multipart" gem "faker" gem "rails-controller-testing" EOS append_file File.("Gemfile", app_path), gemfile_additions, after: /gem "selenium-webdriver"/ end |
#generate_rails_application ⇒ Object
23 24 25 26 27 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 23 def generate_rails_application say "Generating Rails application..." opts = {}.merge().slice(*PASSTHROUGH_OPTIONS) invoke Rails::Generators::AppGenerator, [ app_path ], opts end |
#reset_gemfile_env ⇒ Object
67 68 69 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 67 def reset_gemfile_env ENV["BUNDLE_GEMFILE"] = @original_gemfile end |
#run_kiqr_update_generator ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 56 def run_kiqr_update_generator return if [:skip_bundle] inside app_path do run "bundle install" run "bundle exec rails generate kiqr:install" run "bundle exec rails generate kiqr:update" run "bundle exec rails generate kiqr:themes:irelia:install" end end |
#set_bundle_gemfile ⇒ Object
Temporary set BUNDLE_GEMFILE to the path of the Gemfile in the root of the application
18 19 20 21 |
# File 'lib/kiqr/cli/generators/app/app_generator.rb', line 18 def set_bundle_gemfile @original_gemfile = ENV["BUNDLE_GEMFILE"] ENV["BUNDLE_GEMFILE"] = File.join(app_path, "Gemfile") end |