Class: SvelteOnRails::Generators::ShowcaseGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- SvelteOnRails::Generators::ShowcaseGenerator
- Defined in:
- lib/generators/showcase_generator.rb
Constant Summary collapse
- NPM_PACKAGE_NAME =
'@csedl/svelte-on-rails'
Instance Method Summary collapse
- #finish ⇒ Object
- #hello_world ⇒ Object
-
#initialize(*args) ⇒ ShowcaseGenerator
constructor
A new instance of ShowcaseGenerator.
- #turbo ⇒ Object
Constructor Details
#initialize(*args) ⇒ ShowcaseGenerator
Returns a new instance of ShowcaseGenerator.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/generators/showcase_generator.rb', line 19 def initialize(*args) @config = SvelteOnRails::Configuration.instance super puts puts '=' * 80 puts 'INSTALLING DEMO COMPONENTS' puts '=' * 80 end |
Instance Method Details
#finish ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/generators/showcase_generator.rb', line 77 def finish puts '-' * 80 puts "SvelteOnRails Showcase installed successfully!" puts '-' * 80 puts " => Restart the server and check if it all works." puts " => You can now access the Hello World component on: http://localhost:3000/svelte_on_rails_showcase." puts '-' * 80 puts "Happy coding!" end |
#hello_world ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/generators/showcase_generator.rb', line 57 def hello_world puts '-' * 80 puts ' ▶︎▶︎▶︎︎ INSTALLING Hello World component' puts '-' * 80 hw_i = SvelteOnRails::Installer::HelloWorld utils_i = SvelteOnRails::Installer::Utils utils_i.add_route(" get \"svelte_on_rails_showcase/web_socket\"", app_root: Rails.root) utils_i.add_route(" get \"svelte_on_rails_showcase/web_socket_action\"", app_root: Rails.root) npm_i = SvelteOnRails::Installer::Npm npm_i.install_or_update_package('axios') npm_i.install_or_update_package('@rails/actioncable') js_i = SvelteOnRails::Installer::Javascript init_stat = '../initializers/actionCable.js' js_i.append_import_statement(application_js_path, init_stat, "import '#{init_stat}';") @hello_world_path = hw_i.install_hello_world(['showcase'], app_root: nil, force: true, silent: true, vite_dir: @config.configs[:vite_source_dir]) end |
#turbo ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/generators/showcase_generator.rb', line 32 def turbo puts '-' * 80 puts ' ▶︎▶︎▶︎ INSTALLING @hotwired/turbo-rails' puts '-' * 80 npm_i = SvelteOnRails::Installer::Npm tr_pkg = '@hotwired/turbo-rails' npm_i.install_or_update_package(tr_pkg) js_i = SvelteOnRails::Installer::Javascript js_i.append_import_statement(application_js_path, tr_pkg, "import '#{tr_pkg}';") puts '-' * 80 puts ' ▶︎▶︎▶︎ INSTALLING Turbo::StreamsChannel' puts '-' * 80 gem_uts = SvelteOnRails::GemUtils puts '• installing turbo-rails ...' gem_uts.install_gem('turbo-rails') puts '• installed turbo-rails!' utils_i = SvelteOnRails::Installer::Utils puts '• running turbo:install ...' utils_i.run_command('bundle exec rails turbo:install') puts '• turbo:install finished!' end |