repack 2.4.6 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fab8aaa9ae24afdc4e14d927127db9c4c82f9a9
4
- data.tar.gz: 3bac01c904f00cff49182a71257fdfd7d1d6e275
3
+ metadata.gz: 9dd7db92bd11982cc931f256d49e1322566ade0d
4
+ data.tar.gz: 19f349e15231d2f36e15bda45777a843007fd590
5
5
  SHA512:
6
- metadata.gz: 2b8cce958e30c5de7c0e56e088d2a41c56af0eec86b0c03abc9633ece20374b90b55511806f8c5f5b4b51ab77f1e1240c0144f7249e582eb05b4a0273217ca32
7
- data.tar.gz: 6f9ca0dc8d7f752eff6c250b3a2eff1b7ae7306715e6374e250553672a4635e41ea7d333afe19943d84fa787af42ab4fd8b6694fde2f7d55a91fc2f568aa29a2
6
+ metadata.gz: c3c8e1d7cbef7d0482f3efec55970a4ee4a8bf0ef061ed2786252dc87d040766018155db42c883a29b141bb977cdc4c1e75b6eda5270d9e2c3c3d9c6fb86982b
7
+ data.tar.gz: f46ed5f32805e9af22f74698a96a280999cfdb9c543d59be8ba0c7eac057df35eec0e74adcb614fa192c2da1f947aaaa84c360590eaf652615a7410579122c7d
data/README.md CHANGED
@@ -1,29 +1,30 @@
1
- # repack
1
+ # Repack
2
2
 
3
- **repack** gives you tools to integrate Webpack and React in to an existing Ruby on Rails application.
3
+ **Repack** gives you tools to integrate Webpack and React in to an existing Ruby on Rails application.
4
4
 
5
- It will happily co-exist with sprockets but does not use it for production fingerprinting or asset serving. **repack** is designed with the assumption that if you're using Webpack you treat Javascript as a first-class citizen. This means that you control the webpack config, package.json, and use npm to install Webpack & its plugins.
5
+ It will happily co-exist with sprockets but does not use it for production fingerprinting or asset serving. **Repack** is designed with the assumption that if you're using Webpack you treat Javascript as a first-class citizen. This means that you control the webpack config, package.json, and use npm to install Webpack & its plugins.
6
6
 
