class ReactWebpackRails::Install::CoreGenerator
Public Instance Methods
base()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 13 def base copy_file '.babelrc', '.babelrc' copy_file '.eslintrc', '.eslintrc' create_file 'app/assets/javascripts/react_bundle.js' require_bundles_in_application_js template 'react/index.js', 'app/react/index.js' end
gitignore()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 25 def gitignore append_file '.gitignore' do <<-'TEXT'.strip_heredoc /node_modules /app/assets/javascripts/react_bundle.js /app/assets/stylesheets/react_bundle.css TEXT end end
package()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 34 def package if options.tmp_package copy_file 'packages/core.json', 'tmp/package.json', force: true else copy_file 'packages/core.json', 'package.json' end end
structure()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 21 def structure create_file 'app/react/components/.keep' end
webpack()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 42 def webpack copy_file 'webpack.config.js', 'webpack.config.js' copy_file 'webpack/dev.config.js', 'webpack/dev.config.js' copy_file 'webpack/production.config.js', 'webpack/production.config.js' end
Private Instance Methods
require_bundles_in_application_js()
click to toggle source
# File lib/generators/react_webpack_rails/install/core_generator.rb, line 50 def require_bundles_in_application_js manifest_file = Dir.glob('app/assets/javascripts/application.*').first case manifest_file when /.*\.coffee(\.erb)?$/ requires = <<-REQUIRE_STRING.strip_heredoc #= require react_integration #= require react_bundle REQUIRE_STRING return if inject_into_file manifest_file, requires, before: '#= require_tree .' append_to_file manifest_file, requires when /.*\.js(\.erb)?$/ requires = <<-REQUIRE_STRING.strip_heredoc //= require react_integration //= require react_bundle REQUIRE_STRING inject_into_file manifest_file, requires, before: '//= require_tree .' append_to_file manifest_file, requires else manifest_info = <<-NO_MANIFEST.strip_heredoc Missing manifest? Javascript manifest (normally application.js) could not be found. Please require following files in your manifest file: react_integration react_bundle NO_MANIFEST say_status(:not_found, manifest_info, :red) end end