class WebpackOnRails::Generators::InstallGenerator

Public Instance Methods

create_client_dirs() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 8
def create_client_dirs
  empty_directory "client"
  empty_directory "client/config"
  empty_directory "client/config/loaders"
  empty_directory "client/config/plugins"
  empty_directory "client/entries"
  empty_directory "client/lib"

  create_file "client/lib/.gitkeep"
end
create_configs() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 23
def create_configs
  template "client/config/shared.js", "client/config/shared.js"
  template "client/config/development.js", "client/config/development.js"
  template "client/config/server.development.js", "client/config/server.development.js"
  template "client/config/production.js", "client/config/production.js"

  template "client/config/loaders/babel.js", "client/config/loaders/babel.js"
  template "client/config/loaders/font.js", "client/config/loaders/font.js"
  template "client/config/loaders/css.js", "client/config/loaders/css.js"
  template "client/config/loaders/sass.js", "client/config/loaders/sass.js"
  template "client/config/loaders/extract-text-sass.js", "client/config/loaders/extract-text-sass.js"

  template "client/config/plugins/extract-text-css.js", "client/config/plugins/extract-text-css.js"
end
create_empty_webpack_application() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 38
def create_empty_webpack_application
  empty_directory "client/entries/webpack-application"

  template "client/entries/webpack-application/index.js.empty", "client/entries/webpack-application/index.js"
end
create_package_json() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 19
def create_package_json
  template "client/package.json", "client/package.json"
end
disable_asset_debug() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 54
def disable_asset_debug
  gsub_file \
    "config/environments/development.rb",
    /config\.assets\.debug\s*=\s*\w+$/,
    "config.assets.debug = false"
end
replace_asset_host() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 61
      def replace_asset_host
        inject_into_class \
          "config/application.rb",
          "Application",
          <<-ASSET_HOST
    if ENV["ASSET_HOST"].present?
      Rails.application.config.action_controller.asset_host = proc { |source, _request|
        ENV["ASSET_HOST"]
      }
    end

          ASSET_HOST
      end
set_asset_manifest_location() click to toggle source
# File lib/generators/webpack_on_rails/install_generator.rb, line 44
      def set_asset_manifest_location
        append_to_file "config/initializers/assets.rb" do
          <<-ASSET_MANIFEST.strip_heredoc

            # Avoid creating the manifest file in public/assets as it can be downloaded by anyone
            Rails.configuration.assets.manifest = Rails.root.join("config", "sprockets-manifest.json")
          ASSET_MANIFEST
        end
      end