Class: Saaskit::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Saaskit::Generators::InstallGenerator
- Defined in:
- lib/generators/saaskit/install/install_generator.rb
Instance Method Summary collapse
- #add_gems_to_gemfile ⇒ Object
- #bundle_install ⇒ Object
- #copy_credentials_sample ⇒ Object
- #create_and_migrate_db ⇒ Object
- #create_application_controller ⇒ Object
- #create_application_helpers ⇒ Object
- #display_readme_in_terminal ⇒ Object
- #enable_require_master_key_in_production ⇒ Object
- #import_third_party_css_into_assets_pipeline ⇒ Object
- #install_application_shared_and_layouts ⇒ Object
- #install_images ⇒ Object
- #install_meta_tags ⇒ Object
- #install_pages ⇒ Object
- #install_purgecss ⇒ Object
- #install_stimulus ⇒ Object
- #install_stimulus_controllers ⇒ Object
- #install_tailwindcss ⇒ Object
- #install_third_party_packages ⇒ Object
- #organizing_gemfile ⇒ Object
- #tidy_up_codebase ⇒ Object
Instance Method Details
#add_gems_to_gemfile ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 8 def add_gems_to_gemfile gem 'meta-tags', '~> 2.11', '>= 2.11.1' gem 'gibbon', '~> 3.2' gem_group :development, :test do gem 'standard', '~> 0.0.40' end gem_group :development do gem 'eefgilm', '~> 1.2', '>= 1.2.1' end end |
#bundle_install ⇒ Object
21 22 23 24 25 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 21 def bundle_install Bundler.with_clean_env do run "bundle install" end end |
#copy_credentials_sample ⇒ Object
31 32 33 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 31 def copy_credentials_sample copy_file "config/credentials.yml.sample" end |
#create_and_migrate_db ⇒ Object
146 147 148 149 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 146 def create_and_migrate_db rails_command "db:create" rails_command "db:migrate" end |
#create_application_controller ⇒ Object
132 133 134 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 132 def create_application_controller copy_file "app/controllers/application_controller.rb", force: true end |
#create_application_helpers ⇒ Object
123 124 125 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 123 def create_application_helpers copy_file "app/helpers/application_helper.rb", force: true end |
#display_readme_in_terminal ⇒ Object
155 156 157 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 155 def display_readme_in_terminal readme "README" end |
#enable_require_master_key_in_production ⇒ Object
35 36 37 38 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 35 def enable_require_master_key_in_production uncomment_lines "config/environments/production.rb", /config.require_master_key = true/ end |
#import_third_party_css_into_assets_pipeline ⇒ Object
105 106 107 108 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 105 def import_third_party_css_into_assets_pipeline remove_file "app/assets/stylesheets/application.css" copy_file "app/assets/stylesheets/application.scss" end |
#install_application_shared_and_layouts ⇒ Object
118 119 120 121 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 118 def install_application_shared_and_layouts directory "app/views/shared" directory "app/views/layouts", force: true end |
#install_images ⇒ Object
110 111 112 113 114 115 116 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 110 def install_images gsub_file "app/javascript/packs/application.js", /\/\/ const images/, "const images" gsub_file "app/javascript/packs/application.js", /\/\/ const imagePath/, "const imagePath" directory "app/javascript/images" end |
#install_meta_tags ⇒ Object
127 128 129 130 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 127 def copy_file "config/initializers/meta_tags.rb" copy_file "app/helpers/meta_tags_helper.rb" end |
#install_pages ⇒ Object
136 137 138 139 140 141 142 143 144 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 136 def install_pages copy_file "app/forms/newsletter_form.rb" copy_file "app/adapters/mailchimp/base_adapter.rb" copy_file "app/models/concerns/coming_soon_pending_subscribable.rb" directory "app/views/pages" copy_file "app/controllers/pages_controller.rb" route "root to: 'pages#home'" route "post '/subscribe', to: 'pages#subscribe'" end |
#install_purgecss ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 77 def install_purgecss run "yarn add glob-all" run "yarn add path" run "yarn add purgecss-webpack-plugin" copy_file "config/webpack/plugins/purgecss-webpack-plugin.js" insert_into_file "config/webpack/production.js", after: "const environment = require('./environment')\n" do " environment.plugins.append('PurgecssWebpackPlugin', require('./plugins/purgecss-webpack-plugin'))\n CODE\n end\nend\n" |
#install_stimulus ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 40 def install_stimulus run "yarn add stimulus" copy_file "app/javascript/controllers/index.js" insert_into_file "app/javascript/packs/application.js", after: "require(\"channels\")\n" do " // Tell webpacker to require stimulus\n require(\"stimulus\")\n import 'controllers'\n CODE\n end\nend\n" |
#install_stimulus_controllers ⇒ Object
96 97 98 99 100 101 102 103 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 96 def install_stimulus_controllers copy_file "app/javascript/controllers/notice_controller.js" copy_file "app/javascript/controllers/typed_controller.js" copy_file "app/javascript/controllers/reveal_controller.js" copy_file "app/javascript/controllers/smooth_scroll_controller.js" copy_file "app/javascript/controllers/aos_controller.js" copy_file "app/javascript/controllers/noty_controller.js" end |
#install_tailwindcss ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 52 def install_tailwindcss run "yarn add tailwindcss" run "yarn add tailwindcss-transitions" run "yarn add tailwindcss-gradients" run "yarn add tailwindcss-pseudo" copy_file "app/javascript/stylesheets/application.scss" append_to_file "app/javascript/packs/application.js" do " require(\"stylesheets/application.scss\")\n CODE\n end\n insert_into_file \"app/views/layouts/application.html.erb\", after: \"<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>\\n\" do\n <<~CODE\n <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>\n CODE\n end\n copy_file \"app/javascript/stylesheets/tailwind.config.js\"\n insert_into_file \"postcss.config.js\", after: \"plugins: [\\n\" do\n <<~CODE\n require('tailwindcss')('./app/javascript/stylesheets/tailwind.config.js'),\n require('autoprefixer'),\n CODE\n end\nend\n" |
#install_third_party_packages ⇒ Object
89 90 91 92 93 94 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 89 def install_third_party_packages run "yarn add typed.js" run "yarn add smooth-scroll" run "yarn add aos@next" run "yarn add noty" end |
#organizing_gemfile ⇒ Object
27 28 29 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 27 def organizing_gemfile run "eefgilm" end |
#tidy_up_codebase ⇒ Object
151 152 153 |
# File 'lib/generators/saaskit/install/install_generator.rb', line 151 def tidy_up_codebase run "bundle exec standardrb --fix" end |