Class: WebpackOnRails::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- WebpackOnRails::Generators::InstallGenerator
- Defined in:
- lib/generators/webpack_on_rails/install_generator.rb
Instance Method Summary collapse
- #create_client_dirs ⇒ Object
- #create_configs ⇒ Object
- #create_empty_webpack_application ⇒ Object
- #create_package_json ⇒ Object
- #disable_asset_debug ⇒ Object
- #replace_asset_host ⇒ Object
- #set_asset_manifest_location ⇒ Object
Instance Method Details
#create_client_dirs ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# 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 ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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 ⇒ Object
38 39 40 41 42 |
# 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 ⇒ Object
19 20 21 |
# 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 ⇒ Object
54 55 56 57 58 59 |
# 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 ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# 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 ⇒ Object
44 45 46 47 48 49 50 51 52 |
# 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 |