react_on_rails 12.0.4 → 12.0.5.beta.0

This diff has not been reviewed by any users.
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbc3d5e5e388d5f126ac4629c9716ab1e0bbad148617aae2aa0b29a1b8728bf8
4
- data.tar.gz: e7890cf4cd11ddc3c1301d4ec3d7b085335e73964498d554c9a6bd67a6155e9c
3
+ metadata.gz: 7c3761565aa14795caa2b5c486de9016269ff3d39230c11c0d7bd582a507daa4
4
+ data.tar.gz: 21ef8af0d15a75a828852ca179e0b6a9e7ba930036db6ecde58de0e09b5637e5
5
5
  SHA512:
6
- metadata.gz: 012bd1f23efd28c306541db16d630ff8732aaeb50828f2c2d595d18d3600c359778a7177943d1331b9a7c24b3c03fc79542098cb166a721d54816f680410db1d
7
- data.tar.gz: 1b35e5642aaa762ac451d3098e6250b7b42a2ef100680b235500212269d8d2459d23360b82ee60fa881e8e7ff4d44a3150d435eb015904b00df6ab09b2aa07a5
6
+ metadata.gz: 3c2c6a6cd0c2e584cfda8bb0ed3be9ad42c5ae14b196d436c3e99813a61df2278ba10940bfaad1968ea868daeb14b844f04ff440bd6424e3ae9bd3cdaf8119ee
7
+ data.tar.gz: 0bcfac754d871893719d1604d6e42022c55048e608e6e345d0b9ce5948af3a16a5af8e18d36c4b7232dcd064f931905476981553582203f92d1df4bc189f3be2
@@ -2,7 +2,7 @@ version: 2
2
2
 
3
3
  aliases:
4
4
  - &docker-image
5
- - image: circleci/ruby:2.6-node-browsers
5
+ - image: circleci/ruby:2.7-node-browsers
6
6
 
7
7
  # Print critical data and executables versions.
8
8
  - &print-system-info
@@ -6,8 +6,8 @@ jobs:
6
6
  build:
7
7
  strategy:
8
8
  matrix:
9
- ruby: [2.6]
10
- node: [12]
9
+ ruby: [2.7]
10
+ node: [14]
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -16,7 +16,7 @@ jobs:
16
16
  with:
17
17
  ruby-version: ${{ matrix.ruby }}
18
18
  - name: Setup Node
19
- uses: actions/setup-node@v1.4.3
19
+ uses: actions/setup-node@v2-beta
20
20
  with:
21
21
  node-version: ${{ matrix.node }}
22
22
  - name: Print system information
@@ -6,8 +6,8 @@ jobs:
6
6
  build-dummy-app-webpack-test-bundles:
7
7
  strategy:
8
8
  matrix:
9
- ruby: [2.6]
10
- node: [12]
9
+ ruby: [2.7]
10
+ node: [14]
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -16,7 +16,7 @@ jobs:
16
16
  with:
17
17
  ruby-version: ${{ matrix.ruby }}
18
18
  - name: Setup Node
19
- uses: actions/setup-node@v1.4.3
19
+ uses: actions/setup-node@v2-beta
20
20
  with:
21
21
  node-version: ${{ matrix.node }}
22
22
  - name: Print system information
@@ -70,8 +70,8 @@ jobs:
70
70
  needs: build-dummy-app-webpack-test-bundles
71
71
  strategy:
72
72
  matrix:
73
- ruby: [2.6]
74
- node: [12]
73
+ ruby: [2.7]
74
+ node: [14]
75
75
  rake_task: ['run_rspec:all_dummy', 'run_rspec:all_but_examples', 'run_rspec:examples']
76
76
  runs-on: ubuntu-latest
77
77
  steps:
@@ -81,7 +81,7 @@ jobs:
81
81
  with:
82
82
  ruby-version: ${{ matrix.ruby }}
83
83
  - name: Setup Node
84
- uses: actions/setup-node@v1.4.3
84
+ uses: actions/setup-node@v2-beta
85
85
  with:
86
86
  node-version: ${{ matrix.node }}
87
87
  - name: Print system information
@@ -6,12 +6,12 @@ jobs:
6
6
  build:
7
7
  strategy:
8
8
  matrix:
9
- node: [12]
9
+ node: [12, 14]
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
12
  - uses: actions/checkout@v2
13
13
  - name: Setup Node
14
- uses: actions/setup-node@v1.4.3
14
+ uses: actions/setup-node@v2-beta
15
15
  with:
16
16
  node-version: ${{ matrix.node }}
17
17
  - name: Print system information
@@ -6,8 +6,8 @@ jobs:
6
6
  build:
7
7
  strategy:
8
8
  matrix:
