Class: Antoinette::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Antoinette::Generators::InstallGenerator
- Defined in:
- lib/generators/antoinette/install_generator.rb
Instance Method Summary collapse
- #add_routes ⇒ Object
- #copy_controller ⇒ Object
- #copy_elm_files ⇒ Object
- #copy_view ⇒ Object
- #create_antoinette_binstub ⇒ Object
- #create_assets_directory ⇒ Object
- #create_client_directory ⇒ Object
- #create_config_file ⇒ Object
- #install_elm_dependencies ⇒ Object
- #show_post_install_message ⇒ Object
- #update_gitignore ⇒ Object
Instance Method Details
#add_routes ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/generators/antoinette/install_generator.rb', line 69 def add_routes route_content = <<~RUBY get "/antoinette", to: "antoinette/graph#show" RUBY route route_content end |
#copy_controller ⇒ Object
39 40 41 |
# File 'lib/generators/antoinette/install_generator.rb', line 39 def copy_controller copy_file "graph_controller.rb", "app/controllers/antoinette/graph_controller.rb" end |
#copy_elm_files ⇒ Object
26 27 28 29 |
# File 'lib/generators/antoinette/install_generator.rb', line 26 def copy_elm_files copy_file "BundleGraph.elm", "app/client/BundleGraph.elm" copy_file "Sankey.elm", "app/client/Sankey.elm" end |
#copy_view ⇒ Object
43 44 45 |
# File 'lib/generators/antoinette/install_generator.rb', line 43 def copy_view copy_file "show.html.erb", "app/views/antoinette/graph/show.html.erb" end |
#create_antoinette_binstub ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/generators/antoinette/install_generator.rb', line 47 def create_antoinette_binstub create_file "bin/antoinette", <<~RUBY #!/usr/bin/env ruby require_relative "../config/environment" Dry::CLI.new(Antoinette::CLI::Commands).call RUBY chmod "bin/antoinette", 0o755 end |
#create_assets_directory ⇒ Object
56 57 58 |
# File 'lib/generators/antoinette/install_generator.rb', line 56 def create_assets_directory empty_directory "app/assets/javascripts/antoinette" end |
#create_client_directory ⇒ Object
22 23 24 |
# File 'lib/generators/antoinette/install_generator.rb', line 22 def create_client_directory empty_directory "app/client" end |
#create_config_file ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/generators/antoinette/install_generator.rb', line 13 def create_config_file create_file "config/antoinette.json", <<~JSON { "elm_path": "elm", "bundles": [] } JSON end |
#install_elm_dependencies ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/generators/antoinette/install_generator.rb', line 31 def install_elm_dependencies say "Installing Elm dependencies..." run "elm install elm/browser" run "elm install elm/html" run "elm install elm/json" run "elm install elm/svg" end |
#show_post_install_message ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/generators/antoinette/install_generator.rb', line 77 def say "" say "Antoinette has been installed!", :green say "" say "Next steps:" say " 1. Run `bin/antoinette config` to generate bundle configuration" say " 2. Run `bin/antoinette build` to compile Elm bundles" say "" end |
#update_gitignore ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/generators/antoinette/install_generator.rb', line 60 def update_gitignore gitignore_path = Rails.root.join(".gitignore") ignore_line = "app/assets/javascripts/antoinette/" if File.exist?(gitignore_path) && !File.read(gitignore_path).include?(ignore_line) append_to_file ".gitignore", "#{ignore_line}\n" end end |