7
- In development mode [webpack-dev-server](http://webpack.github.io/docs/webpack-dev-server.html) is used to serve webpacked entry points and offer hot module reloading. In production entry points are built in to `public/client`. **repack** uses [stats-webpack-plugin](https://www.npmjs.com/package/stats-webpack-plugin) to translate entry points in to asset paths.
7
+ In development mode [webpack-dev-server](http://webpack.github.io/docs/webpack-dev-server.html) is used to serve webpacked entry points and offer hot module reloading. In production entry points are built in to `public/client`. **Repack** uses [stats-webpack-plugin](https://www.npmjs.com/package/stats-webpack-plugin) to translate entry points in to asset paths.
8
8
 
9
9
  It was forked from the [Marketplacer](http://www.marketplacer.com) repo: (https://github.com/mipearson/webpack-rails) and support for React / Babel / ES6 was added.
10
10
 
11
- This gem has been tested against Rails 4.2 and Ruby 2.2. Earlier versions of Rails (>= 3.2) and Ruby (>= 1.9) may work, but we haven't tested them.
11
+ This gem has been tested against Rails 5 and Ruby 2.3.1 Earlier versions of Rails (>= 3.2) and Ruby (>= 1.9) may work, but we haven't tested them.
12
12
 
13
- ## Using repack
13
+ ## Using Repack
14
14
 
15
- ### Install Flags
16
- 1. No Flags -> Basic Webpack and React Boilerplate
17
- 2. --router -> Webpack / React / React Router Boilerplate
18
- 3. --redux -> Webpack / React / Redux Boilerplate
19
- 4. --router --redux -> Webpack / React / Router / Redux Boilerplate
20
- 5. --god -> Webpack / React / Router / Redux / Devise / Auth
15
+ ### Install Options
16
+
17
+ 1. Basic Install: `bundle exec rails g repack:install` -> Webpack / React
18
+ 2. React / Redux Install: `bundle exec rails g repack:redux_install` -> Webpack / React / Redux Boilerplate
19
+ 3. React / Router Install: `bundle exec rails g repack:router_install` -> Webpack / React / React Router Boilerplate
20
+ 4. React / Router / Redux Install: `bundle exec rails g repack:router_redux_install` -> Webpack / React / Router / Redux Boilerplate
21
+ 5. GOD MODE: `bundle exec rails g repack:god_install` -> Webpack / React / React Router / Redux / Devise / Devise Token Auth / Bootstrap or Materialize Boilerplate.
21
22
 
22
23
  ### Installation
23
24
 
24
25
  1. Add `repack` to your gemfile
25
26
  2. Run `bundle install` to install the gem
26
- 3. Run `bundle exec rails generate repack:install` to copy across example files
27
+ 3. See `Install Options` above and use 1 option
27
28
  4. Run `npm run dev_server` (or `yarn run dev_server`) to start `webpack-dev-server`
28
29
  5. Add the webpack entry point to your layout (see next section)
29
30
  6. Edit `client/application.js` and write some code
@@ -58,6 +59,7 @@ If you're using the webpack dev server's live reload feature (not the React hot
58
59
  * The manifest file is named `manifest.json`
59
60
 
60
61
  ## View Generator
62
+
61
63
  1. Generate a controller
62
64
  2. Add at least an index route for the controller
63
65
  3. rails g repack:view name_of_view (should match controller name)
@@ -123,6 +125,7 @@ An alternative to adding the post build hook to `package.json` is to add `rake r
123
125
  If you're using `[chunkhash]` in your build asset filenames (which you should be, if you want to cache them in production), you'll need to persist built assets between deployments. Consider in-flight requests at the time of deployment: they'll receive paths based on the old `manifest.json`, not the new one.
124
126
 
125
127
  ## Example Apps
128
+
126
129
  * [basic](https://github.com/cottonwoodcoding/webpack-rails-react-basic)
127
130
  * [react-router](https://github.com/cottonwoodcoding/webpack-rails-react-router)
128
131
  * [redux](https://github.com/cottonwoodcoding/webpack-rails-react-redux)
@@ -134,8 +137,6 @@ If you're using `[chunkhash]` in your build asset filenames (which you should be
134
137
  * Integration tests
135
138
  * Port example apps to Repack
136
139
 
137
-
138
-
139
140
  ## Contributing
140
141
 
141
142
  Pull requests & issues welcome. Advice & criticism regarding webpack config approach also welcome.
@@ -0,0 +1,59 @@
1
+ import { browserHistory } from 'react-router';
2
+ import { setFlash } from './flash';
3
+ import Auth from 'j-toker';
4
+
5
+ const logout = () => {
6
+ return { type: 'LOGOUT' }
7
+ }
8
+
9
+ const login = (user) => {
10
+ return { type: 'LOGIN', user }
11
+ }
12
+
13
+ const authErrors = (errors) => {
14
+ let message = '';
15
+ let msgType = 'error';
16
+ errors.forEach( error => {
17
+ message += `${error} `
18
+ });
19
+ return { type: 'SET_FLASH', message, msgType }
20
+ }
21
+
22
+ export const handleLogin = (email, password) => {
23
+ return(dispatch) => {
24
+ Auth.emailSignIn({
25
+ email,
26
+ password
27
+ }).then( user => {
28
+ dispatch(login(user.data));
29
+ browserHistory.push('/');
30
+ }).fail( res => {
31
+ dispatch(authErrors(res.data.errors));
32
+ });
33
+ }
34
+ }
35
+
36
+ export const handleLogout = () => {
37
+ return(dispatch) => {
38
+ Auth.signOut()
39
+ .then( res => {
40
+ dispatch(logout());
41
+ browserHistory.push('/login');
42
+ });
43
+ }
44
+ }
45
+
46
+ export const handleSignUp = (email, password) => {
47
+ return(dispatch) => {
48
+ Auth.emailSignUp({
49
+ email,
50
+ password,
51
+ password_confirmation: password
52
+ }).then( user => {
53
+ dispatch(login(user.data));
54
+ browserHistory.push('/');
55
+ }).fail( res => {
56
+ dispatch(authErrors(res.data.errors.full_messages));
57
+ });
58
+ }
59
+ }
@@ -1,11 +1,8 @@
1
1
  import React from 'react';
2
2
 
3
3
  class Loading extends React.Component {
4
- constructor(props) {
5
- super(props);
6
- this.state = { isLoading: false };
7
- let destructTimeout;
8
- }
4
+ state = { isLoading: false };
5
+ destructTimeout;
9
6
 
10
7
  componentDidMount() {
11
8
  this.setState({ isLoading: true });
@@ -22,18 +19,17 @@ class Loading extends React.Component {
22
19
  }
23
20
 
24
21
  render() {
25
- if(this.state.isLoading) {
26
- this.selfDestruct();
27
- } else {
28
- clearTimeout(this.destructTimeout);
29
- }
22
+ let { info } = this.props;
23
+ info = info === undefined ? '' : info
30
24
 
25
+ if(this.state.isLoading)
26
+ this.selfDestruct();
31
27
  return (
32
28
  <div>
33
29
  { this.state.isLoading ?
34
- <span className="loading">{`Loading ${this.props.info}`}</span>
30
+ <span className="loading">{`Loading ${info}`}</span>
35
31
  :
36
- <span>{`No ${this.props.info} found`}</span>
32
+ <span>{`No ${info} found`}</span>
37
33
  }
38
34
  </div>
39
35
  )
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import { connect } from 'react-redux';
3
+ import Navbar from '../components/Navbar';
4
+ import FlashMessage from '../components/FlashMessage';
5
+ import { clearFlash } from '../actions/flash';
6
+ import Auth from 'j-toker';
7
+
8
+ class App extends React.Component {
9
+ componentDidMount() {
10
+ let { dispatch, history } = this.props;
11
+
12
+ Auth.configure({
13
+ apiUrl: '/api'
14
+ });
15
+
16
+ Auth.validateToken()
17
+ .then( user => {
18
+ dispatch({ type: 'LOGIN', ...user.data });
19
+ })
20
+ .fail( () => {
21
+ history.push('/login');
22
+ });
23
+ }
24
+
25
+ componentDidUpdate() {
26
+ let { dispatch, history } = this.props;
27
+ dispatch(clearFlash());
28
+ }
29
+
30
+ render() {
31
+ let { auth, children } = this.props;
32
+
33
+ return(
34
+ <div>
35
+ <Navbar />
36
+ <div style={{ marginBottom: '30px' }}>
37
+ <FlashMessage />
38
+ </div>
39
+ <div className='container'>
40
+ { children }
41
+ </div>
42
+ </div>
43
+ );
44
+ }
45
+ }
46
+
47
+ export default connect()(App);
48
+
@@ -1,8 +1,9 @@
1
- const auth = (state = {}, action) => {
1
+ const auth = (state = { loading: true }, action) => {
2
2
  switch(action.type) {
3
3
  case 'LOGIN':
4
4
  return {
5
5
  isAuthenticated: true,
6
+ loading: false,
6
7
  ...action.user
7
8
  }
8
9
  case 'LOGOUT':
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Route, IndexRoute, browserHistory } from 'react-router';
3
+ import App from './containers/App';
4
+ import NoMatch from './components/NoMatch';
5
+ import Login from './components/Login';
6
+ import SignUp from './components/SignUp';
7
+ import { UserAuthWrapper } from 'redux-auth-wrapper';
8
+ import Loading from './components/Loading';
9
+
10
+ const UserIsAuthenticated = UserAuthWrapper({
11
+ authSelector: state => state.auth,
12
+ predicate: auth => auth.isAuthenticated,
13
+ authenticatingSelector: state => state.auth.loading,
14
+ LoadingComponent: Loading
15
+ });
16
+
17
+ export default (
18
+ <Route>
19
+
20
+ <Route path="/" component={App}>
21
+ <Route path='/login' component={Login} />
22
+ <Route path='/sign_up' component={SignUp} />
23
+ </Route>
24
+
25
+ <Route path="*" status={404} component={NoMatch} />
26
+ </Route>
27
+ )
@@ -0,0 +1,212 @@
1
+ module Repack
2
+ # :nodoc:
3
+ class GodInstallGenerator < ::Rails::Generators::Base
4
+ source_root File.expand_path("../../../../example", __FILE__)
5
+ desc "Install everything you need for a basic repack integration with react router / redux / devise / token auth"
6
+
7
+ def check_god_mode
8
+ unless yes?('Is this a new application? (yes \ no)')
9
+ raise 'GOD MODE is for new apps only. Run again at your own risk!'
10
+ end
11
+ end
12
+
13
+ def copy_package_json
14
+ copy_file "package.json", "package.json"
15
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
16
+ <<-'RUBY'
17
+ "react-router": "^2.4.1",
18
+ "react-redux": "^4.4.5",
19
+ "redux": "^3.5.2",
20
+ "redux-thunk": "^2.1.0",
21
+ "react-router-redux": "^4.0.5",
22
+ "redux-auth-wrapper": "^1.0.0",
23
+ RUBY
24
+ end
25
+ end
26
+
27
+ def copy_webpack_conf
28
+ copy_file "webpack.config.js", "config/webpack.config.js"
29
+ if yes?('Are you going to be deploying to heroku? (yes \ no)')
30
+ puts 'Copying Heroku Webpack Config!'
31
+ copy_file "webpack.config.heroku.js", "config/webpack.config.heroku.js"
32
+ puts 'Adding Basic Puma Proc File'
33
+ copy_file "Procfile", 'Procfile'
34
+ end
35
+ end
36
+
37
+ def create_webpack_application_js
38
+ empty_directory "client"
39
+ empty_directory "client/containers"
40
+ empty_directory "client/components"
41
+ empty_directory "client/__tests__"
42
+ empty_directory "client/__tests__/__mocks__"
43
+ copy_file "babelrc", "./.babelrc"
44
+ copy_file "styleMock.js", "client/__tests__/__mocks__/styleMock.js"
45
+ copy_file "fileMock.js", "client/__tests__/__mocks__/fileMock.js"
46
+ end
47
+
48
+ def layouts
49
+ layouts_dir = 'app/views/layouts'
50
+
51
+ application_view = "#{layouts_dir}/application.html.erb"
52
+
53
+ insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
54
+ <% if Rails.env.development? %>
55
+ <script src="http://localhost:3808/webpack-dev-server.js"></script>
56
+ <% end %>
57
+ RUBY
58
+ end
59
+ insert_into_file application_view, before: /<\/body>/ do <<-'RUBY'
60
+ <%= javascript_include_tag *webpack_asset_paths('application') %>
61
+ RUBY
62
+ end
63
+ end
64
+
65
+ def add_to_gitignore
66
+ append_to_file ".gitignore" do
67
+ <<-EOF.strip_heredoc
68
+ /node_modules
69
+ /public/webpack
70
+ npm-debug.log
71
+ EOF
72
+ end
73
+ end
74
+
75
+ def self.frontend_config(frontend_gem, sheet_imports, sheet_name = 'application.css', new_sheet_name = 'application.scss')
76
+ begin
77
+ gem frontend_gem
78
+ File.rename "app/assets/stylesheets/#{sheet_name}", "app/assets/stylesheets/#{new_sheet_name}"
79
+ File.open("app/assets/stylesheets/#{new_sheet_name}", 'w+') do |f|
80
+ sheet_imports.each do |import|
81
+ f.write("@import #{import}; \n")
82
+ end
83
+ end
84
+ rescue => e
85
+ puts "Error While Setting Up Frontend Framework: #{e}"
86
+ end
87
+ end
88
+
89
+ def finishing_god_move
90
+ base_sheet_path = "app/assets/stylesheets"
91
+ nav_template = ask('Frontend Framework: 1) Materialize, 2) Bootstrap, 3) None').strip
92
+ case nav_template
93
+ when '1'
94
+ sheet_imports = [ 'materialize', 'alert' ]
95
+ gem 'materialize-sass'
96
+ if File.exists? "#{base_sheet_path}/application.css"
97
+ File.rename "#{base_sheet_path}/application.css", "#{base_sheet_path}/application.scss"
98
+ end
99
+ File.open("#{base_sheet_path}/application.scss", 'w+') do |f|
100
+ sheet_imports.each do |import|
101
+ f.write("@import '#{import}'; \n")
102
+ end
103
+ end
104
+ copy_file "boilerplate/god_mode/components/MaterialNavbar.js", "client/components/Navbar.js"
105
+ when '2'
106
+ sheet_imports = [ 'bootstrap-sprockets', 'bootstrap', 'alert' ]
107
+ gem 'bootstrap-sass'
108
+ if File.exists? "#{base_sheet_path}/application.css"
109
+ File.rename "#{base_sheet_path}/application.css", "#{base_sheet_path}/application.scss"
110
+ end
111
+ File.open("#{base_sheet_path}/application.scss", 'w+') do |f|
112
+ sheet_imports.each do |import|
113
+ f.write("@import '#{import}'; \n")
114
+ end
115
+ end
116
+ copy_file "boilerplate/god_mode/components/BootstrapNavbar.js", "client/components/Navbar.js"
117
+ when '3'
118
+ puts 'No Navbar template, all the components are ready for you to implement however you want.'
119
+ else
120
+ puts 'Wrong template choice, try again!'
121
+ finishing_god_move
122
+ end
123
+
124
+ if nav_template == '3'
125
+ copy_file "boilerplate/god_mode/containers/NoNavApp.js", "client/containers/App.js"
126
+ else
127
+ copy_file "boilerplate/god_mode/containers/TokenApp.js", "client/containers/App.js"
128
+ end
129
+
130
+ copy_file "boilerplate/router_redux/application.js", "client/application.js"
131
+ copy_file "boilerplate/god_mode/tokenRoutes.js", "client/routes.js"
132
+ copy_file "boilerplate/router_redux/store.js", "client/store.js"
133
+ copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
134
+ copy_file "boilerplate/god_mode/actions/tokenAuth.js", "client/actions/auth.js"
135
+ copy_file "boilerplate/god_mode/actions/flash.js", "client/actions/flash.js"
136
+ copy_file "boilerplate/god_mode/components/FlashMessage.js", "client/components/FlashMessage.js"
137
+ copy_file "boilerplate/god_mode/components/Login.js", "client/components/Login.js"
138
+ copy_file "boilerplate/god_mode/components/SignUp.js", "client/components/SignUp.js"
139
+ copy_file "boilerplate/god_mode/components/Loading.js", "client/components/Loading.js"
140
+ copy_file "boilerplate/god_mode/reducers/auth.js", "client/reducers/auth.js"
141
+ copy_file "boilerplate/god_mode/reducers/flash.js", "client/reducers/flash.js"
142
+ copy_file "boilerplate/god_mode/reducers/index.js", "client/reducers/index.js"
143
+ copy_file "boilerplate/god_mode/scss/alert.css.scss", "app/assets/stylesheets/alert.css.scss"
144
+
145
+ gem "devise"
146
+ gem 'omniauth'
147
+ gem 'devise_token_auth'
148
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
149
+ <<-'RUBY'
150
+ "j-toker": "^0.0.10-beta3",
151
+ RUBY
152
+ end
153
+
154
+ insert_into_file './app/controllers/application_controller.rb', after: /ActionController::Base\n/ do
155
+ <<-'RUBY'
156
+ skip_before_action :verify_authenticity_token
157
+ RUBY
158
+ end
159
+
160
+ Bundler.with_clean_env do
161
+ run "bundle update"
162
+ end
163
+
164
+ run 'bin/spring stop'
165
+ generate "devise:install"
166
+ run "bundle exec rake db:create"
167
+ model_name = ask("What would you like the devise model to be called? [user]")
168
+ model_name = "user" if model_name.blank?
169
+
170
+ mount_point = ask("Auth Mount Point [api/auth]")
171
+ mount_point = "api/auth" if mount_point.blank?
172
+ generate "devise_token_auth:install #{model_name.titleize} #{mount_point}"
173
+
174
+ run 'bundle exec rake db:migrate'
175
+ end
176
+
177
+ def whats_next
178
+ puts <<-EOF.strip_heredoc
179
+ ██████╗ ██████╗ ██████╗ ███╗ ███╗ ██████╗ ██████╗ ███████╗ ███████╗███╗ ██╗ █████╗ ██████╗ ██╗ ███████╗██████╗
180
+ ██╔════╝ ██╔═══██╗██╔══██╗ ████╗ ████║██╔═══██╗██╔══██╗██╔════╝ ██╔════╝████╗ ██║██╔══██╗██╔══██╗██║ ██╔════╝██╔══██╗
181
+ ██║ ███╗██║ ██║██║ ██║ ██╔████╔██║██║ ██║██║ ██║█████╗ █████╗ ██╔██╗ ██║███████║██████╔╝██║ █████╗ ██║ ██║
182
+ ██║ ██║██║ ██║██║ ██║ ██║╚██╔╝██║██║ ██║██║ ██║██╔══╝ ██╔══╝ ██║╚██╗██║██╔══██║██╔══██╗██║ ██╔══╝ ██║ ██║
183
+ ╚██████╔╝╚██████╔╝██████╔╝ ██║ ╚═╝ ██║╚██████╔╝██████╔╝███████╗ ███████╗██║ ╚████║██║ ██║██████╔╝███████╗███████╗██████╔╝
184
+ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚═════╝
185
+
186
+ Note: If you chose a frontend framework (Materialize / Bootstrap) you still need to install the gem and configure it in your project.
187
+
188
+ EOF
189
+ puts <<-EOF.strip_heredoc
190
+ We've set up the basics of repack for you, but you'll still
191
+ need to:
192
+ 1. yarn install or npm install
193
+ 2. Add an element with an id of 'app' to your layout
194
+ 3. To disable hot module replacement remove <script src="http://localhost:3808/webpack-dev-server.js"></script> from layout
195
+ 4. Run 'yarn / npm dev_server' to run the webpack-dev-server
196
+ 5. Run 'bundle exec rails s' to run the rails server (both servers must be running)
197
+ 6. If you are using react-router or god mode and want to sync server routes add:
198
+ get '*unmatched_route', to: <your client controller>#<default action>
199
+ This must be the very last route in your routes.rb file
200
+ e.g. get '*unmatched_route', to: 'home#index'
201
+ FOR HEROKU DEPLOYS:
202
+ 1. yarn / npm heroku-setup
203
+ 2. Push to heroku the post-build hook will take care of the rest
204
+ See the README.md for this gem at
205
+ https://github.com/cottonwoodcoding/repack/blob/master/README.md
206
+ for more info.
207
+
208
+ Thanks for using Repack!
209
+ EOF
210
+ end
211
+ end
212
+ end
@@ -1,47 +1,11 @@
1
1
  module Repack
2
2
  # :nodoc:
3
3
  class InstallGenerator < ::Rails::Generators::Base
4
- @yarn_installed = false
5
4
  source_root File.expand_path("../../../../example", __FILE__)
6
5
  desc "Install everything you need for a basic repack integration"
7
- class_option :router, type: :boolean, default: false, description: 'Add React Router'
8
- class_option :redux, type: :boolean, default: false, description: 'Add Redux'
9
- class_option :god, type: :boolean, default: false, description: 'Router, Redux, Devise, Auth, GOD'
10
-
11
- def check_god_mode
12
- if options[:god]
13
- unless yes?('Is this is new application?')
14
- raise 'GOD MODE is for new apps only. Run again at your own risk!'
15
- end
16
- end
17
- end
18
6
 
19
7
  def copy_package_json
20
8
  copy_file "package.json", "package.json"
21
- if options[:router] || options[:god]
22
- insert_into_file './package.json', after: /dependencies\": {\n/ do
23
- <<-'RUBY'
24
- "react-router": "^2.4.1",
25
- RUBY
26
- end
27
- end
28
- if options[:redux] || options[:god]
29
- insert_into_file './package.json', after: /dependencies\": {\n/ do
30
- <<-'RUBY'
31
- "react-redux": "^4.4.5",
32
- "redux": "^3.5.2",
33
- "redux-thunk": "^2.1.0",
34
- RUBY
35
- end
36
- end
37
- if options[:router] && options[:redux] || options[:god]
38
- insert_into_file './package.json', after: /dependencies\": {\n/ do
39
- <<-'RUBY'
40
- "react-router-redux": "^4.0.5",
41
- "redux-auth-wrapper": "^1.0.0",
42
- RUBY
43
- end
44
- end
45
9
  end
46
10
 
47
11
  def copy_webpack_conf
@@ -63,75 +27,25 @@ module Repack
63
27
  copy_file "babelrc", "./.babelrc"
64
28
  copy_file "styleMock.js", "client/__tests__/__mocks__/styleMock.js"
65
29
  copy_file "fileMock.js", "client/__tests__/__mocks__/fileMock.js"
66
- if options[:router] && options[:redux]
67
- copy_file "boilerplate/router_redux/application.js", "client/application.js"
68
- copy_file "boilerplate/routes.js", "client/routes.js"
69
- copy_file "boilerplate/router_redux/store.js", "client/store.js"
70
- copy_file "boilerplate/router_redux/reducers.js", "client/reducers/index.js"
71
- create_file "client/actions.js"
72
- copy_file "boilerplate/router/App.js", "client/containers/App.js"
73
- copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
74
- elsif options[:router]
75
- copy_file "boilerplate/router/application.js", "client/application.js"
76
- copy_file "boilerplate/routes.js", "client/routes.js"
77
- copy_file "boilerplate/router/App.js", "client/containers/App.js"
78
- copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
79
- elsif options[:redux]
80
- copy_file "boilerplate/redux/application.js", "client/application.js"
81
- copy_file "boilerplate/redux/store.js", "client/store.js"
82
- copy_file "boilerplate/redux/reducers.js", "client/reducers/index.js"
83
- create_file "client/actions.js"
84
- copy_file "boilerplate/App.js", "client/containers/App.js"
85
- else
86
- unless options[:god]
87
- copy_file "boilerplate/application.js", "client/application.js"
88
- copy_file "boilerplate/App.js", "client/containers/App.js"
89
- end
90
- end
91
-
92
- haml_installed = Gem.loaded_specs.has_key? 'haml-rails'
93
- layouts_dir = 'app/views/layouts'
94
- haml_installed = Gem.loaded_specs.has_key? 'haml-rails'
30
+ copy_file "boilerplate/application.js", "client/application.js"
31
+ copy_file "boilerplate/App.js", "client/containers/App.js"
32
+ end
33
+
34
+ def layouts
95
35
  layouts_dir = 'app/views/layouts'
96
36
 
97
- application_view = haml_installed ? "#{layouts_dir}/application.html.haml" : "#{layouts_dir}/application.html.erb"
98
-
99
- if haml_installed
100
- if yes?('Convert all existing ERB views into HAML? (yes / no)')
101
- begin
102
- require 'html2haml'
103
- rescue LoadError
104
- `gem install html2haml`
105
- end
106
- `find . -name \*.erb -print | sed 'p;s/.erb$/.haml/' | xargs -n2 html2haml`
107
- `rm #{layouts_dir}/application.html.erb`
108
- end
109
-
110
- insert_into_file application_view, before: /%body/ do
111
- <<-'RUBY'
112
- - if Rails.env.development?
113
- %script{:src => "http://localhost:3808/webpack-dev-server.js"}
114
- RUBY
115
- end
116
-
117
- insert_into_file application_view, after: /= yield/ do
118
- <<-'RUBY'
37
+ application_view = "#{layouts_dir}/application.html.erb"
119
38
 
120
- = javascript_include_tag *webpack_asset_paths('application')
121
- RUBY
122
- end
123
- else
124
- insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
125
- <% if Rails.env.development? %>
126
- <script src="http://localhost:3808/webpack-dev-server.js"></script>
127
- <% end %>
39
+ insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
40
+ <% if Rails.env.development? %>
41
+ <script src="http://localhost:3808/webpack-dev-server.js"></script>
42
+ <% end %>
128
43
  RUBY
129
44
  end
130
45
  insert_into_file application_view, before: /<\/body>/ do <<-'RUBY'
131
46
  <%= javascript_include_tag *webpack_asset_paths('application') %>
132
47
  RUBY
133
48
  end
134
- end
135
49
  end
136
50
 
137
51
  def add_to_gitignore
@@ -144,91 +58,7 @@ module Repack
144
58
  end
145
59
  end
146
60
 
147
- def finishing_god_move
148
- if options[:god]
149
- nav_template = ask('Frontend Framework: 1) Materialize, 2) Bootstrap, 3) None').strip
150
- case nav_template
151
- when '1'
152
- copy_file "boilerplate/god_mode/components/MaterialNavbar.js", "client/components/Navbar.js"
153
- when '2'
154
- copy_file "boilerplate/god_mode/components/BootstrapNavbar.js", "client/components/Navbar.js"
155
- when '3'
156
- puts 'No Navbar template, all the components are ready for you to implement however you want.'
157
- else
158
- puts 'Wrong template choice, try again!'
159
- finishing_god_move
160
- end
161
-
162
- if nav_template == '3'
163
- copy_file "boilerplate/god_mode/containers/NoNavApp.js", "client/containers/App.js"
164
- else
165
- copy_file "boilerplate/god_mode/containers/App.js", "client/containers/App.js"
166
- end
167
-
168
- copy_file "boilerplate/router_redux/application.js", "client/application.js"
169
- copy_file "boilerplate/god_mode/routes.js", "client/routes.js"
170
- copy_file "boilerplate/router_redux/store.js", "client/store.js"
171
- copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
172
- copy_file "boilerplate/god_mode/actions/auth.js", "client/actions/auth.js"
173
- copy_file "boilerplate/god_mode/actions/flash.js", "client/actions/flash.js"
174
- copy_file "boilerplate/god_mode/components/FlashMessage.js", "client/components/FlashMessage.js"
175
- copy_file "boilerplate/god_mode/components/Login.js", "client/components/Login.js"
176
- copy_file "boilerplate/god_mode/components/SignUp.js", "client/components/SignUp.js"
177
- copy_file "boilerplate/god_mode/components/Loading.js", "client/components/Loading.js"
178
- copy_file "boilerplate/god_mode/reducers/auth.js", "client/reducers/auth.js"
179
- copy_file "boilerplate/god_mode/reducers/flash.js", "client/reducers/flash.js"
180
- copy_file "boilerplate/god_mode/reducers/index.js", "client/reducers/index.js"
181
- copy_file "boilerplate/god_mode/controllers/api/users_controller.rb", "app/controllers/api/users_controller.rb"
182
- copy_file "boilerplate/god_mode/scss/alert.css.scss", "app/assets/stylesheets/alert.css.scss"
183
-
184
- gem "devise"
185
- Bundler.with_clean_env do
186
- run "bundle install"
187
- end
188
-
189
- run 'bin/spring stop'
190
- generate "devise:install"
191
- run "bundle exec rake db:create"
192
- model_name = ask("What would you like the user model to be called? [user]")
193
- model_name = "user" if model_name.blank?
194
- generate "devise", model_name
195
- generate "devise:controllers #{model_name.pluralize}"
196
-
197
- insert_into_file 'config/routes.rb', after: /devise_for :users/ do <<-'RUBY'
198
- , controllers: {
199
- sessions: 'users/sessions',
200
- registrations: 'users/registrations'
201
- }
202
- namespace :api do
203
- get 'logged_in_user', to: 'users#logged_in_user'
204
- end
205
- RUBY
206
- end
207
- ['./app/controllers/users/sessions_controller.rb', './app/controllers/users/registrations_controller.rb'].each do |c|
208
- insert_into_file c, after: /Devise::\W*.*\n/ do <<-'RUBY'
209
- skip_before_action :verify_authenticity_token
210
- respond_to :json
211
- RUBY
212
- end
213
- end
214
- end
215
- run 'bundle exec rake db:migrate'
216
- end
217
-
218
61
  def whats_next
219
- if options[:god]
220
- puts <<-EOF.strip_heredoc
221
- ██████╗ ██████╗ ██████╗ ███╗ ███╗ ██████╗ ██████╗ ███████╗ ███████╗███╗ ██╗ █████╗ ██████╗ ██╗ ███████╗██████╗
222
- ██╔════╝ ██╔═══██╗██╔══██╗ ████╗ ████║██╔═══██╗██╔══██╗██╔════╝ ██╔════╝████╗ ██║██╔══██╗██╔══██╗██║ ██╔════╝██╔══██╗
223
- ██║ ███╗██║ ██║██║ ██║ ██╔████╔██║██║ ██║██║ ██║█████╗ █████╗ ██╔██╗ ██║███████║██████╔╝██║ █████╗ ██║ ██║
224
- ██║ ██║██║ ██║██║ ██║ ██║╚██╔╝██║██║ ██║██║ ██║██╔══╝ ██╔══╝ ██║╚██╗██║██╔══██║██╔══██╗██║ ██╔══╝ ██║ ██║
225
- ╚██████╔╝╚██████╔╝██████╔╝ ██║ ╚═╝ ██║╚██████╔╝██████╔╝███████╗ ███████╗██║ ╚████║██║ ██║██████╔╝███████╗███████╗██████╔╝
226
- ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚═════╝
227
-
228
- Note: If you chose a frontend framework (Materialize / Bootstrap) you still need to install the gem and configure it in your project.
229
-
230
- EOF
231
- end
232
62
  puts <<-EOF.strip_heredoc
233
63
  We've set up the basics of repack for you, but you'll still
234
64
  need to:
@@ -0,0 +1,95 @@
1
+ module Repack
2
+ # :nodoc:
3
+ class ReduxInstallGenerator < ::Rails::Generators::Base
4
+ source_root File.expand_path("../../../../example", __FILE__)
5
+ desc "Install everything you need for a basic repack integration and redux for state management"
6
+
7
+ def copy_package_json
8
+ copy_file "package.json", "package.json"
9
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
10
+ <<-'RUBY'
11
+ "react-redux": "^4.4.5",
12
+ "redux": "^3.5.2",
13
+ "redux-thunk": "^2.1.0",
14
+ RUBY
15
+ end
16
+ end
17
+
18
+ def copy_webpack_conf
19
+ copy_file "webpack.config.js", "config/webpack.config.js"
20
+ if yes?('Are you going to be deploying to heroku? (yes \ no)')
21
+ puts 'Copying Heroku Webpack Config!'
22
+ copy_file "webpack.config.heroku.js", "config/webpack.config.heroku.js"
23
+ puts 'Adding Basic Puma Proc File'
24
+ copy_file "Procfile", 'Procfile'
25
+ end
26
+ end
27
+
28
+ def create_webpack_application_js
29
+ empty_directory "client"
30
+ empty_directory "client/containers"
31
+ empty_directory "client/components"
32
+ empty_directory "client/__tests__"
33
+ empty_directory "client/__tests__/__mocks__"
34
+ copy_file "babelrc", "./.babelrc"
35
+ copy_file "styleMock.js", "client/__tests__/__mocks__/styleMock.js"
36
+ copy_file "fileMock.js", "client/__tests__/__mocks__/fileMock.js"
37
+ copy_file "boilerplate/redux/application.js", "client/application.js"
38
+ copy_file "boilerplate/redux/store.js", "client/store.js"
39
+ copy_file "boilerplate/redux/reducers.js", "client/reducers/index.js"
40
+ create_file "client/actions.js"
41
+ copy_file "boilerplate/App.js", "client/containers/App.js"
42
+ end
43
+
44
+ def layouts
45
+ layouts_dir = 'app/views/layouts'
46
+
47
+ application_view = "#{layouts_dir}/application.html.erb"
48
+
49
+ insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
50
+ <% if Rails.env.development? %>
51
+ <script src="http://localhost:3808/webpack-dev-server.js"></script>
52
+ <% end %>
53
+ RUBY
54
+ end
55
+ insert_into_file application_view, before: /<\/body>/ do <<-'RUBY'
56
+ <%= javascript_include_tag *webpack_asset_paths('application') %>
57
+ RUBY
58
+ end
59
+ end
60
+
61
+ def add_to_gitignore
62
+ append_to_file ".gitignore" do
63
+ <<-EOF.strip_heredoc
64
+ /node_modules
65
+ /public/webpack
66
+ npm-debug.log
67
+ EOF
68
+ end
69
+ end
70
+
71
+ def whats_next
72
+ puts <<-EOF.strip_heredoc
73
+ We've set up the basics of repack for you, but you'll still
74
+ need to:
75
+ 1. yarn install or npm install
76
+ 2. Add an element with an id of 'app' to your layout
77
+ 3. To disable hot module replacement remove <script src="http://localhost:3808/webpack-dev-server.js"></script> from layout
78
+ 4. Run 'yarn / npm dev_server' to run the webpack-dev-server
79
+ 5. Run 'bundle exec rails s' to run the rails server (both servers must be running)
80
+ 6. If you are using react-router or god mode and want to sync server routes add:
81
+ get '*unmatched_route', to: <your client controller>#<default action>
82
+ This must be the very last route in your routes.rb file
83
+ e.g. get '*unmatched_route', to: 'home#index'
84
+ FOR HEROKU DEPLOYS:
85
+ 1. yarn / npm heroku-setup
86
+ 2. Push to heroku the post-build hook will take care of the rest
87
+ See the README.md for this gem at
88
+ https://github.com/cottonwoodcoding/repack/blob/master/README.md
89
+ for more info.
90
+
91
+ Thanks for using Repack!
92
+ EOF
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,93 @@
1
+ module Repack
2
+ # :nodoc:
3
+ class RouterInstallGenerator < ::Rails::Generators::Base
4
+ source_root File.expand_path("../../../../example", __FILE__)
5
+ desc "Install everything you need for a basic repack integration with react router"
6
+
7
+ def copy_package_json
8
+ copy_file "package.json", "package.json"
9
+
10
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
11
+ <<-'RUBY'
12
+ "react-router": "^2.4.1",
13
+ RUBY
14
+ end
15
+ end
16
+
17
+ def copy_webpack_conf
18
+ copy_file "webpack.config.js", "config/webpack.config.js"
19
+ if yes?('Are you going to be deploying to heroku? (yes \ no)')
20
+ puts 'Copying Heroku Webpack Config!'
21
+ copy_file "webpack.config.heroku.js", "config/webpack.config.heroku.js"
22
+ puts 'Adding Basic Puma Proc File'
23
+ copy_file "Procfile", 'Procfile'
24
+ end
25
+ end
26
+
27
+ def create_webpack_application_js
28
+ empty_directory "client"
29
+ empty_directory "client/containers"
30
+ empty_directory "client/components"
31
+ empty_directory "client/__tests__"
32
+ empty_directory "client/__tests__/__mocks__"
33
+ copy_file "babelrc", "./.babelrc"
34
+ copy_file "styleMock.js", "client/__tests__/__mocks__/styleMock.js"
35
+ copy_file "fileMock.js", "client/__tests__/__mocks__/fileMock.js"
36
+ copy_file "boilerplate/router/application.js", "client/application.js"
37
+ copy_file "boilerplate/routes.js", "client/routes.js"
38
+ copy_file "boilerplate/router/App.js", "client/containers/App.js"
39
+ copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
40
+ end
41
+
42
+ def layouts
43
+ layouts_dir = 'app/views/layouts'
44
+
45
+ application_view = "#{layouts_dir}/application.html.erb"
46
+
47
+ insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
48
+ <% if Rails.env.development? %>
49
+ <script src="http://localhost:3808/webpack-dev-server.js"></script>
50
+ <% end %>
51
+ RUBY
52
+ end
53
+ insert_into_file application_view, before: /<\/body>/ do <<-'RUBY'
54
+ <%= javascript_include_tag *webpack_asset_paths('application') %>
55
+ RUBY
56
+ end
57
+ end
58
+
59
+ def add_to_gitignore
60
+ append_to_file ".gitignore" do
61
+ <<-EOF.strip_heredoc
62
+ /node_modules
63
+ /public/webpack
64
+ npm-debug.log
65
+ EOF
66
+ end
67
+ end
68
+
69
+ def whats_next
70
+ puts <<-EOF.strip_heredoc
71
+ We've set up the basics of repack for you, but you'll still
72
+ need to:
73
+ 1. yarn install or npm install
74
+ 2. Add an element with an id of 'app' to your layout
75
+ 3. To disable hot module replacement remove <script src="http://localhost:3808/webpack-dev-server.js"></script> from layout
76
+ 4. Run 'yarn / npm dev_server' to run the webpack-dev-server
77
+ 5. Run 'bundle exec rails s' to run the rails server (both servers must be running)
78
+ 6. If you are using react-router or god mode and want to sync server routes add:
79
+ get '*unmatched_route', to: <your client controller>#<default action>
80
+ This must be the very last route in your routes.rb file
81
+ e.g. get '*unmatched_route', to: 'home#index'
82
+ FOR HEROKU DEPLOYS:
83
+ 1. yarn / npm heroku-setup
84
+ 2. Push to heroku the post-build hook will take care of the rest
85
+ See the README.md for this gem at
86
+ https://github.com/cottonwoodcoding/repack/blob/master/README.md
87
+ for more info.
88
+
89
+ Thanks for using Repack!
90
+ EOF
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,108 @@
1
+ module Repack
2
+ # :nodoc:
3
+ class RouterReduxInstallGenerator < ::Rails::Generators::Base
4
+ source_root File.expand_path("../../../../example", __FILE__)
5
+ desc "Install everything you need for a basic repack integration with react router and redux"
6
+
7
+ def copy_package_json
8
+ copy_file "package.json", "package.json"
9
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
10
+ <<-'RUBY'
11
+ "react-router": "^2.4.1",
12
+ RUBY
13
+ end
14
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
15
+ <<-'RUBY'
16
+ "react-redux": "^4.4.5",
17
+ "redux": "^3.5.2",
18
+ "redux-thunk": "^2.1.0",
19
+ RUBY
20
+ end
21
+ insert_into_file './package.json', after: /dependencies\": {\n/ do
22
+ <<-'RUBY'
23
+ "react-router-redux": "^4.0.5",
24
+ "redux-auth-wrapper": "^1.0.0",
25
+ RUBY
26
+ end
27
+ end
28
+
29
+ def copy_webpack_conf
30
+ copy_file "webpack.config.js", "config/webpack.config.js"
31
+ if yes?('Are you going to be deploying to heroku? (yes \ no)')
32
+ puts 'Copying Heroku Webpack Config!'
33
+ copy_file "webpack.config.heroku.js", "config/webpack.config.heroku.js"
34
+ puts 'Adding Basic Puma Proc File'
35
+ copy_file "Procfile", 'Procfile'
36
+ end
37
+ end
38
+
39
+ def create_webpack_application_js
40
+ empty_directory "client"
41
+ empty_directory "client/containers"
42
+ empty_directory "client/components"
43
+ empty_directory "client/__tests__"
44
+ empty_directory "client/__tests__/__mocks__"
45
+ copy_file "babelrc", "./.babelrc"
46
+ copy_file "styleMock.js", "client/__tests__/__mocks__/styleMock.js"
47
+ copy_file "fileMock.js", "client/__tests__/__mocks__/fileMock.js"
48
+ copy_file "boilerplate/router_redux/application.js", "client/application.js"
49
+ copy_file "boilerplate/routes.js", "client/routes.js"
50
+ copy_file "boilerplate/router_redux/store.js", "client/store.js"
51
+ copy_file "boilerplate/router_redux/reducers.js", "client/reducers/index.js"
52
+ create_file "client/actions.js"
53
+ copy_file "boilerplate/router/App.js", "client/containers/App.js"
54
+ copy_file "boilerplate/router/NoMatch.js", "client/components/NoMatch.js"
55
+ end
56
+
57
+ def layouts
58
+ layouts_dir = 'app/views/layouts'
59
+
60
+ application_view = "#{layouts_dir}/application.html.erb"
61
+
62
+ insert_into_file application_view, before: /<\/head>/ do <<-'RUBY'
63
+ <% if Rails.env.development? %>
64
+ <script src="http://localhost:3808/webpack-dev-server.js"></script>
65
+ <% end %>
66
+ RUBY
67
+ end
68
+ insert_into_file application_view, before: /<\/body>/ do <<-'RUBY'
69
+ <%= javascript_include_tag *webpack_asset_paths('application') %>
70
+ RUBY
71
+ end
72
+ end
73
+
74
+ def add_to_gitignore
75
+ append_to_file ".gitignore" do
76
+ <<-EOF.strip_heredoc
77
+ /node_modules
78
+ /public/webpack
79
+ npm-debug.log
80
+ EOF
81
+ end
82
+ end
83
+
84
+ def whats_next
85
+ puts <<-EOF.strip_heredoc
86
+ We've set up the basics of repack for you, but you'll still
87
+ need to:
88
+ 1. yarn install or npm install
89
+ 2. Add an element with an id of 'app' to your layout
90
+ 3. To disable hot module replacement remove <script src="http://localhost:3808/webpack-dev-server.js"></script> from layout
91
+ 4. Run 'yarn / npm dev_server' to run the webpack-dev-server
92
+ 5. Run 'bundle exec rails s' to run the rails server (both servers must be running)
93
+ 6. If you are using react-router or god mode and want to sync server routes add:
94
+ get '*unmatched_route', to: <your client controller>#<default action>
95
+ This must be the very last route in your routes.rb file
96
+ e.g. get '*unmatched_route', to: 'home#index'
97
+ FOR HEROKU DEPLOYS:
98
+ 1. yarn / npm heroku-setup
99
+ 2. Push to heroku the post-build hook will take care of the rest
100
+ See the README.md for this gem at
101
+ https://github.com/cottonwoodcoding/repack/blob/master/README.md
102
+ for more info.
103
+
104
+ Thanks for using Repack!
105
+ EOF
106
+ end
107
+ end
108
+ end
@@ -1,3 +1,3 @@
1
1
  module Repack
2
- VERSION = "2.4.6"
2
+ VERSION = "3.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.6
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Jungst
@@ -9,22 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-04 00:00:00.000000000 Z
12
+ date: 2017-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">"
19
+ - !ruby/object:Gem::Version
20
+ version: 4.0.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">"
26
+ - !ruby/object:Gem::Version
27
+ version: 4.0.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: json
16
30
  requirement: !ruby/object:Gem::Requirement
17
31
  requirements:
18
32
  - - ">="
19
33
  - !ruby/object:Gem::Version
20
- version: 3.2.0
34
+ version: 2.0.0
21
35
  type: :runtime
22
36
  prerelease: false
23
37
  version_requirements: !ruby/object:Gem::Requirement
24
38
  requirements:
25
39
  - - ">="
26
40
  - !ruby/object:Gem::Version
27
- version: 3.2.0
41
+ version: 2.0.0
28
42
  description: Production-tested, JavaScript-first tooling to use webpack within your
29
43
  Rails application
30
44
  email:
@@ -43,6 +57,7 @@ files:
43
57
  - example/boilerplate/application.js
44
58
  - example/boilerplate/god_mode/actions/auth.js
45
59
  - example/boilerplate/god_mode/actions/flash.js
60
+ - example/boilerplate/god_mode/actions/tokenAuth.js
46
61
  - example/boilerplate/god_mode/components/BootstrapNavbar.js
47
62
  - example/boilerplate/god_mode/components/FlashMessage.js
48
63
  - example/boilerplate/god_mode/components/Loading.js
@@ -51,12 +66,14 @@ files:
51
66
  - example/boilerplate/god_mode/components/SignUp.js
52
67
  - example/boilerplate/god_mode/containers/App.js
53
68
  - example/boilerplate/god_mode/containers/NoNavApp.js
69
+ - example/boilerplate/god_mode/containers/TokenApp.js
54
70
  - example/boilerplate/god_mode/controllers/api/users_controller.rb
55
71
  - example/boilerplate/god_mode/reducers/auth.js
56
72
  - example/boilerplate/god_mode/reducers/flash.js
57
73
  - example/boilerplate/god_mode/reducers/index.js
58
74
  - example/boilerplate/god_mode/routes.js
59
75
  - example/boilerplate/god_mode/scss/alert.css.scss
76
+ - example/boilerplate/god_mode/tokenRoutes.js
60
77
  - example/boilerplate/redux/application.js
61
78
  - example/boilerplate/redux/reducers.js
62
79
  - example/boilerplate/redux/store.js
@@ -77,7 +94,11 @@ files:
77
94
  - example/styleMock.js
78
95
  - example/webpack.config.heroku.js
79
96
  - example/webpack.config.js
97
+ - lib/generators/repack/god_install_generator.rb
80
98
  - lib/generators/repack/install_generator.rb
99
+ - lib/generators/repack/redux_install_generator.rb
100
+ - lib/generators/repack/router_install_generator.rb
101
+ - lib/generators/repack/router_redux_install_generator.rb
81
102
  - lib/generators/repack/view_generator.rb
82
103
  - lib/repack.rb
83
104
  - lib/repack/helper.rb