Skip to content

Commit 77a9f1d

Browse files
alexeyr-cialexeyr
andauthored
Documentation updates (#1709)
* Misc readability changes * Update PROJECTS.md * Update Turbolinks doc and release notes * Additional Turbolinks updates * Simplify record types * Fix import in docs * Update links * Fix contributor info * setup->set up where necessary * Fix link and invalid code in 'Render Functions and the Rails Context' --------- Co-authored-by: Alexey Romanov <[email protected]>
1 parent 25ec8a9 commit 77a9f1d

File tree

79 files changed

+447
-430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+447
-430
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
run: cd spec/dummy && rm -rf public/webpack/test && yarn run build:rescript && RAILS_ENV="test" NODE_ENV="test" bin/${{ matrix.versions == 'oldest' && 'web' || 'shaka' }}packer
8080
- id: get-sha
8181
run: echo "sha=\"$(git rev-parse HEAD)\"" >> "$GITHUB_OUTPUT"
82-
- name: Save test webpack bundles to cache (for build number checksum used by rspec job)
82+
- name: Save test Webpack bundles to cache (for build number checksum used by RSpec job)
8383
uses: actions/cache/save@v4
8484
with:
8585
path: spec/dummy/public/webpack
@@ -139,7 +139,7 @@ jobs:
139139
key: dummy-app-node-modules-cache-${{ hashFiles('spec/dummy/package.json') }}-${{ matrix.versions }}
140140
- id: get-sha
141141
run: echo "sha=\"$(git rev-parse HEAD)\"" >> "$GITHUB_OUTPUT"
142-
- name: Save test webpack bundles to cache (for build number checksum used by rspec job)
142+
- name: Save test Webpack bundles to cache (for build number checksum used by RSpec job)
143143
uses: actions/cache@v4
144144
with:
145145
path: spec/dummy/public/webpack

CHANGELOG.md

Lines changed: 23 additions & 23 deletions
Large diffs are not rendered by default.

CONTRIBUTING.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
- [docs/contributor-info/pull-requests](./docs/contributor-info/pull-requests.md)
55
- See other docs in [docs/contributor-info](./docs/contributor-info)
66

7-
## To run tests:
7+
## Prerequisites
88

99
- [Yalc](https://github.com/whitecolor/yalc) must be installed globally for most local development.
1010
- After updating code via Git, to prepare all examples:
@@ -19,7 +19,7 @@ and [Running tests](#running-tests) for more details on running tests.
1919

2020
# IDE/IDE SETUP
2121

22-
It's critical to configure your IDE/editor to ignore certain directories. Otherwise your IDE might slow to a crawl!
22+
It's critical to configure your IDE/editor to ignore certain directories. Otherwise, your IDE might slow to a crawl!
2323

2424
- /coverage
2525
- /tmp
@@ -37,7 +37,7 @@ It's critical to configure your IDE/editor to ignore certain directories. Otherw
3737

3838
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.
3939

40-
```
40+
```text
4141
├── test_app
4242
| └── client
4343
└── react_on_rails
@@ -55,9 +55,9 @@ gem "react_on_rails", path: "../path-to-react-on-rails"
5555

5656
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**.
5757

58-
## Testing the Node package for react-on-rails via Yalc
58+
## Testing the Node package for React on Rails via Yalc
5959

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:
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:
6161

6262
```sh
6363
cd react_on_rails/
@@ -112,13 +112,13 @@ Don't forget you may need to run yarn after adding packages with yalc to install
112112

113113
### Prereqs
114114

115-
After checking out the repo, making sure you have rvm and nvm setup (setup ruby and node), 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.
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.
116116

117117
### Local Node Package
118118

119-
Note, the example and dummy apps will use your local node_package folder as the react-on-rails node package. This will also be done automatically for you via the `rake examples:gen_all` rake task.
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.
120120

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:_
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:_
122122

123123
```js
124124
resolve: {
@@ -137,8 +137,8 @@ yarn
137137
yarn build
138138
```
139139

140-
Or run this which builds the yarn package, then the webpack files for spec/dummy, and runs tests in
141-
spec/dummy.
140+
Or run this, which builds the Yarn package, then the Webpack files for `spec/dummy`, and runs tests in
141+
`spec/dummy`.
142142

143143
```sh
144144
# Optionally change default capybara driver
@@ -182,7 +182,7 @@ yarn run check
182182

183183
### Starting the Dummy App
184184

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`. Since the react-on-rails package should be sym linked, you don't have to `yarn react-on-rails` after every change.
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.
186186

187187
### RSpec Testing
188188

NEWS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ _A history of the news. A few bullets at the top will also show on the [README.m
55
- **October 14, 2020**: [RUBY ROGUES
66
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/).
77

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
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
99
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 setup the creation of your SSR bundle with `rails/webpacker`.
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`.
1111
- July 8, 2020: Release **v12**.
1212
1. **React Hooks Support** for top level components
1313
2. **Typescript bindings**
@@ -23,7 +23,7 @@ _A history of the news. A few bullets at the top will also show on the [README.m
2323
- 2017-03-06: Updated to Webpack v2!
2424
- 2017-03-02: Demo of internationalization (i18n) is live at [reactrails.com](https://www.reactrails.com/). Docs [here](docs/guides/i18n.md).
2525
- 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).
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).
2727
- 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).
2828
- 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)
2929
- 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).
@@ -42,7 +42,7 @@ _A history of the news. A few bullets at the top will also show on the [README.m
4242
- 2016-03-17: **4.0.2** Shipped! Includes using the new Heroku buildpack steps.
4343
- Better support for hot reloading of assets from Rails with new helpers and updates to the sample testing app, [spec/dummy](spec/dummy).
4444
- Better support for Turbolinks 5.
45-
- Controller rendering of shared redux stores and ability to render store data at bottom of HTML page.
45+
- Controller rendering of shared Redux stores and ability to render store data at bottom of HTML page.
4646
- See [#311](https://github.com/shakacode/react_on_rails/pull/311/files).
4747
- Some breaking changes! See [CHANGELOG.md](./CHANGELOG.md) for details.
4848
- 2016-02-28: We added a [Projects page](PROJECTS.md). Please edit the page your project or [email us](mailto:[email protected]) 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).
@@ -53,7 +53,7 @@ _A history of the news. A few bullets at the top will also show on the [README.m
5353
1. Support for ensuring JavaScript is current when running tests.
5454
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!
5555
3. Support for Turbolinks 5!
56-
- There was a fatal error when using the lastest 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/).
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/).
5757
- 2.x Highlights:
5858
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.
5959
2. Provides a convenient helper to ensure that JavaScript assets are compiled before running tests.

PROJECTS.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ _Please support the project by [emailing Justin Gordon](mailto:justin@shakacode.
2929
- **[Deliveroo](https://deliveroo.co.uk/)**: The leading food delivery site in Europe has gone live with React on Rails, with multi-lingual JavaScript support!
3030
![2016-05-03_19-18-34](https://cloud.githubusercontent.com/assets/1118459/15027253/91fd151a-11de-11e6-93e3-720518995fe0.png)
3131
- **[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!
32+
- **[Apprentus](https://www.apprentus.com/)**: A marketplace to find the best private teachers. Using React on Rails from the homepage to infinity!
3333
- **[Confident Financial Solutions](https://www.mycfsapp.com/)**: Auto Repair Financing to help people get back on the road and back to life.
3434
- **[Flyhomes](https://www.flyhomes.com/)**: Real estate brokerage service that awards frequent flyer miles.
3535
- **[Undeveloped](https://undeveloped.com/)**: Buy and sell domain names. ![image](https://cloud.githubusercontent.com/assets/1118459/19623703/7c6d63d0-9870-11e6-83f2-8b83ca49daa9.png)
@@ -49,13 +49,15 @@ _Please support the project by [emailing Justin Gordon](mailto:justin@shakacode.
4949
- [Relay Rails Blog](https://github.com/gauravtiwari/relay-rails-blog): Tutorial to learn Relay with Rails.
5050
- [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).....
5151

52-
## Per Github.
53-
54-
---
55-
5652
## Projects Based on React on Rails
5753

5854
- [github.com/Limenius/symfony-react-sandbox](https://github.com/Limenius/symfony-react-sandbox)
5955
- [github.com/tswayne/react-helper](https://github.com/tswayne/react-helper)
6056
- [github.com/KissKissBankBank/kitten](https://github.com/KissKissBankBank/kitten)
6157
- [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)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ If you think ShakaCode can help your project, [click here](https://meetings.hubs
4444

4545
## React on Rails Pro
4646

47-
Are you interested in optimizing your webpack setup for React on Rails, including code splitting with [react-router](https://github.com/ReactTraining/react-router#readme) and [loadable-components](https://loadable-components.com/) with server-side rendering for SEO and hot-reloading for developers?
47+
Are you interested in optimizing your Webpack setup for React on Rails, including code splitting with [React Router](https://reactrouter.com/) and [loadable-components](https://loadable-components.com/) with server-side rendering for SEO and hot-reloading for developers?
4848
We did this for Popmenu, [lowering Heroku costs 20-25% while getting a 73% decrease in average response times](https://www.shakacode.com/recent-work/popmenu/). Several years later, Popmenu serves tens of millions of SSR requests daily with React on Rails Pro.
4949

5050
If you're interested, read more about [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro/) and [book a call](https://meetings.hubspot.com/justingordon/30-minute-consultation).
@@ -67,7 +67,7 @@ Given that `shakacode/shakapacker` gem already provides basic React integration,
6767
Tight integration with [shakapacker](https://github.com/shakacode/shakapacker) (or its predecessor [rails/webpacker](https://github.com/rails/webpacker)).
6868
1. Server-Side Rendering (SSR), often used for SEO crawler indexing and UX performance.
6969
1. [Automated optimized entry-point creation and bundle inclusion when placing a component on a page. With this feature, you no longer need to configure `javascript_pack_tags` and `stylesheet_pack_tags` on your layouts based on what’s shown. “It just works!”](https://www.shakacode.com/react-on-rails/docs/guides/file-system-based-automated-bundle-generation/)
70-
1. [Redux](https://github.com/reactjs/redux) and [React Router](https://github.com/ReactTraining/react-router#readme) integration with server-side-rendering.
70+
1. [Redux](https://redux.js.org/) and [React Router](https://reactrouter.com/) integration with server-side-rendering.
7171
1. [Internationalization (I18n) and (localization)](https://www.shakacode.com/react-on-rails/docs/guides/i18n)
7272
1. A supportive community. This [web search shows how live public sites are using React on Rails](https://publicwww.com/websites/%22react-on-rails%22++-undeveloped.com+depth%3Aall/).
7373
1. [ReScript Support](https://github.com/shakacode/rescript-react-on-rails-example).

SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Here is the new link:
3636

3737
## **Additional Details**
3838

39-
- [Migration from react-rails](./docs/guides/migrating-from-react-rails.md)
39+
- [Migration from `react-rails`](./docs/guides/migrating-from-react-rails.md)
4040
- [Generator Details](docs/guides/generator-details.md)
4141
- [Updating Dependencies](./docs/additional-reading/updating-dependencies.md)
4242
- [Manual Installation Overview](docs/outdated/manual-installation-overview.md)

docs/additional-details/generator-details.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Another good option is to create a simple test app per the [Tutorial](https://ww
4343

4444
The generated client code follows our organization scheme. Each unique set of functionality is given its own folder inside of `app/javascript/app/bundles`. This encourages modularity of _domains_.
4545

46-
Inside of the generated "HelloWorld" domain you will find the following folders:
46+
Inside the generated "HelloWorld" domain you will find the following folders:
4747

4848
- `startup`: contains the entry point files for webpack. It defaults to a single file that is used for both server and client compilation. But if these need to be different, then you can create two Webpack configurations with separate endpoints. Since RoR v14.2 this is strongly recommended because the client can import `react-on-rails/client` instead of `react-on-rails` for decreased bundle size.
4949
- `containers`: contains "smart components" (components that have functionality and logic that is passed to child "dumb components").

0 commit comments

Comments
 (0)