react_on_rails 15.0.0.alpha.2 → 15.0.0.rc.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 +4 -4
- data/CHANGELOG.md +435 -78
- data/CONTRIBUTING.md +53 -35
- data/Gemfile.development_dependencies +1 -1
- data/Gemfile.lock +4 -4
- data/KUDOS.md +22 -1
- data/NEWS.md +48 -48
- data/PROJECTS.md +45 -40
- data/README.md +24 -16
- data/SUMMARY.md +62 -52
- data/eslint.config.ts +213 -0
- data/knip.ts +19 -10
- data/lib/generators/USAGE +1 -1
- data/lib/generators/react_on_rails/dev_tests_generator.rb +4 -8
- data/lib/generators/react_on_rails/templates/.eslintrc +1 -1
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css +2 -2
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorldServer.js +1 -1
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/shakapacker.yml +1 -1
- data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/reducers/helloWorldReducer.js +1 -1
- data/lib/react_on_rails/configuration.rb +52 -8
- data/lib/react_on_rails/controller.rb +4 -2
- data/lib/react_on_rails/helper.rb +16 -4
- data/lib/react_on_rails/packs_generator.rb +4 -10
- data/lib/react_on_rails/react_component/render_options.rb +13 -1
- data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +2 -0
- data/lib/react_on_rails/utils.rb +23 -0
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/tasks/assets.rake +1 -1
- data/tsconfig.eslint.json +6 -0
- data/tsconfig.json +3 -2
- metadata +5 -5
data/CONTRIBUTING.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
# Tips for Contributors
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
- [docs/contributor-info/Releasing](./docs/contributor-info/releasing.md) for instructions on releasing.
|
4
|
+
- [docs/contributor-info/pull-requests](./docs/contributor-info/pull-requests.md)
|
5
|
+
- See other docs in [docs/contributor-info](./docs/contributor-info)
|
6
|
+
|
7
|
+
## Prerequisites
|
8
|
+
|
9
|
+
- [Yalc](https://github.com/whitecolor/yalc) must be installed globally for most local development.
|
10
|
+
- After updating code via Git, to prepare all examples:
|
6
11
|
|
7
|
-
## To run tests:
|
8
|
-
* [Yalc](https://github.com/whitecolor/yalc) must be installed globally for most local development.
|
9
|
-
* After updating code via Git, to prepare all examples:
|
10
12
|
```sh
|
11
13
|
cd react_on_rails/
|
12
14
|
bundle && yarn && rake shakapacker_examples:gen_all && rake node_package && rake
|
@@ -16,23 +18,26 @@ See [Dev Initial Setup](#dev-initial-setup) below for, well... initial setup,
|
|
16
18
|
and [Running tests](#running-tests) for more details on running tests.
|
17
19
|
|
18
20
|
# IDE/IDE SETUP
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
|
22
|
+
It's critical to configure your IDE/editor to ignore certain directories. Otherwise, your IDE might slow to a crawl!
|
23
|
+
|
24
|
+
- /coverage
|
25
|
+
- /tmp
|
26
|
+
- /gen-examples
|
27
|
+
- /node_package/lib
|
28
|
+
- /node_modules
|
29
|
+
- /spec/dummy/app/assets/webpack
|
30
|
+
- /spec/dummy/log
|
31
|
+
- /spec/dummy/node_modules
|
32
|
+
- /spec/dummy/client/node_modules
|
33
|
+
- /spec/dummy/tmp
|
34
|
+
- /spec/react_on_rails/dummy-for-generators
|
32
35
|
|
33
36
|
# Configuring your test app to use your local fork
|
37
|
+
|
34
38
|
You can test the `react-on-rails` gem using your own external test app or the gem's internal `spec/dummy` app. The `spec/dummy` app is an example of the various setup techniques you can use with the gem.
|
35
|
-
|
39
|
+
|
40
|
+
```text
|
36
41
|
├── test_app
|
37
42
|
| └── client
|
38
43
|
└── react_on_rails
|
@@ -41,6 +46,7 @@ You can test the `react-on-rails` gem using your own external test app or the ge
|
|
41
46
|
```
|
42
47
|
|
43
48
|
## Testing the Ruby Gem
|
49
|
+
|
44
50
|
If you want to test the ruby parts of the gem with an application before you release a new version of the gem, you can specify the path to your local version via your test app's Gemfile:
|
45
51
|
|
46
52
|
```ruby
|
@@ -49,8 +55,9 @@ gem "react_on_rails", path: "../path-to-react-on-rails"
|
|
49
55
|
|
50
56
|
Note that you will need to bundle install after making this change, but also that **you will need to restart your Rails application if you make any changes to the gem**.
|
51
57
|
|
52
|
-
## Testing the Node package for
|
53
|
-
|
58
|
+
## Testing the Node package for React on Rails via Yalc
|
59
|
+
|
60
|
+
In addition to testing the Ruby parts out, you can also test the Node package parts of the gem with an external application. First, be **sure** to build the NPM package:
|
54
61
|
|
55
62
|
```sh
|
56
63
|
cd react_on_rails/
|
@@ -70,8 +77,10 @@ yalc add react-on-rails
|
|
70
77
|
```
|
71
78
|
|
72
79
|
The workflow is:
|
80
|
+
|
73
81
|
1. Make changes to the node package.
|
74
82
|
2. We need yalc to push and then run yarn:
|
83
|
+
|
75
84
|
```
|
76
85
|
cd <top dir>
|
77
86
|
# Will send the updates to other folders
|
@@ -93,6 +102,7 @@ Don't forget you may need to run yarn after adding packages with yalc to install
|
|
93
102
|
```
|
94
103
|
|
95
104
|
#### Example: Testing NPM changes with the dummy app
|
105
|
+
|
96
106
|
1. Add `console.log('Hello!')` to [clientStartup.ts, function render](https://github.com/shakacode/react_on_rails/blob/master/node_package/src/clientStartup.ts in `/node_package/src/clientStartup.js` to confirm we're getting an update to the node package client side. Do the same for function `serverRenderReactComponent` in `/node_package/src/serverRenderReactComponent.ts`.
|
97
107
|
2. Refresh the browser if the server is already running or start the server using `foreman start` from `react_on_rails/spec/dummy` and navigate to `http://localhost:5000/`. You will now see the `Hello!` message printed in the browser's console. If you did not see that message, then review the steps above for the workflow of making changes and pushing them via yalc.
|
98
108
|
|
@@ -101,13 +111,14 @@ Don't forget you may need to run yarn after adding packages with yalc to install
|
|
101
111
|
## Dev Initial Setup
|
102
112
|
|
103
113
|
### Prereqs
|
104
|
-
|
114
|
+
|
115
|
+
After checking out the repo, making sure you have Ruby and Node version managers set up (such as rvm and nvm, or rbenv and nodenv, etc.), cd to `spec/dummy` and run `bin/setup` to install ruby dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
105
116
|
|
106
117
|
### Local Node Package
|
107
118
|
|
108
|
-
Note, the example and dummy apps will use your local
|
119
|
+
Note, the example and dummy apps will use your local `node_packages` folder as the `react-on-rails` node package. This will also be done automatically for you via the `rake examples:gen_all` rake task.
|
109
120
|
|
110
|
-
|
121
|
+
_Side note: It's critical to use the alias section of the Webpack config to avoid a double inclusion error. This has already been done for you in the example and dummy apps, but for reference:_
|
111
122
|
|
112
123
|
```js
|
113
124
|
resolve: {
|
@@ -126,9 +137,8 @@ yarn
|
|
126
137
|
yarn build
|
127
138
|
```
|
128
139
|
|
129
|
-
Or run this which builds the
|
130
|
-
spec/dummy
|
131
|
-
|
140
|
+
Or run this, which builds the Yarn package, then the Webpack files for `spec/dummy`, and runs tests in
|
141
|
+
`spec/dummy`.
|
132
142
|
|
133
143
|
```sh
|
134
144
|
# Optionally change default capybara driver
|
@@ -171,9 +181,11 @@ yarn run check
|
|
171
181
|
```
|
172
182
|
|
173
183
|
### Starting the Dummy App
|
174
|
-
|
184
|
+
|
185
|
+
To run the dummy app, it's **CRITICAL** to not just run `rails s`. You have to run `foreman start` with one of the Procfiles. If you don't do this, then `webpack` will not generate a new bundle, and you will be seriously confused when you change JavaScript and the app does not change. If you change the Webpack configs, then you need to restart Foreman. If you change the JS code for react-on-rails, you need to run `yarn run build` in the project root.
|
175
186
|
|
176
187
|
### RSpec Testing
|
188
|
+
|
177
189
|
Run `rake` for testing the gem and `spec/dummy`. Otherwise, the `rspec` command only works for testing within the sample apps, like `spec/dummy`.
|
178
190
|
|
179
191
|
If you run `rspec` at the top level, you'll see this message: `require': cannot load such file -- rails_helper (LoadError)`
|
@@ -189,15 +201,16 @@ Run `rake -T` or `rake -D` to see testing options.
|
|
189
201
|
See below for verifying changes to the generators.
|
190
202
|
|
191
203
|
### Install Generator
|
204
|
+
|
192
205
|
In your Rails app add this gem with a path to your fork.
|
193
206
|
|
194
207
|
```ruby
|
195
208
|
gem 'react_on_rails', path: '../relative/path/to/react_on_rails'
|
196
|
-
```
|
209
|
+
```
|
197
210
|
|
198
211
|
Then run `bundle`.
|
199
212
|
|
200
|
-
The main installer can be run with
|
213
|
+
The main installer can be run with `rails generate react_on_rails:install`
|
201
214
|
|
202
215
|
Then use yalc to add the npm module.
|
203
216
|
|
@@ -214,19 +227,22 @@ yalc add react-on-rails
|
|
214
227
|
```
|
215
228
|
|
216
229
|
### Testing the Generator
|
217
|
-
The generators are covered by generator tests using Rails's generator testing helpers, but it never hurts to do a sanity check and explore the API. See [generator_testing_script.md](generator_testing_script.md) for a script on how to run the generator on a fresh project.
|
218
230
|
|
219
|
-
|
231
|
+
The generators are covered by generator tests using Rails's generator testing helpers, but it never hurts to do a sanity check and explore the API. See [generator-testing.md](docs/contributor-info/generator-testing.md) for a script on how to run the generator on a fresh project.
|
232
|
+
|
233
|
+
`rake run_rspec:shakapacker_examples_basic` is a great way to run tests on one generator. Once that works, you should run `rake run_rspec:shakapacker_examples`. Be aware that this will create a huge number of files under a `/gen-examples` directory. You should be sure to exclude this directory from your IDE and delete it once your testing is done.
|
220
234
|
|
221
235
|
### Linting
|
236
|
+
|
222
237
|
All linting is performed from the docker container for CI. You will need docker and docker-compose installed locally to lint code changes via the lint container. You can lint locally by running `npm run lint && npm run flow`
|
223
238
|
|
224
|
-
|
225
|
-
|
239
|
+
- [Install Docker Toolbox for Mac](https://www.docker.com/toolbox)
|
240
|
+
- [Install Docker Compose for Linux](https://docs.docker.com/compose/install/)
|
226
241
|
|
227
242
|
Once you have docker and docker-compose running locally, run `docker-compose build lint`. This will build the `reactonrails_lint` docker image and docker-compose `lint` container. The initial build is slow, but after the install, startup is very quick.
|
228
243
|
|
229
244
|
### Linting Commands
|
245
|
+
|
230
246
|
Run `rake lint`.
|
231
247
|
|
232
248
|
Alternately with Docker:
|
@@ -238,12 +254,14 @@ You can run specific linting for directories or files by using `docker-compose r
|
|
238
254
|
`docker-compose run lint bash` sets you up to run from the container command line.
|
239
255
|
|
240
256
|
### Updating Rubocop
|
257
|
+
|
241
258
|
2 files require updating to update the Rubocop version:
|
242
259
|
|
243
260
|
1. `react_on_rails.gemspec`
|
244
261
|
2. `spec/dummy/Gemfile`
|
245
262
|
|
246
263
|
### Docker CI - Test and Linting
|
264
|
+
|
247
265
|
Docker CI and Tests containers have a xvfd server automatically started for headless browser testing with selenium and Firefox.
|
248
266
|
|
249
267
|
Run `docker-compose build ci` to build the CI container. Run `docker-compose run ci` to start all rspec tests and linting. `docker-compose run --entrypoint=/bin/bash` will override the default CI action and place you inside the CI container in a bash session. This is what is run on Travis-CI.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
react_on_rails (
|
4
|
+
react_on_rails (15.0.0.alpha.2)
|
5
5
|
addressable
|
6
6
|
connection_pool
|
7
7
|
execjs (~> 2.5)
|
@@ -336,8 +336,8 @@ GEM
|
|
336
336
|
rexml (~> 3.2, >= 3.2.5)
|
337
337
|
rubyzip (>= 1.2.2, < 3.0)
|
338
338
|
websocket (~> 1.0)
|
339
|
-
semantic_range (3.
|
340
|
-
shakapacker (8.
|
339
|
+
semantic_range (3.1.0)
|
340
|
+
shakapacker (8.2.0)
|
341
341
|
activesupport (>= 5.2)
|
342
342
|
package_json
|
343
343
|
rack-proxy (>= 0.6.1)
|
@@ -431,7 +431,7 @@ DEPENDENCIES
|
|
431
431
|
scss_lint
|
432
432
|
sdoc
|
433
433
|
selenium-webdriver (= 4.9.0)
|
434
|
-
shakapacker (= 8.
|
434
|
+
shakapacker (= 8.2.0)
|
435
435
|
spring (~> 4.0)
|
436
436
|
sprockets (~> 4.0)
|
437
437
|
sqlite3 (~> 1.6)
|
data/KUDOS.md
CHANGED
@@ -11,83 +11,104 @@ I'm looking for quotes on why you like using React on Rails. You might mention a
|
|
11
11
|

|
12
12
|
|
13
13
|
## June 9, 2017
|
14
|
+
|
14
15
|
By Github Issue [#868](https://github.com/shakacode/react_on_rails/issues/868)
|
15
16
|
|
16
17
|

|
17
18
|
|
18
19
|
### May 6, 2017
|
20
|
+
|
19
21
|
By Email
|
20
22
|
|
21
23
|

|
22
24
|
|
23
25
|
### April 6, 2017
|
26
|
+
|
24
27
|
Tyler Swayne on Medium: [Adding react to your node app](https://medium.com/@Tswaynee/adding-react-to-your-node-app-8707c5464b3)
|
25
28
|
|
26
29
|

|
27
30
|
|
28
31
|
### March 23, 2017
|
32
|
+
|
29
33
|
Github issue [#766](https://github.com/shakacode/react_on_rails/issues/766).
|
30
34
|
|
31
35
|

|
32
36
|
|
33
37
|
### March 21, 2017
|
38
|
+
|
34
39
|
Twitter from [@rfc2616](https://twitter.com/rfc2616)
|
35
40
|
|
36
41
|

|
37
42
|
|
38
43
|
### March 2, 2017
|
44
|
+
|
39
45
|

|
40
46
|
|
41
47
|
### February 24, 2017
|
48
|
+
|
42
49
|
"I ❤️ React on Rails because it's easy to drop into a Rails project and still get all the power of native JavaScript tooling. The generators are great and the community is so awesome and welcoming. In fact, I love it so much I made a [course for learning React with Rails](https://goo.gl/uzu36X) using the react_on_rails gem!"
|
43
50
|

|
44
51
|
|
45
52
|
### December 20, 2016
|
53
|
+
|
46
54
|

|
47
55
|
|
48
56
|
### December 12, 2016
|
57
|
+
|
49
58
|

|
50
59
|
|
51
60
|
### November 15, 2016
|
61
|
+
|
52
62
|

|
53
63
|
|
54
64
|
### November 9, 2016, in our Slack Room for ShakaCode
|
65
|
+
|
55
66
|

|
56
67
|
|
57
68
|
### November 6, 2016
|
69
|
+
|
58
70
|
https://github.com/shakacode/react_on_rails/pull/591#issuecomment-258685925
|
59
71
|

|
60
72
|
|
61
73
|
### October 29, 2016
|
74
|
+
|
62
75
|
by Email
|
63
76
|

|
64
77
|
|
65
78
|
### September 11, 2016
|
79
|
+
|
66
80
|

|
67
81
|
|
68
82
|
### August 9, 2016
|
83
|
+
|
69
84
|

|
70
85
|
|
71
86
|
### June 15, 2016
|
87
|
+
|
72
88
|

|
73
89
|
|
74
|
-
### May 11, 2016
|
90
|
+
### May 11, 2016
|
91
|
+
|
75
92
|

|
76
93
|
|
77
94
|

|
78
95
|
|
79
96
|
### May 10, 2016
|
97
|
+
|
80
98
|

|
81
99
|
|
82
100
|
### March 30, 2016
|
101
|
+
|
83
102
|
"Gone are the days of using bower or rails gems to manage front end dependencies! React on Rails provides webpack integration to give us a modern build process, es6 syntax and the entire npm ecosystem of libraries to use, along with view helpers to make React integration with Rails feel better than a cool summer breeze." - [@kalamyty](https://twitter.com/kalamyty), [flynfish](https://github.com/flynfish).
|
84
103
|
|
85
104
|
### March 25, 2016
|
105
|
+
|
86
106
|
https://twitter.com/ollieglass/status/713372606804729856
|
87
107
|
|
88
108
|

|
89
109
|
|
90
110
|
### March 23, 2016, Compared to Browserify
|
111
|
+
|
91
112
|
See comments [here](https://lorefnon.me/2015/11/15/a-minimal-setup-for-using-es6-modules-in-rails.html)
|
92
113
|
|
93
114
|

|
data/NEWS.md
CHANGED
@@ -1,62 +1,62 @@
|
|
1
1
|
# NEWS
|
2
2
|
|
3
|
-
|
3
|
+
_A history of the news. A few bullets at the top will also show on the [README.md](./README.md)._
|
4
4
|
|
5
|
-
|
6
|
-
RR 474: React on Rails V12 – Don’t Shave That Yak! with Justin Gordon](https://devchat.tv/ruby-rogues/rr-474-react-on-rails-v12-dont-shave-that-yak-with-justin-gordon/).
|
5
|
+
- **October 14, 2020**: [RUBY ROGUES
|
6
|
+
RR 474: React on Rails V12 – Don’t Shave That Yak! with Justin Gordon](https://devchat.tv/ruby-rogues/rr-474-react-on-rails-v12-dont-shave-that-yak-with-justin-gordon/).
|
7
7
|
|
8
|
-
|
9
|
-
that supports SSR.
|
10
|
-
|
11
|
-
|
8
|
+
- **October 1, 2020**: See the [spec/dummy](https://github.com/shakacode/react_on_rails/tree/master/spec/dummy) example repo for a simple configuration of Webpack via the rails/webpacker gem
|
9
|
+
that supports SSR.
|
10
|
+
- **August 2, 2020**: See the example repo of [React on Rails Tutorial With SSR, HMR fast refresh, and TypeScript](https://github.com/shakacode/react_on_rails_demo_ssr_hmr) for a new way to set up the creation of your SSR bundle with `rails/webpacker`.
|
11
|
+
- July 8, 2020: Release **v12**.
|
12
12
|
1. **React Hooks Support** for top level components
|
13
13
|
2. **Typescript bindings**
|
14
14
|
3. **rails/webpacker** "just works" with React on Rails by default.
|
15
15
|
4. i18n support for generating a JSON file rather than a JS file.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
16
|
+
- 2018-02-27: **Version 10.1.2** Supports the React API for ReactDOM.hydrate.
|
17
|
+
- 2017-09-06: **VERSION 9.0.0 shipped!** This version depends on Webpacker directly. See [Upgrading React on Rails](./docs/guides/upgrading-react-on-rails.md) for more concise instructions on upgrading.
|
18
|
+
- Always see the [CHANGELOG.md](./CHANGELOG.md) for the latest project changes.
|
19
|
+
- [VERSION 8.1.0](https://rubygems.org/gems/react_on_rails/) shipped with [webpacker_lite](https://github.com/shakacode/webpacker_lite) (soon [**webpacker**](https://github.com/rails/webpacker/issues/464#issuecomment-310986140) support! [react-webpack-rails-tutorial PR #395](https://github.com/shakacode/react-webpack-rails-tutorial/pull/395) shows the changes needed to migrate from the Asset Pipeline to Webpacker Lite. For more information, see my article: [Webpacker Lite: Why Fork Webpacker?](https://blog.shakacode.com/webpacker-lite-why-fork-webpacker-f0a7707fac92). Per recent discussions, we [will merge Webpacker Lite changes back into Webpacker](https://github.com/rails/webpacker/issues/464#issuecomment-310986140). There's no reason to wait for this. The upgrade will eventually be trivial.
|
20
|
+
- 2017-04-25: 7.0.0 Shipped! Performance improvements! Please upgrade! Only "breaking" change is that you have to update both the node module and the Ruby gem.
|
21
|
+
- 2017-04-09: 8.0.0 beta work to include webpacker_lite gem has begun. See [#786](https://github.com/shakacode/react_on_rails/issues/786).
|
22
|
+
- 2017-04-03: 6.9.3 Released! Props rendered in JSON script tag. Page size is smaller now due to less escaping!
|
23
|
+
- 2017-03-06: Updated to Webpack v2!
|
24
|
+
- 2017-03-02: Demo of internationalization (i18n) is live at [reactrails.com](https://www.reactrails.com/). Docs [here](docs/guides/i18n.md).
|
25
|
+
- 2017-02-28: See [discussions here on Webpacker](https://github.com/rails/webpacker/issues/139) regarding how Webpacker will allow React on Rails to avoid using the asset pipeline in the near future.
|
26
|
+
- 2017-02-28: Upgrade to Webpack v2 or use the `--bail` option in your Webpack script for test and production builds. See the discussion on [PR #730](https://github.com/shakacode/react_on_rails/pull/730).
|
27
|
+
- 2016-11-03: Spoke at [LA Ruby: "React on Rails: Why, What, and How?"](http://www.meetup.com/laruby/events/234825187/). [Video and pictures in this article](https://blog.shakacode.com/my-react-on-rails-talk-at-the-la-ruby-rails-meetup-november-10-2016-eaaa83aff800#.ej6h4eglp).
|
28
|
+
- 2016-12-20: New Video on Egghead.io: [Creating a component with React on Rails](https://egghead.io/lessons/react-creating-a-component-with-react-on-rails)
|
29
|
+
- 2016-11-03: Spoke at [LA Ruby, 7pm, Thursday, November 10 in Venice, CA: "React on Rails: Why, What, and How?"](http://www.meetup.com/laruby/events/234825187/). [Video and pictures in this article](https://blog.shakacode.com/my-react-on-rails-talk-at-the-la-ruby-rails-meetup-november-10-2016-eaaa83aff800#.ej6h4eglp).
|
30
|
+
- 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
31
|
+
- 2016-08-21: v6.1 ships with several new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
32
|
+
- 2016-07-28: If you're doing server rendering, be sure to use mini_racer! See [issues/428](https://github.com/shakacode/react_on_rails/issues/428). It's supposedly much faster than `therubyracer`.
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
34
|
+
- 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
35
|
+
- 2016-08-21: v6.1 ships with several new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
36
|
+
- 2016-06-13: 6.0.4 shipped with a critical fix regarding a missing polyfill for `clearTimeout`, used by babel-polyfill.
|
37
|
+
- 2016-06-06: 6.0.2 shipped with a critical fix if you are fragment caching the server generated React.
|
38
|
+
- 2016-05-24: 6.0.0 Released! Simplified generator and install process! See the [CHANGELOG.md](./CHANGELOG.md) for details.
|
39
|
+
- 2016-04-08: 5.2.0 Released! Support for React 15.0 and updates to the Generator.
|
40
|
+
- 2016-03-18: [Slides on React on Rails](http://www.slideshare.net/justingordon/react-on-rails-v4032).
|
41
|
+
- 2016-03-17: **4.0.3** Shipped! Includes using the new Heroku buildpack steps, several smaller changes detailed in the [CHANGELOG.md](./CHANGELOG.md).
|
42
|
+
- 2016-03-17: **4.0.2** Shipped! Includes using the new Heroku buildpack steps.
|
43
|
+
- Better support for hot reloading of assets from Rails with new helpers and updates to the sample testing app, [spec/dummy](spec/dummy).
|
44
|
+
- Better support for Turbolinks 5.
|
45
|
+
- Controller rendering of shared Redux stores and ability to render store data at bottom of HTML page.
|
46
|
+
- See [#311](https://github.com/shakacode/react_on_rails/pull/311/files).
|
47
|
+
- Some breaking changes! See [CHANGELOG.md](./CHANGELOG.md) for details.
|
48
|
+
- 2016-02-28: We added a [Projects page](PROJECTS.md). Please edit the page your project or [email us](mailto:contact@shakacode.com) and we'll add you. We also love stars as it helps us attract new users and contributors. [jbhatab](https://github.com/jbhatab) is leading an effort to ease the onboarding process for newbies with simpler project generators. See [#245](https://github.com/shakacode/react_on_rails/issues/245).
|
49
|
+
- 3.0.6 shipped on Tuesday, 2016-03-01. Please see the [Changelog](CHANGELOG.md) for details, and let us know if you see any issues! [Migration steps from 1.x](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md#migration-steps-v1-to-v2). [Migration steps from 2.x](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md#migration-steps-v2-to-v3).
|
50
|
+
- [RubyGems](https://rubygems.org/gems/react_on_rails/)
|
51
|
+
- [NPM](https://www.npmjs.com/package/react-on-rails)
|
52
|
+
- 3.0.0 Highlights:
|
53
53
|
1. Support for ensuring JavaScript is current when running tests.
|
54
54
|
2. Support for multiple React components with one Redux store. So you can have a header React component and different body React components talking to the same Redux store!
|
55
55
|
3. Support for Turbolinks 5!
|
56
|
-
|
57
|
-
|
56
|
+
- There was a fatal error when using the latest version of Redux for server rendering. See [Redux #1335](https://github.com/reactjs/redux/issues/1335). See [diff 3.1.6...3.1.4](https://github.com/reactjs/redux/commit/e2e14d26f09ca729ae0555442f50fcfc45bfb423#diff-1fdf421c05c1140f6d71444ea2b27638). Workaround for server rendering: Use Redux 3.1.7 or upgrade to React On Rails v2.3.0. [this commit](https://github.com/shakacode/react_on_rails/commit/59f1e68d3d233775e6abc63bff180ea59ac2d79e) on [PR #244](https://github.com/shakacode/react_on_rails/pull/244/).
|
57
|
+
- 2.x Highlights:
|
58
58
|
1. Fixed a **critical** problem with TurboLinks. Be sure to see [turbolinks docs](docs/additional-reading/turbolinks.md) for more information on how to debug TurboLinks issues.
|
59
59
|
2. Provides a convenient helper to ensure that JavaScript assets are compiled before running tests.
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
- React on Rails does not yet have _generator_ support for building new apps that use CSS modules and hot reloading via the Rails server as is demonstrated in the [shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial/). _We do support this, but we don't generate the code._ If you did generate a fresh app from react_on_rails and want to move to CSS Modules, then see [PR 175: Babel 6 / CSS Modules / Rails hot reloading](https://github.com/shakacode/react-webpack-rails-tutorial/pull/175). Note, while there are probably fixes after this PR was accepted, this has the majority of the changes. See [the tutorial](https://github.com/shakacode/react-webpack-rails-tutorial/#news) for more information. Ping us if you want to help!
|
61
|
+
- [ShakaCode](http://www.shakacode.com) is doing Skype plus Slack/GitHub based coaching for "React on Rails". [Click here](http://www.shakacode.com/work/index.html) for more information.
|
62
|
+
- Be sure to read our article [The React on Rails Doctrine](https://medium.com/@railsonmaui/the-react-on-rails-doctrine-3c59a778c724).
|
data/PROJECTS.md
CHANGED
@@ -1,58 +1,63 @@
|
|
1
1
|
# Projects using React on Rails
|
2
2
|
|
3
|
-
[Click here](https://publicwww.com/websites/%22react-on-rails%22++-undeveloped.com/) for a search for public sites using React on Rails.
|
3
|
+
[Click here](https://publicwww.com/websites/%22react-on-rails%22++-undeveloped.com/) for a search for public sites using React on Rails.
|
4
4
|
|
5
5
|
Public Sites Using React on Rails:
|
6
6
|
|
7
7
|
March 27, 2018: 2126<br>
|
8
8
|
April 11, 2018: 2138
|
9
9
|
|
10
|
-
|
10
|
+
_Please support the project by [emailing Justin Gordon](mailto:justin@shakacode.com) of any projects, yours or others, that use React on Rails. You can confirm a project uses React on Rails as the source will contain **`js-react-on-rails`**._
|
11
11
|
|
12
12
|
## Commercial Products Live
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
13
|
+
|
14
|
+
- **[Hawaii Chee](https://www.hawaiichee.com/)**, the signature product of [ShakaCode](http://www.shakacode.com), which is a vacation rental site focusing on Hawaii.
|
15
|
+
- **[RedFlagDeals](https://www.redflagdeals.com/)**, Canadian shopping site.
|
16
|
+
- **[YourMechanic](https://www.yourmechanic.com/)**, home calls for mechanics.
|
17
|
+
- **[Suntransfers](https://www.suntransfers.com/)**, airport car rides site.
|
18
|
+
- **[Decanter](http://www.decanter.com/)**, wine site.
|
19
|
+
- **[LocalWise](https://www.localwise.com/)**, local job site.
|
20
|
+
- **[Ellevest](https://www.ellevest.com/)**, investments for women.
|
21
|
+
- **[OppenheimerFunds](https://www.oppenheimerfunds.com/)**, investment site.
|
22
|
+
- **[KissKissBankBank](https://www.kisskissbankbank.com/)**, large French crowdfunding platform.
|
23
|
+
- **[HVMN](https://hvmn.com)**: Web ecommerce site for "biohacking" products.
|
24
|
+
- **[GuavaPass](https://guavapass.com/)**: Coaching client of [ShakaCode](http://www.shakacode.com) and React on Rails fan!
|
25
|
+
- **[Pivotal Tracker](http://www.pivotaltracker.com/)**: The first (and most-loved) agile project management tool built on Rails. React on Rails has greatly simplified integration and workflow for our React components in Rails!
|
26
|
+
- **[Estately](https://www.estately.com)**: Home search.
|
27
|
+
- **[Blink Inc](https://www.blinkinc.com)**: Website and more built by [ShakaCode](http://www.shakacode.com).
|
28
|
+
- **[Madrone Analytics](http://madroneco.com/)**: The original client of [ShakaCode](http://www.shakacode.com) that led to the development of React on Rails, as described in [Fast Rich Client Rails Development With Webpack and the ES6 Transpiler](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/).
|
29
|
+
- **[Deliveroo](https://deliveroo.co.uk/)**: The leading food delivery site in Europe has gone live with React on Rails, with multi-lingual JavaScript support!
|
30
|
+

|
31
|
+
- **[Airgoat](https://airgoat.com/)**: Marketplace for sneakers.
|
32
|
+
- **[Apprentus](https://www.apprentus.com/)**: A marketplace to find the best private teachers. Using React on Rails from the homepage to infinity!
|
33
|
+
- **[Confident Financial Solutions](https://www.mycfsapp.com/)**: Auto Repair Financing to help people get back on the road and back to life.
|
34
|
+
- **[Flyhomes](https://www.flyhomes.com/)**: Real estate brokerage service that awards frequent flyer miles.
|
35
|
+
- **[Undeveloped](https://undeveloped.com/)**: Buy and sell domain names. 
|
36
|
+
- **[Foxford.ru](http://foxford.ru/)**: Online School 
|
37
|
+
- **[CareerBuilder for Employers](https://hiring.careerbuilder.com/)**: CareerBuilder's marketing/ecommerce website. We've integrated React on Rails and have deployed the application via Cloud 66, and are busy integrating this into other projects!
|
38
|
+
- **[first](https://first.io/)**: Data-driven Relational Marketing for Real Estate.
|
38
39
|
|
39
40
|
## Open Source Projects Live
|
40
|
-
* [github.com/empirical-org/Empirical-Core](https://github.com/empirical-org/Empirical-Core): [Quill.org](https://quill.org/) Provides free tools to make your students better writers.
|
41
|
-
* **[Coderwall](https://coderwall.com/)**: The latest development and design tips, tools, and projects from our developer community. Source at [github.com/coderwall/coderwall-next](https://github.com/coderwall/coderwall-next)
|
42
|
-
* [department-of-veterans-affairs/caseflow](https://github.com/department-of-veterans-affairs/caseflow): Caseflow is a web application that enables the tracking and processing of appealed claims at the Board of Veterans' Appeals.
|
43
41
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
* [Hot Module Replacement with react_on_rails](https://medium.com/@hrishio/lesson-5-hot-module-replacement-for-react-in-rails-using-the-react-on-rails-gem-643c5b01f3d7#.ehevxok16) : Step-by-step tutorial for a quick basic set up of hot asset reloading with HMR in a Rails 5 app. [Code on Github](https://github.com/learnetto/calreact-hmr).....
|
42
|
+
- [github.com/empirical-org/Empirical-Core](https://github.com/empirical-org/Empirical-Core): [Quill.org](https://quill.org/) Provides free tools to make your students better writers.
|
43
|
+
- **[Coderwall](https://coderwall.com/)**: The latest development and design tips, tools, and projects from our developer community. Source at [github.com/coderwall/coderwall-next](https://github.com/coderwall/coderwall-next)
|
44
|
+
- [department-of-veterans-affairs/caseflow](https://github.com/department-of-veterans-affairs/caseflow): Caseflow is a web application that enables the tracking and processing of appealed claims at the Board of Veterans' Appeals.
|
48
45
|
|
49
|
-
##
|
46
|
+
## Demos and Tutorials
|
50
47
|
|
51
|
-
|
48
|
+
- [reactrails.com](http://www.reactrails.com), source code [github.com/shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial/)
|
49
|
+
- [Relay Rails Blog](https://github.com/gauravtiwari/relay-rails-blog): Tutorial to learn Relay with Rails.
|
50
|
+
- [Hot Module Replacement with react_on_rails](https://medium.com/@hrishio/lesson-5-hot-module-replacement-for-react-in-rails-using-the-react-on-rails-gem-643c5b01f3d7#.ehevxok16) : Step-by-step tutorial for a quick basic set up of hot asset reloading with HMR in a Rails 5 app. [Code on Github](https://github.com/learnetto/calreact-hmr).....
|
52
51
|
|
53
52
|
## Projects Based on React on Rails
|
54
53
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
- [github.com/Limenius/symfony-react-sandbox](https://github.com/Limenius/symfony-react-sandbox)
|
55
|
+
- [github.com/tswayne/react-helper](https://github.com/tswayne/react-helper)
|
56
|
+
- [github.com/KissKissBankBank/kitten](https://github.com/KissKissBankBank/kitten)
|
57
|
+
- [github.com/sharetribe/sharetribe](https://github.com/sharetribe/sharetribe): Open source marketplace platform.
|
58
|
+
- [GitHub search for repos using `react_on_rails`](https://github.com/search?q=gem+react_on_rails&ref=advsearch&type=repositories&utf8=%E2%9C%93) (may include some false positives)
|
59
|
+
|
60
|
+
## Reverse dependencies
|
61
|
+
|
62
|
+
- [Gems depending on `react_on_rails`](https://rubygems.org/gems/react_on_rails/reverse_dependencies)
|
63
|
+
- [NPM packages depending on `react-on-rails`](https://www.npmjs.com/browse/depended/react-on-rails)
|