Class: WebpackRailsReact::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/webpack_rails_react/install_generator.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#add_foreman_to_gemfileObject



8
9
10
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 8

def add_foreman_to_gemfile
  gem 'foreman'
end

#add_to_gitignoreObject



58
59
60
61
62
63
64
65
66
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 58

def add_to_gitignore
  append_to_file ".gitignore" do
    "    # Added by webpack-rails\n    /node_modules\n    /public/webpack\n    EOF\n  end\nend\n".strip_heredoc

#copy_package_jsonObject



16
17
18
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 16

def copy_package_json
  copy_file "package.json", "package.json"
end

#copy_procfileObject



12
13
14
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 12

def copy_procfile
  copy_file "Procfile", "Procfile"
end

#copy_webpack_confObject



20
21
22
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 20

def copy_webpack_conf
  copy_file "webpack.config.js", "config/webpack.config.js"
end

#create_webpack_application_jsObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 24

def create_webpack_application_js
  empty_directory "webpack"
  create_file "webpack/application.js" do
    "    import React from 'react';\n    import ReactDOM from 'react-dom';\n    import App from './App';\n\n    ReactDOM.render(\n      <App />,\n      document.getElementById('app')\n    )\n    EOF\n  end\n\n  create_file \"webpack/App.js\" do\n    <<-EOF.strip_heredoc\n      import React from 'react';\n\n      class App extends React.Component {\n        render() {\n          return(\n            <div>\n              Hello World\n            </div>\n          )\n        }\n      }\n\n      export default App;\n    EOF\n  end\nend\n".strip_heredoc

#run_bundle_installObject



72
73
74
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 72

def run_bundle_install
  run "bundle install" if yes?("Would you like us to run 'bundle install' for you?")
end

#run_npm_installObject



68
69
70
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 68

def run_npm_install
  run "npm install" if yes?("Would you like us to run 'npm install' for you?")
end

#whats_nextObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/generators/webpack_rails_react/install_generator.rb', line 76

def whats_next
  puts "\n    We've set up the basics of webpack-rails for you, but you'll still\n    need to:\n\n      1. Add the 'application' entry point in to your layout, and\n        e.g. <%= javascript_include_tag *webpack_asset_paths('application') %>\n      2. Add an element with an id of 'app' to your layout\n      3. Enable hot module replacement by adding <script src=\"http://localhost:3808/webpack-dev-server.js\"></script> to your layout\n      4. Run 'foreman start' to run the webpack-dev-server and rails server\n\n      Example app/views/layouts/application.html.erb\n      <!DOCTYPE html>\n      <html>\n        <head>\n          <title>WebpackDemo</title>\n          <%= stylesheet_link_tag    'application', media: 'all' %>\n          <%= javascript_include_tag 'application' %>\n          <script src=\"http://localhost:3808/webpack-dev-server.js\"></script>\n          <%= csrf_meta_tags %>\n        </head>\n        <body>\n\n          <%= yield %>\n          <%= javascript_include_tag *webpack_asset_paths('application') %>\n        </body>\n      </html>\n\n\n    See the README.md for this gem at\n    https://github.com/wdjungst/webpack-rails-react/blob/master/README.md\n    for more info.\n\n    Thanks for using webpack-rails-react!\n\n  EOF\nend\n".strip_heredoc