9
- ruby: [2.6]
10
- node: [12]
9
+ ruby: [2.7]
10
+ node: [14]
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -1,5 +1,6 @@
1
1
  # This is the configuration used to check the rubocop source code.
2
2
  # Check out: https://github.com/bbatsov/rubocop
3
+ require: rubocop-performance
3
4
 
4
5
  AllCops:
5
6
  NewCops: enable
@@ -18,16 +19,10 @@ AllCops:
18
19
  - <%= path.sub(/^!! /, '') %>
19
20
  <% end %>
20
21
  - '**/*.js'
21
- - '**/log/**/*'
22
22
  - '**/node_modules/**/*'
23
23
  - '**/public/**/*'
24
24
  - '**/tmp/**/*'
25
- - '.git/**/*'
26
- - 'bin/**/*'
27
25
  - 'coverage/**/*'
28
- - 'db/**/*'
29
- - 'db/schema.rb'
30
- - 'db/seeds.rb'
31
26
  - 'gen-examples/examples/**/*'
32
27
  - 'node_modules/**/*'
33
28
  - 'spec/dummy/bin/*'
@@ -39,7 +34,6 @@ AllCops:
39
34
  Naming/FileName:
40
35
  Exclude:
41
36
  - 'Gemfile'
42
- - 'spec/dummy/Gemfile'
43
37
 
44
38
  Layout/LineLength:
45
39
  Max: 120
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- # We'll revert this before the final merge.
5
- # gem "webpacker", git: 'https://github.com/rails/webpacker.git'
6
3
  gem "webpacker"
7
4
  gem "bootsnap", ">= 1.1.0", require: false
8
5
  gem "rails"
@@ -22,9 +19,7 @@ gem "sdoc", group: :doc
22
19
 
23
20
  gem "sprockets"
24
21
 
25
- # Use Capistrano for deployment
26
- # gem 'capistrano-rails', group: :development
27
- gem "awesome_print"
22
+ gem "amazing_print"
28
23
  gem "mini_racer"
29
24
 
30
25
  group :development, :test do
@@ -34,7 +29,8 @@ group :development, :test do
34
29
  gem "pry-doc"
35
30
  gem "pry-rails"
36
31
  gem "pry-rescue"
37
- gem "rubocop", "1.2.0", require: false
32
+ gem "rubocop", require: false
33
+ gem "rubocop-performance", require: false
38
34
  gem "scss_lint", require: false
39
35
  gem "spring"
40
36
  end
data/README.md CHANGED
@@ -94,35 +94,35 @@ Ruby on Rails >=5 and rails/webpacker 4.2+.
94
94
  Note, the best way to understand how to use ReactOnRails is to study a few simple examples. You can do a quick demo setup, either on your existing app or on a new Rails app.
95
95
 
96
96
  1. Do the quick [tutorial](docs/tutorial.md).
