Skip to content

Commit 3b5a5a2

Browse files
authored
Merge branch 'master' into drop-unsupported-versions
2 parents abfc1fc + aedd2ee commit 3b5a5a2

File tree

15 files changed

+816
-772
lines changed

15 files changed

+816
-772
lines changed

.codeclimate.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: '2'
2+
exclude_patterns:
3+
- lib/assets/
4+
- react-builds/
5+
- react_ujs/dist/
6+
- test/

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ gemfile:
2727
matrix:
2828
fast_finish: true
2929
exclude:
30+
3031
# all except 5.1_sprockets_4, 5.1_webpacker_3, 4.2_sprockets_3
3132
- rvm: jruby-9.1.9.0
3233
gemfile: gemfiles/rails_4.2_sprockets_4.gemfile

README.md

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ Add `webpacker` and `react-rails` to your gemfile and run the installers:
6161

6262
```
6363
$ bundle install
64-
$ rails webpacker:install
65-
$ rails webpacker:install:react
64+
$ rails webpacker:install # OR (on rails version < 5.0) rake webpacker:install
65+
$ rails webpacker:install:react # OR (on rails version < 5.0) rake webpacker:install:react
6666
$ rails generate react:install
6767
```
6868

@@ -72,6 +72,13 @@ This gives you:
7272
- [`ReactRailsUJS`](#ujs) setup in `app/javascript/packs/application.js`
7373
- `app/javascript/packs/server_rendering.js` for [server-side rendering](#server-side-rendering)
7474

75+
Link the JavaScript pack in Rails view using `javascript_pack_tag` [helper](https://github.com/rails/webpacker#usage), for example:
76+
77+
```
78+
<!-- application.html.erb -->
79+
<%= javascript_pack_tag 'application' %>
80+
```
81+
7582
Generate your first component:
7683

7784
```
@@ -327,20 +334,22 @@ Server renderers are stored in a pool and reused between requests. Threaded Rubi
327334
These are the default configurations:
328335

329336
```ruby
330-
# config/environments/application.rb
337+
# config/application.rb
331338
# These are the defaults if you don't specify any yourself
332-
MyApp::Application.configure do
333-
# Settings for the pool of renderers:
334-
config.react.server_renderer_pool_size ||= 1 # ExecJS doesn't allow more than one on MRI
335-
config.react.server_renderer_timeout ||= 20 # seconds
336-
config.react.server_renderer = React::ServerRendering::BundleRenderer
337-
config.react.server_renderer_options = {
338-
files: ["server_rendering.js"], # files to load for prerendering
339-
replay_console: true, # if true, console.* will be replayed client-side
340-
}
341-
# Changing files matching these dirs/exts will cause the server renderer to reload:
342-
config.react.server_renderer_extensions = ["jsx", "js"]
343-
config.react.server_renderer_directories = ["/app/assets/javascripts", "/app/javascript/"]
339+
module MyApp
340+
class Application < Rails::Application
341+
# Settings for the pool of renderers:
342+
config.react.server_renderer_pool_size ||= 1 # ExecJS doesn't allow more than one on MRI
343+
config.react.server_renderer_timeout ||= 20 # seconds
344+
config.react.server_renderer = React::ServerRendering::BundleRenderer
345+
config.react.server_renderer_options = {
346+
files: ["server_rendering.js"], # files to load for prerendering
347+
replay_console: true, # if true, console.* will be replayed client-side
348+
}
349+
# Changing files matching these dirs/exts will cause the server renderer to reload:
350+
config.react.server_renderer_extensions = ["jsx", "js"]
351+
config.react.server_renderer_directories = ["/app/assets/javascripts", "/app/javascript/"]
352+
end
344353
end
345354
```
346355

lib/assets/react-source/development/react-server.js

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

lib/assets/react-source/development/react.js

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

lib/assets/react-source/production/react-server.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/assets/react-source/production/react.js

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/generators/templates/component.es6.jsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
<%= file_header %>class <%= component_name %> extends React.Component {
22
render () {
3-
<% if attributes.size > 0 -%>
43
return (
5-
<div>
4+
<React.Fragment>
65
<% attributes.each do |attribute| -%>
7-
<div><%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}</div>
6+
<%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}
87
<% end -%>
9-
</div>
8+
</React.Fragment>
109
);
11-
<% else -%>
12-
return <div />;
13-
<% end -%>
1410
}
1511
}
1612

lib/generators/templates/component.js.jsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,13 @@
88
<% end -%>
99

1010
render: function() {
11-
<% if attributes.size > 0 -%>
1211
return (
13-
<div>
12+
<React.Fragment>
1413
<% attributes.each do |attribute| -%>
15-
<div><%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}</div>
14+
<%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}
1615
<% end -%>
17-
</div>
16+
</React.Fragment>
1817
);
19-
<% else -%>
20-
return <div />;
21-
<% end -%>
2218
}
2319
});
2420
<%= file_footer %>

lib/generators/templates/component.js.jsx.coffee

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@
77

88
<% end -%>
99
render: ->
10-
<% if attributes.size > 0 -%>
11-
`<div>
10+
`<React.Fragment>
1211
<% attributes.each do |attribute| -%>
13-
<div><%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}</div>
14-
<% end -%>
15-
</div>`
16-
<% else -%>
17-
`<div />`
12+
<%= attribute[:name].titleize %>: {this.props.<%= attribute[:name].camelize(:lower) %>}
1813
<% end -%>
14+
</React.Fragment>`
1915
<%= file_footer %>

0 commit comments

Comments
 (0)