class Saaskit::Generators::InstallGenerator

Public Instance Methods

add_gems_to_gemfile() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/generators/saaskit/install/install_generator.rb, line 155
def display_readme_in_terminal
  readme "README"
end
enable_require_master_key_in_production() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/generators/saaskit/install/install_generator.rb, line 127
def install_meta_tags
  copy_file "config/initializers/meta_tags.rb"
  copy_file "app/helpers/meta_tags_helper.rb"
end
install_pages() click to toggle source
# 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() click to toggle source
# 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
          <<~CODE
            environment.plugins.append('PurgecssWebpackPlugin', require('./plugins/purgecss-webpack-plugin'))
          CODE
        end
      end
install_stimulus() click to toggle source
# 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
          <<~CODE
            // Tell webpacker to require stimulus
            require("stimulus")
            import 'controllers'
          CODE
        end
      end
install_stimulus_controllers() click to toggle source
# 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() click to toggle source
# 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
          <<~CODE
            require("stylesheets/application.scss")
          CODE
        end
        insert_into_file "app/views/layouts/application.html.erb", after: "<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>\n" do
          <<~CODE
            <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
          CODE
        end
        copy_file "app/javascript/stylesheets/tailwind.config.js"
        insert_into_file "postcss.config.js", after: "plugins: [\n" do
          <<~CODE
            require('tailwindcss')('./app/javascript/stylesheets/tailwind.config.js'),
            require('autoprefixer'),
          CODE
        end
      end
install_third_party_packages() click to toggle source
# 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() click to toggle source
# File lib/generators/saaskit/install/install_generator.rb, line 27
def organizing_gemfile
  run "eefgilm"
end
tidy_up_codebase() click to toggle source
# File lib/generators/saaskit/install/install_generator.rb, line 151
def tidy_up_codebase
  run "bundle exec standardrb --fix"
end