97
- 2. Add React on Rails to an existing Rails app per [the instructions](docs/basics/installation-into-an-existing-rails-app.md).
98
- 3. Look at [spec/dummy](spec/dummy), a simple, no DB example.
99
- 3. Look at [github.com/shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial); it's a full-featured example live at [www.reactrails.com](http://www.reactrails.com).
97
+ 1. Add React on Rails to an existing Rails app per [the instructions](docs/basics/installation-into-an-existing-rails-app.md).
98
+ 1. Look at [spec/dummy](spec/dummy), a simple, no DB example. This has an example of using `rails/webpacker` to configure server-side rendering.
99
+ 1. See the example repo of [React on Rails Tutorial With SSR, HMR fast refresh, and TypeScript](https://github.com/shakacode/react_on_rails_tutorial_with_ssr_and_hmr_fast_refresh) for a new way to setup the creation of your SSR bundle with `rails/webpacker`.
100
+ 1. Look at [github.com/shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial); it's a full-featured example live at [www.reactrails.com](http://www.reactrails.com).
100
101
 
101
102
  ## Basic Installation
102
103
 
103
104
  *See also [the instructions for installing into an existing Rails app](docs/basics/installation-into-an-existing-rails-app.md).*
104
105
 
105
- 2. Add the `react_on_rails` gem to Gemfile:
106
-
107
- ```bash
108
- bundle add react_on_rails --strict
109
- ```
110
-
111
- 4. Commit this to git (or else you cannot run the generator unless you pass the option `--ignore-warnings`).
106
+ 1. Add the `rails/webpacker` gem if you don't yet have it.
107
+
108
+ 1. Add the `react_on_rails` gem to Gemfile. _Use the latest version for react_on_rails._
109
+ ```bash
110
+ bundle add react_on_rails --version=12.0.4 --strict
111
+ ```
112
112
 
113
- 5. Run the generator:
113
+ 1. Commit this to git (or else you cannot run the generator unless you pass the option `--ignore-warnings`).
114
114
 
115
+ 1. Run the generator:
115
116
  ```bash
116
117
  rails generate react_on_rails:install
117
118
  ```
118
119
 
119
- 6. Start the app:
120
-
120
+ 1. Start the app:
121
121
  ```bash
122
122
  rails s
123
123
  ```
124
124
 
125
- 7. Visit http://localhost:3000/hello_world.
125
+ 1. Visit http://localhost:3000/hello_world.
126
126
 
127
127
 
128
128
  ### Turning on server rendering
@@ -4,19 +4,26 @@
4
4
 
5
5
  **If you have rails-5 API only project**, first [convert the rails-5 API only app to rails app](#convert-rails-5-api-only-app-to-rails-app) before [getting started](#getting-started-with-an-existing-rails-app).
6
6
 
7
- 1. Add the following to your Gemfile and `bundle install`. We recommend fixing the version of React on Rails, as you will need to keep the exact version in sync with the version in your `client/package.json` file.
7
+ 1. Add the following to your Gemfile and `bundle install`. We recommend fixing the version of React on Rails, as you will need to keep the exact version in sync with the version in your `package.json` file.
8
8
 
9
9
  ```ruby
10
10
  gem "react_on_rails", "12.0.0" # Update to the current version
11
11
  gem "webpacker", "~> 5"
12
12
  ```
13
13
 
14
- 2. Run the following 2 commands to install Webpacker with React. Note, if you are using an older version of Rails than 5.1, you'll need to install webpacker with React per the instructions [here](https://github.com/rails/webpacker).
14
+ 1. Add the webpacker and react_on_rails gems
15
+ _Use the latest version for react_on_rails._
15
16
 
17
+ ```
18
+ bundle add webpacker
19
+ bundle add react_on_rails --version=12.0.4 --strict
20
+ ```
21
+
22
+ 2. Run the following 2 commands to install Webpacker with React. Note, if you are using an older version of Rails than 5.1, you'll need to install webpacker with React per the instructions [here](https://github.com/rails/webpacker).
16
23
 
17
24
  ```bash
18
- $ bundle exec rails webpacker:install
19
- $ bundle exec rails webpacker:install:react
25
+ bundle exec rails webpacker:install
26
+ bundle exec rails webpacker:install:react
20
27
  ```
21
28
 
22
29
  3. Commit this to git (or else you cannot run the generator unless you pass the option `--ignore-warnings`).
@@ -59,11 +59,21 @@ cd test-react-on-rails
59
59
  bundle
60
60
  ```
61
61
 
62
- ## Add the webpacker gem
62
+ ## Add the webpacker and react_on_rails gems
63
+ To avoid issues regarding inconsistent gem and npm versions, you should specify the exact versions
64
+ of both the gem and npm package. In other words, don't use the `^` or `~` in the version specifications.
65
+ _Use the latest version for react_on_rails._
63
66
 
64
67
  ```
68
+ gem 'react_on_rails', '12.0.4' # prefer exact gem version to match npm version
69
+ ```
70
+
71
+ Note: The latest released React On Rails version is considered stable. Please use the latest
72
+ version to ensure you get all the security patches and the best support.
73
+
74
+ ```bash
65
75
  bundle add webpacker
66
- bundle add react_on_rails
76
+ bundle add react_on_rails --version=12.0.4 --strict
67
77
  ```
68
78
 
69
79
  ## Run the webpacker generator
@@ -82,25 +92,7 @@ git add -A
82
92
  git commit -m "Initial commit"
83
93
  ```
84
94
 
85
- ## Add the **React On Rails** gem to your `Gemfile`:
86
-
87
- To avoid issues regarding inconsistent gem and npm versions, you should specify the exact versions
88
- of both the gem and npm package. In other words, don't use the `^` or `~` in the version specifications.
89
-
90
- ```
91
- gem 'react_on_rails', '12.0.0' # prefer exact gem version to match npm version
92
- ```
93
-
94
- Note: The latest released React On Rails version is considered stable. Please use the latest
95
- version to ensure you get all the security patches and the best support.
96
-
97
- Run `bundle` and commit the changes.
98
-
99
- ```
100
- bundle
101
-
102
- git commit -am "Added React on Rails Gem"
103
- ```
95
+ ## Run the React on Rails Generator
104
96
 
105
97
  Install React on Rails: `rails generate react_on_rails:install`. You need to first git commit your files before running the generator, or else it will generate an error.
106
98
 
@@ -17,7 +17,7 @@ if ENV["COVERAGE"] == "true"
17
17
 
18
18
  # Don't report anything that has "spec" in the path
19
19
  add_filter do |src|
20
- src.filename =~ %r{/spec/}
20
+ src.filename.include?("/spec/")
21
21
  end
22
22
  end
23
23
  end
@@ -170,7 +170,7 @@ module ReactOnRails
170
170
  def redux_store_hydration_data
171
171
  return if @registered_stores_defer_render.blank?
172
172
 
173
- @registered_stores_defer_render.reduce("".dup) do |accum, redux_store_data|
173
+ @registered_stores_defer_render.reduce(+"") do |accum, redux_store_data|
174
174
  accum << render_redux_store_data(redux_store_data)
175
175
  end.html_safe
176
176
  end
@@ -487,13 +487,13 @@ module ReactOnRails
487
487
  end
488
488
 
489
489
  def initialize_redux_stores
490
- result = <<-JS.dup
490
+ result = +<<-JS
491
491
  ReactOnRails.clearHydratedStores();
492
492
  JS
493
493
 
494
494
  return result unless @registered_stores.present? || @registered_stores_defer_render.present?
495
495
 
496
- declarations = "var reduxProps, store, storeGenerator;\n".dup
496
+ declarations = +"var reduxProps, store, storeGenerator;\n"
497
497
  all_stores = (@registered_stores || []) + (@registered_stores_defer_render || [])
498
498
 
499
499
  result << all_stores.each_with_object(declarations) do |redux_store_data, memo|
@@ -32,12 +32,12 @@ module ReactOnRails
32
32
  end
33
33
 
34
34
  def exist_files
35
- @exist_files ||= files.select(&File.method(:exist?))
35
+ @exist_files ||= files.select { |file| File.exist?(file) }
36
36
  end
37
37
 
38
38
  def files_are_outdated
39
- latest_yml = locale_files.map(&File.method(:mtime)).max
40
- earliest = exist_files.map(&File.method(:mtime)).min
39
+ latest_yml = locale_files.map { |file| File.mtime(file) }.max
40
+ earliest = exist_files.map { |file| File.mtime(file) }.min
41
41
  latest_yml > earliest
42
42
  end
43
43
 
@@ -46,7 +46,7 @@ module ReactOnRails
46
46
  private
47
47
 
48
48
  def calc_message(component_name, console_messages, err, js_code, props)
49
- message = "ERROR in SERVER PRERENDERING\n".dup
49
+ message = +"ERROR in SERVER PRERENDERING\n"
50
50
  if err
51
51
  message << <<~MSG
52
52
  Encountered error: \"#{err}\"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReactOnRails
4
- VERSION = "12.0.4"
4
+ VERSION = "12.0.5.beta.0"
5
5
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-on-rails",
3
- "version": "12.0.4",
3
+ "version": "12.0.5-beta.0",
4
4
  "description": "react-on-rails JavaScript for react_on_rails Ruby gem",
5
5
  "main": "node_package/lib/ReactOnRails.js",
6
6
  "directories": {
@@ -59,7 +59,7 @@ task :release, %i[gem_version dry_run tools_install] do |_t, args|
59
59
  sh_in_dir(gem_root, "git add .")
60
60
 
61
61
  # Will bump the yarn version, commit, tag the commit, push to repo, and release on yarn
62
- release_it_command = "$(yarn bin)/release-it".dup
62
+ release_it_command = +"$(yarn bin)/release-it"
63
63
  release_it_command << " #{npm_version}" unless npm_version.strip.empty?
64
64
  release_it_command << " --non-interactive --npm.publish"
65
65
  release_it_command << " --dry-run --verbose" if is_dry_run
@@ -106,7 +106,7 @@ def run_tests_in(dir, options = {})
106
106
 
107
107
  command_name = options.fetch(:command_name, path.basename)
108
108
  rspec_args = options.fetch(:rspec_args, "")
109
- env_vars = "#{options.fetch(:env_vars, '')} TEST_ENV_COMMAND_NAME=\"#{command_name}\"".dup
109
+ env_vars = +"#{options.fetch(:env_vars, '')} TEST_ENV_COMMAND_NAME=\"#{command_name}\""
110
110
  env_vars << "COVERAGE=true" if ENV["USE_COVERALLS"]
111
111
  sh_in_dir(path.realpath, "#{env_vars} bundle exec rspec #{rspec_args}")
112
112
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.0.4
4
+ version: 12.0.5.beta.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-14 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -326,9 +326,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
326
326
  version: 2.5.0
327
327
  required_rubygems_version: !ruby/object:Gem::Requirement
328
328
  requirements:
329
- - - ">="
329
+ - - ">"
330
330
  - !ruby/object:Gem::Version
331
- version: '0'
331
+ version: 1.3.1
332
332
  requirements: []
333
333
  rubygems_version: 3.1.4
334
334
  signing_key: