react_on_rails 10.0.0 → 11.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 +4 -4
- data/.eslintrc +4 -0
- data/.rubocop.yml +2 -2
- data/.travis.yml +3 -0
- data/CHANGELOG.md +81 -88
- data/CONTRIBUTING.md +0 -7
- data/Dockerfile_tests +12 -0
- data/Gemfile +8 -13
- data/NEWS.md +2 -0
- data/PROJECTS.md +10 -2
- data/README.md +137 -121
- data/app/helpers/react_on_rails_helper.rb +1 -533
- data/docker-compose.yml +11 -0
- data/docs/additional-reading/caching-and-performance.md +4 -0
- data/docs/additional-reading/capistrano-deployment.md +18 -0
- data/docs/additional-reading/elastic-beanstalk.md +53 -33
- data/docs/additional-reading/server-rendering-tips.md +4 -4
- data/docs/additional-reading/troubleshooting-when-using-webpacker.md +90 -0
- data/docs/api/ruby-api.md +7 -2
- data/docs/basics/configuration.md +23 -9
- data/docs/basics/i18n.md +4 -0
- data/docs/basics/upgrading-react-on-rails.md +181 -0
- data/docs/tutorial.md +7 -11
- data/lib/generators/react_on_rails/base_generator.rb +6 -3
- data/lib/generators/react_on_rails/dev_tests_generator.rb +1 -1
- data/lib/generators/react_on_rails/install_generator.rb +1 -1
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +1 -1
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +2 -2
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +3 -2
- data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +2 -2
- data/lib/react_on_rails/assets_precompile.rb +8 -4
- data/lib/react_on_rails/configuration.rb +34 -20
- data/lib/react_on_rails/error.rb +4 -0
- data/lib/react_on_rails/locales_to_js.rb +2 -2
- data/lib/react_on_rails/prerender_error.rb +2 -2
- data/lib/react_on_rails/react_on_rails_helper.rb +547 -0
- data/lib/react_on_rails/server_rendering_pool/{exec.rb → ruby_embedded_java_script.rb} +37 -40
- data/lib/react_on_rails/server_rendering_pool.rb +21 -10
- data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +2 -2
- data/lib/react_on_rails/test_helper.rb +1 -1
- data/lib/react_on_rails/utils.rb +14 -52
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/version_checker.rb +33 -12
- data/lib/react_on_rails/webpacker_utils.rb +42 -0
- data/lib/react_on_rails.rb +3 -2
- data/package.json +2 -5
- data/rakelib/dummy_apps.rake +2 -1
- data/rakelib/example_type.rb +1 -1
- data/rakelib/examples.rake +3 -2
- data/rakelib/lint.rake +3 -2
- data/rakelib/node_package.rake +2 -1
- data/rakelib/release.rake +4 -5
- data/rakelib/run_rspec.rake +3 -4
- data/rakelib/task_helpers.rb +1 -1
- data/react_on_rails.gemspec +23 -13
- data/yarn.lock +3 -39
- metadata +75 -49
- data/lib/react_on_rails/server_rendering_pool/node.rb +0 -83
- data/lib/react_on_rails/test_helper/node_process_launcher.rb +0 -14
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "connection_pool"
|
|
4
|
-
require_relative "server_rendering_pool/
|
|
5
|
-
require_relative "server_rendering_pool/node"
|
|
4
|
+
require_relative "server_rendering_pool/ruby_embedded_java_script"
|
|
6
5
|
|
|
7
6
|
# Based on the react-rails gem.
|
|
8
7
|
# None of these methods should be called directly.
|
|
@@ -10,17 +9,29 @@ require_relative "server_rendering_pool/node"
|
|
|
10
9
|
module ReactOnRails
|
|
11
10
|
module ServerRenderingPool
|
|
12
11
|
class << self
|
|
12
|
+
def react_on_rails_pro?
|
|
13
|
+
@react_on_rails_pro ||= gem_available?("react_on_rails_pro")
|
|
14
|
+
end
|
|
15
|
+
|
|
13
16
|
def pool
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
@pool ||= if react_on_rails_pro?
|
|
18
|
+
ReactOnRailsPro::ServerRenderingPool::ProRendering
|
|
19
|
+
else
|
|
20
|
+
ReactOnRails::ServerRenderingPool::RubyEmbeddedJavaScript
|
|
21
|
+
end
|
|
19
22
|
end
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
delegate :server_render_js_with_console_logging, :reset_pool_if_server_bundle_was_modified,
|
|
25
|
+
:reset_pool, to: :pool
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def gem_available?(name)
|
|
30
|
+
Gem::Specification.find_by_name(name)
|
|
31
|
+
rescue Gem::LoadError
|
|
32
|
+
false
|
|
33
|
+
rescue StandardError
|
|
34
|
+
Gem.available?(name)
|
|
24
35
|
end
|
|
25
36
|
end
|
|
26
37
|
end
|
|
@@ -26,8 +26,8 @@ module ReactOnRails
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def stale_generated_webpack_files
|
|
29
|
-
manifest_needed = ReactOnRails::
|
|
30
|
-
!ReactOnRails::
|
|
29
|
+
manifest_needed = ReactOnRails::WebpackerUtils.using_webpacker? &&
|
|
30
|
+
!ReactOnRails::WebpackerUtils.manifest_exists?
|
|
31
31
|
|
|
32
32
|
return ["manifest.json"] if manifest_needed
|
|
33
33
|
|
|
@@ -57,7 +57,7 @@ module ReactOnRails
|
|
|
57
57
|
source_path: nil,
|
|
58
58
|
generated_assets_dir: nil,
|
|
59
59
|
webpack_generated_files: nil)
|
|
60
|
-
ReactOnRails::
|
|
60
|
+
ReactOnRails::WebpackerUtils.check_manifest_not_cached
|
|
61
61
|
if webpack_assets_status_checker.nil?
|
|
62
62
|
source_path ||= ReactOnRails::Utils.source_path
|
|
63
63
|
generated_assets_dir ||= ReactOnRails::Utils.generated_assets_dir
|
data/lib/react_on_rails/utils.rb
CHANGED
|
@@ -72,7 +72,7 @@ exitstatus: #{status.exitstatus}#{stdout_msg}#{stderr_msg}
|
|
|
72
72
|
return @server_bundle_path if @server_bundle_path && !Rails.env.development?
|
|
73
73
|
|
|
74
74
|
bundle_name = ReactOnRails.configuration.server_bundle_js_file
|
|
75
|
-
@server_bundle_path = if using_webpacker?
|
|
75
|
+
@server_bundle_path = if ReactOnRails::WebpackerUtils.using_webpacker?
|
|
76
76
|
begin
|
|
77
77
|
bundle_js_file_path(bundle_name)
|
|
78
78
|
rescue Webpacker::Manifest::MissingEntryError
|
|
@@ -85,9 +85,8 @@ exitstatus: #{status.exitstatus}#{stdout_msg}#{stderr_msg}
|
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
def self.bundle_js_file_path(bundle_name)
|
|
88
|
-
if using_webpacker?
|
|
89
|
-
|
|
90
|
-
bundle_js_file_path_from_webpacker(bundle_name)
|
|
88
|
+
if ReactOnRails::WebpackerUtils.using_webpacker? && bundle_name != "manifest.json"
|
|
89
|
+
ReactOnRails::WebpackerUtils.bundle_js_file_path_from_webpacker(bundle_name)
|
|
91
90
|
else
|
|
92
91
|
# Default to the non-hashed name in the specified output directory, which, for legacy
|
|
93
92
|
# React on Rails, this is the output directory picked up by the asset pipeline.
|
|
@@ -102,9 +101,7 @@ exitstatus: #{status.exitstatus}#{stdout_msg}#{stderr_msg}
|
|
|
102
101
|
def self.rails_version_less_than(version)
|
|
103
102
|
@rails_version_less_than ||= {}
|
|
104
103
|
|
|
105
|
-
if @rails_version_less_than.key?(version)
|
|
106
|
-
return @rails_version_less_than[version]
|
|
107
|
-
end
|
|
104
|
+
return @rails_version_less_than[version] if @rails_version_less_than.key?(version)
|
|
108
105
|
|
|
109
106
|
@rails_version_less_than[version] = begin
|
|
110
107
|
Gem::Version.new(Rails.version) < Gem::Version.new(version)
|
|
@@ -117,63 +114,28 @@ exitstatus: #{status.exitstatus}#{stdout_msg}#{stderr_msg}
|
|
|
117
114
|
|
|
118
115
|
module Required
|
|
119
116
|
def required(arg_name)
|
|
120
|
-
raise
|
|
117
|
+
raise ReactOnRailsPro::Error, "#{arg_name} is required"
|
|
121
118
|
end
|
|
122
119
|
end
|
|
123
120
|
|
|
124
121
|
def self.prepend_cd_node_modules_directory(cmd)
|
|
125
|
-
|
|
126
|
-
"cd #{ReactOnRails.configuration.node_modules_location} && #{cmd}"
|
|
122
|
+
"cd \"#{ReactOnRails.configuration.node_modules_location}\" && #{cmd}"
|
|
127
123
|
end
|
|
128
124
|
|
|
129
125
|
def self.source_path
|
|
130
|
-
|
|
126
|
+
if ReactOnRails::WebpackerUtils.using_webpacker?
|
|
127
|
+
ReactOnRails::WebpackerUtils.webpacker_source_path
|
|
128
|
+
else
|
|
129
|
+
ReactOnRails.configuration.node_modules_location
|
|
130
|
+
end
|
|
131
131
|
end
|
|
132
132
|
|
|
133
133
|
def self.generated_assets_dir
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
###########################################################################
|
|
138
|
-
# WEBPACKER WRAPPERS
|
|
139
|
-
###########################################################################
|
|
140
|
-
def self.using_webpacker?
|
|
141
|
-
ActionController::Base.helpers.respond_to?(:asset_pack_path)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def self.bundle_js_file_path_from_webpacker(bundle_name)
|
|
145
|
-
possible_result = Webpacker.manifest.lookup(bundle_name)
|
|
146
|
-
hashed_bundle_name = possible_result.nil? ? Webpacker.manifest.lookup!(bundle_name) : possible_result
|
|
147
|
-
if Webpacker.dev_server.running?
|
|
148
|
-
result = "#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}#{hashed_bundle_name}"
|
|
149
|
-
result
|
|
134
|
+
if ReactOnRails::WebpackerUtils.using_webpacker?
|
|
135
|
+
ReactOnRails::WebpackerUtils.webpacker_public_output_path
|
|
150
136
|
else
|
|
151
|
-
|
|
152
|
-
Rails.root.join(File.join("public", hashed_bundle_name)).to_s
|
|
137
|
+
ReactOnRails.configuration.generated_assets_dir
|
|
153
138
|
end
|
|
154
139
|
end
|
|
155
|
-
|
|
156
|
-
def self.webpacker_source_path
|
|
157
|
-
Webpacker.config.source_path
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
def self.webpacker_public_output_path
|
|
161
|
-
Webpacker.config.public_output_path
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
def self.manifest_exists?
|
|
165
|
-
Webpacker.config.public_manifest_path.exist?
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
def self.check_manifest_not_cached
|
|
169
|
-
return unless using_webpacker? && Webpacker.config.cache_manifest?
|
|
170
|
-
msg = <<-MSG.strip_heredoc
|
|
171
|
-
ERROR: you have enabled cache_manifest in the #{Rails.env} env when using the
|
|
172
|
-
ReactOnRails::TestHelper.configure_rspec_to_compile_assets helper
|
|
173
|
-
To fix this: edit your config/webpacker.yml file and set cache_manifest to false for test.
|
|
174
|
-
MSG
|
|
175
|
-
puts wrap_message(msg)
|
|
176
|
-
exit!
|
|
177
|
-
end
|
|
178
140
|
end
|
|
179
141
|
end
|
|
@@ -22,23 +22,37 @@ module ReactOnRails
|
|
|
22
22
|
return if node_package_version.relative_path?
|
|
23
23
|
node_major_minor_patch = node_package_version.major_minor_patch
|
|
24
24
|
gem_major_minor_patch = gem_major_minor_patch_version
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
versions_match = node_major_minor_patch[0] == gem_major_minor_patch[0] &&
|
|
26
|
+
node_major_minor_patch[1] == gem_major_minor_patch[1] &&
|
|
27
|
+
node_major_minor_patch[2] == gem_major_minor_patch[2]
|
|
28
28
|
|
|
29
|
-
raise_differing_versions_warning
|
|
29
|
+
raise_differing_versions_warning unless versions_match
|
|
30
|
+
|
|
31
|
+
raise_node_semver_version_warning if node_package_version.semver_wildcard?
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
private
|
|
33
35
|
|
|
36
|
+
def common_error_msg
|
|
37
|
+
<<-MSG.strip_heredoc
|
|
38
|
+
Detected: #{node_package_version.raw}
|
|
39
|
+
gem: #{gem_version}
|
|
40
|
+
Ensure the installed version of the gem is the same as the version of
|
|
41
|
+
your installed node package. Do not use >= or ~> in your Gemfile for react_on_rails.
|
|
42
|
+
Do not use ^ or ~ in your package.json for react-on-rails.
|
|
43
|
+
Run `yarn add react-on-rails --exact` in the directory containing folder node_modules.
|
|
44
|
+
MSG
|
|
45
|
+
end
|
|
46
|
+
|
|
34
47
|
def raise_differing_versions_warning
|
|
35
|
-
msg = "**ERROR** ReactOnRails: ReactOnRails gem and node package versions do not match\n"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
48
|
+
msg = "**ERROR** ReactOnRails: ReactOnRails gem and node package versions do not match\n#{common_error_msg}"
|
|
49
|
+
raise ReactOnRails::Error, msg
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def raise_node_semver_version_warning
|
|
53
|
+
msg = "**ERROR** ReactOnRails: Your node package version for react-on-rails contains a "\
|
|
54
|
+
"^ or ~\n#{common_error_msg}"
|
|
55
|
+
raise ReactOnRails::Error, msg
|
|
42
56
|
end
|
|
43
57
|
|
|
44
58
|
def gem_version
|
|
@@ -71,10 +85,14 @@ module ReactOnRails
|
|
|
71
85
|
parsed_package_contents["dependencies"].key?("react-on-rails")
|
|
72
86
|
parsed_package_contents["dependencies"]["react-on-rails"]
|
|
73
87
|
else
|
|
74
|
-
raise "
|
|
88
|
+
raise ReactOnRails::Error, "No 'react-on-rails' entry in package.json dependencies"
|
|
75
89
|
end
|
|
76
90
|
end
|
|
77
91
|
|
|
92
|
+
def semver_wildcard?
|
|
93
|
+
raw.match(/[~^]/).present?
|
|
94
|
+
end
|
|
95
|
+
|
|
78
96
|
def relative_path?
|
|
79
97
|
raw.match(%r{(\.\.|\Afile:///)}).present?
|
|
80
98
|
end
|
|
@@ -82,6 +100,9 @@ module ReactOnRails
|
|
|
82
100
|
def major_minor_patch
|
|
83
101
|
return if relative_path?
|
|
84
102
|
match = raw.match(MAJOR_MINOR_PATCH_VERSION_REGEX)
|
|
103
|
+
unless match
|
|
104
|
+
raise ReactOnRails::Error, "Cannot parse version number '#{raw}' (wildcard versions are not supported)"
|
|
105
|
+
end
|
|
85
106
|
[match[1], match[2], match[3]]
|
|
86
107
|
end
|
|
87
108
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module ReactOnRails
|
|
2
|
+
module WebpackerUtils
|
|
3
|
+
def self.using_webpacker?
|
|
4
|
+
ActionController::Base.helpers.respond_to?(:asset_pack_path)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.bundle_js_file_path_from_webpacker(bundle_name)
|
|
8
|
+
possible_result = Webpacker.manifest.lookup(bundle_name)
|
|
9
|
+
hashed_bundle_name = possible_result.nil? ? Webpacker.manifest.lookup!(bundle_name) : possible_result
|
|
10
|
+
if Webpacker.dev_server.running?
|
|
11
|
+
result = "#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}#{hashed_bundle_name}"
|
|
12
|
+
result
|
|
13
|
+
else
|
|
14
|
+
# Next line will throw if the file or manifest does not exist
|
|
15
|
+
Rails.root.join(File.join("public", hashed_bundle_name)).to_s
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.webpacker_source_path
|
|
20
|
+
Webpacker.config.source_path
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.webpacker_public_output_path
|
|
24
|
+
Webpacker.config.public_output_path
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.manifest_exists?
|
|
28
|
+
Webpacker.config.public_manifest_path.exist?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.check_manifest_not_cached
|
|
32
|
+
return unless using_webpacker? && Webpacker.config.cache_manifest?
|
|
33
|
+
msg = <<-MSG.strip_heredoc
|
|
34
|
+
ERROR: you have enabled cache_manifest in the #{Rails.env} env when using the
|
|
35
|
+
ReactOnRails::TestHelper.configure_rspec_to_compile_assets helper
|
|
36
|
+
To fix this: edit your config/webpacker.yml file and set cache_manifest to false for test.
|
|
37
|
+
MSG
|
|
38
|
+
puts wrap_message(msg)
|
|
39
|
+
exit!
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/lib/react_on_rails.rb
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require "rails"
|
|
4
4
|
|
|
5
|
+
require "react_on_rails/error"
|
|
6
|
+
require "react_on_rails/react_on_rails_helper"
|
|
5
7
|
require "react_on_rails/controller"
|
|
6
8
|
require "react_on_rails/version"
|
|
7
9
|
require "react_on_rails/version_checker"
|
|
@@ -13,9 +15,8 @@ require "react_on_rails/version_syntax_converter"
|
|
|
13
15
|
require "react_on_rails/test_helper"
|
|
14
16
|
require "react_on_rails/git_utils"
|
|
15
17
|
require "react_on_rails/utils"
|
|
16
|
-
require "react_on_rails/
|
|
18
|
+
require "react_on_rails/webpacker_utils"
|
|
17
19
|
require "react_on_rails/test_helper/webpack_assets_compiler"
|
|
18
20
|
require "react_on_rails/test_helper/webpack_assets_status_checker"
|
|
19
21
|
require "react_on_rails/test_helper/ensure_assets_compiled"
|
|
20
|
-
require "react_on_rails/test_helper/node_process_launcher"
|
|
21
22
|
require "react_on_rails/locales_to_js"
|
data/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-on-rails",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.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": {
|
|
@@ -87,8 +87,5 @@
|
|
|
87
87
|
"url": "https://github.com/shakacode/react_on_rails/issues"
|
|
88
88
|
},
|
|
89
89
|
"homepage": "https://github.com/shakacode/react_on_rails#readme",
|
|
90
|
-
"dependencies": {
|
|
91
|
-
"react-on-rails": "^9.0.3",
|
|
92
|
-
"react-redux": "^5.0.6"
|
|
93
|
-
}
|
|
90
|
+
"dependencies": {}
|
|
94
91
|
}
|
data/rakelib/dummy_apps.rake
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative "task_helpers"
|
|
4
|
-
include ReactOnRails::TaskHelpers
|
|
5
4
|
|
|
6
5
|
namespace :dummy_apps do
|
|
6
|
+
include ReactOnRails::TaskHelpers
|
|
7
|
+
|
|
7
8
|
task :yarn_install do
|
|
8
9
|
yarn_install_cmd = "yarn install --mutex network"
|
|
9
10
|
sh_in_dir(dummy_app_dir, yarn_install_cmd)
|
data/rakelib/example_type.rb
CHANGED
data/rakelib/examples.rake
CHANGED
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
require "yaml"
|
|
9
9
|
require_relative "example_type"
|
|
10
10
|
require_relative "task_helpers"
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
namespace :examples do # rubocop:disable Metrics/BlockLength
|
|
13
|
+
include ReactOnRails::TaskHelpers
|
|
13
14
|
# Loads data from examples_config.yml and instantiates corresponding ExampleType objects
|
|
14
|
-
examples_config_file = File.expand_path("
|
|
15
|
+
examples_config_file = File.expand_path("examples_config.yml", __dir__)
|
|
15
16
|
examples_config = symbolize_keys(YAML.safe_load(File.read(examples_config_file)))
|
|
16
17
|
examples_config[:example_type_data].each { |example_type_data| ExampleType.new(symbolize_keys(example_type_data)) }
|
|
17
18
|
|
data/rakelib/lint.rake
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative "task_helpers"
|
|
4
|
-
include ReactOnRails::TaskHelpers
|
|
5
4
|
|
|
6
|
-
namespace :lint do
|
|
5
|
+
namespace :lint do # rubocop:disable Metrics/BlockLength
|
|
6
|
+
include ReactOnRails::TaskHelpers
|
|
7
|
+
|
|
7
8
|
desc "Run Rubocop as shell"
|
|
8
9
|
task :rubocop do
|
|
9
10
|
sh_in_dir(gem_root, "bundle exec rubocop .")
|
data/rakelib/node_package.rake
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative "task_helpers"
|
|
4
|
-
include ReactOnRails::TaskHelpers
|
|
5
4
|
|
|
6
5
|
namespace :node_package do
|
|
6
|
+
include ReactOnRails::TaskHelpers
|
|
7
|
+
|
|
7
8
|
task :build do
|
|
8
9
|
puts "Building Node Package and running 'yarn link'"
|
|
9
10
|
sh "yarn run build && yarn link"
|
data/rakelib/release.rake
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative "task_helpers"
|
|
4
|
-
include ReactOnRails::TaskHelpers
|
|
5
4
|
require_relative File.join(gem_root, "lib", "react_on_rails", "version_syntax_converter")
|
|
6
5
|
require_relative File.join(gem_root, "lib", "react_on_rails", "git_utils")
|
|
7
6
|
require_relative File.join(gem_root, "lib", "react_on_rails", "utils")
|
|
8
|
-
|
|
9
7
|
desc("Releases both the gem and node package using the given version.
|
|
10
8
|
|
|
11
9
|
IMPORTANT: the gem version must be in valid rubygem format (no dashes).
|
|
@@ -24,6 +22,8 @@ Example: `rake release[2.1.0,false]`")
|
|
|
24
22
|
|
|
25
23
|
# rubocop:disable Metrics/BlockLength
|
|
26
24
|
task :release, %i[gem_version dry_run tools_install] do |_t, args|
|
|
25
|
+
include ReactOnRails::TaskHelpers
|
|
26
|
+
|
|
27
27
|
class MessageHandler
|
|
28
28
|
def add_error(error)
|
|
29
29
|
raise error
|
|
@@ -60,9 +60,7 @@ task :release, %i[gem_version dry_run tools_install] do |_t, args|
|
|
|
60
60
|
sh_in_dir(gem_root, "git add .")
|
|
61
61
|
|
|
62
62
|
# Will bump the yarn version, commit, tag the commit, push to repo, and release on yarn
|
|
63
|
-
# rubocop:disable Performance/UnfreezeString
|
|
64
63
|
release_it_command = "$(yarn bin)/release-it --non-interactive --npm.publish".dup
|
|
65
|
-
# rubocop:enable Performance/UnfreezeString
|
|
66
64
|
release_it_command << " --dry-run --verbose" if is_dry_run
|
|
67
65
|
release_it_command << " #{npm_version}" unless npm_version.strip.empty?
|
|
68
66
|
sh_in_dir(gem_root, release_it_command)
|
|
@@ -72,8 +70,9 @@ task :release, %i[gem_version dry_run tools_install] do |_t, args|
|
|
|
72
70
|
sh_in_dir(gem_root, "gem release")
|
|
73
71
|
|
|
74
72
|
# Update master with new npm version
|
|
75
|
-
sh_in_dir(File.join(gem_root, "spec", "dummy", "client"), "yarn add react-on-rails@#{npm_version}")
|
|
73
|
+
sh_in_dir(File.join(gem_root, "spec", "dummy", "client"), "yarn add react-on-rails@#{npm_version} --exact")
|
|
76
74
|
sh_in_dir(gem_root, "git commit -am 'Updated spec/dummy/client/package.json latest version'")
|
|
77
75
|
sh_in_dir(gem_root, "git push")
|
|
78
76
|
end
|
|
79
77
|
end
|
|
78
|
+
# rubocop:enable Metrics/BlockLength
|
data/rakelib/run_rspec.rake
CHANGED
|
@@ -7,10 +7,10 @@ require "pathname"
|
|
|
7
7
|
require_relative "task_helpers"
|
|
8
8
|
require_relative "example_type"
|
|
9
9
|
|
|
10
|
-
include ReactOnRails::TaskHelpers
|
|
11
|
-
|
|
12
10
|
# rubocop:disable Metrics/BlockLength
|
|
13
11
|
namespace :run_rspec do
|
|
12
|
+
include ReactOnRails::TaskHelpers
|
|
13
|
+
|
|
14
14
|
spec_dummy_dir = File.join("spec", "dummy")
|
|
15
15
|
|
|
16
16
|
desc "Run RSpec for top level only"
|
|
@@ -82,6 +82,7 @@ namespace :run_rspec do
|
|
|
82
82
|
puts "Completed all RSpec tests"
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
|
+
# rubocop:enable Metrics/BlockLength
|
|
85
86
|
|
|
86
87
|
desc "js tests (same as 'yarn run test')"
|
|
87
88
|
task :js_tests do
|
|
@@ -119,9 +120,7 @@ def run_tests_in(dir, options = {})
|
|
|
119
120
|
|
|
120
121
|
command_name = options.fetch(:command_name, path.basename)
|
|
121
122
|
rspec_args = options.fetch(:rspec_args, "")
|
|
122
|
-
# rubocop:disable Performance/UnfreezeString
|
|
123
123
|
env_vars = "#{options.fetch(:env_vars, '')} TEST_ENV_COMMAND_NAME=\"#{command_name}\"".dup
|
|
124
|
-
# rubocop:enable Performance/UnfreezeString
|
|
125
124
|
env_vars << "COVERAGE=true" if ENV["USE_COVERALLS"]
|
|
126
125
|
sh_in_dir(path.realpath, "#{env_vars} bundle exec rspec #{rspec_args}")
|
|
127
126
|
end
|
data/rakelib/task_helpers.rb
CHANGED
data/react_on_rails.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
lib = File.expand_path("
|
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require "react_on_rails/version"
|
|
6
6
|
|
|
@@ -23,28 +23,38 @@ Gem::Specification.new do |s|
|
|
|
23
23
|
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
24
|
s.require_paths = ["lib"]
|
|
25
25
|
|
|
26
|
-
s.required_ruby_version = ">= 2.
|
|
26
|
+
s.required_ruby_version = ">= 2.1.0"
|
|
27
27
|
|
|
28
|
-
s.add_dependency "
|
|
28
|
+
s.add_dependency "addressable"
|
|
29
29
|
s.add_dependency "connection_pool"
|
|
30
30
|
s.add_dependency "execjs", "~> 2.5"
|
|
31
31
|
s.add_dependency "rails", ">= 3.2"
|
|
32
|
-
s.add_dependency "
|
|
32
|
+
s.add_dependency "rainbow", "~> 2.2"
|
|
33
33
|
|
|
34
|
-
s.add_development_dependency "
|
|
35
|
-
s.add_development_dependency "bundler", "~> 1
|
|
36
|
-
s.add_development_dependency "rake", "~> 10.0"
|
|
37
|
-
s.add_development_dependency "listen"
|
|
38
|
-
s.add_development_dependency "rspec"
|
|
34
|
+
s.add_development_dependency "awesome_print"
|
|
35
|
+
s.add_development_dependency "bundler", "~> 1"
|
|
39
36
|
s.add_development_dependency "coveralls"
|
|
37
|
+
s.add_development_dependency "gem-release"
|
|
40
38
|
s.add_development_dependency "generator_spec"
|
|
39
|
+
s.add_development_dependency "listen"
|
|
41
40
|
s.add_development_dependency "pry"
|
|
42
41
|
s.add_development_dependency "pry-byebug"
|
|
43
|
-
s.add_development_dependency "pry-stack_explorer"
|
|
44
42
|
s.add_development_dependency "pry-doc"
|
|
43
|
+
s.add_development_dependency "pry-rescue"
|
|
44
|
+
s.add_development_dependency "pry-stack_explorer"
|
|
45
45
|
s.add_development_dependency "pry-state"
|
|
46
46
|
s.add_development_dependency "pry-toys"
|
|
47
|
-
s.add_development_dependency "
|
|
48
|
-
|
|
49
|
-
s.add_development_dependency "
|
|
47
|
+
s.add_development_dependency "rails", "~> 5.2"
|
|
48
|
+
|
|
49
|
+
s.add_development_dependency "rake", "~> 10.0"
|
|
50
|
+
s.add_development_dependency "rspec"
|
|
51
|
+
s.add_development_dependency "rubocop", "0.55.0"
|
|
52
|
+
|
|
53
|
+
s.post_install_message = '
|
|
54
|
+
--------------------------------------------------------------------------------
|
|
55
|
+
Email contact@shakacode.com for access to our slack room and information about our "pro support plan"
|
|
56
|
+
which supports better performance, via caching helpers and our node rendering server.
|
|
57
|
+
--------------------------------------------------------------------------------
|
|
58
|
+
'
|
|
50
59
|
end
|
|
60
|
+
# rubocop:enable Metrics/BlockLength
|
data/yarn.lock
CHANGED
|
@@ -2137,10 +2137,6 @@ hoek@2.x.x:
|
|
|
2137
2137
|
version "2.16.3"
|
|
2138
2138
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
|
2139
2139
|
|
|
2140
|
-
hoist-non-react-statics@^2.2.1:
|
|
2141
|
-
version "2.3.1"
|
|
2142
|
-
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0"
|
|
2143
|
-
|
|
2144
2140
|
home-or-tmp@^2.0.0:
|
|
2145
2141
|
version "2.0.0"
|
|
2146
2142
|
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
|
@@ -2261,7 +2257,7 @@ interpret@^1.0.0:
|
|
|
2261
2257
|
version "1.0.3"
|
|
2262
2258
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
|
|
2263
2259
|
|
|
2264
|
-
invariant@^2.
|
|
2260
|
+
invariant@^2.2.2:
|
|
2265
2261
|
version "2.2.2"
|
|
2266
2262
|
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
|
2267
2263
|
dependencies:
|
|
@@ -2449,13 +2445,6 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
|
|
|
2449
2445
|
version "3.0.2"
|
|
2450
2446
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
|
2451
2447
|
|
|
2452
|
-
js-yaml@^3.10.0:
|
|
2453
|
-
version "3.10.0"
|
|
2454
|
-
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
|
|
2455
|
-
dependencies:
|
|
2456
|
-
argparse "^1.0.7"
|
|
2457
|
-
esprima "^4.0.0"
|
|
2458
|
-
|
|
2459
2448
|
js-yaml@^3.5.1:
|
|
2460
2449
|
version "3.9.1"
|
|
2461
2450
|
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0"
|
|
@@ -2627,7 +2616,7 @@ locate-path@^2.0.0:
|
|
|
2627
2616
|
p-locate "^2.0.0"
|
|
2628
2617
|
path-exists "^3.0.0"
|
|
2629
2618
|
|
|
2630
|
-
lodash-es@^4.2.
|
|
2619
|
+
lodash-es@^4.2.1:
|
|
2631
2620
|
version "4.17.4"
|
|
2632
2621
|
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
|
|
2633
2622
|
|
|
@@ -2639,7 +2628,7 @@ lodash.sortby@^4.7.0:
|
|
|
2639
2628
|
version "4.7.0"
|
|
2640
2629
|
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
|
2641
2630
|
|
|
2642
|
-
lodash@4.17.4, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.
|
|
2631
|
+
lodash@4.17.4, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1:
|
|
2643
2632
|
version "4.17.4"
|
|
2644
2633
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
|
2645
2634
|
|
|
@@ -3248,20 +3237,6 @@ react-dom@^15.6.1:
|
|
|
3248
3237
|
object-assign "^4.1.0"
|
|
3249
3238
|
prop-types "^15.5.10"
|
|
3250
3239
|
|
|
3251
|
-
react-on-rails@^9.0.0-beta.12:
|
|
3252
|
-
version "9.0.1"
|
|
3253
|
-
resolved "https://registry.yarnpkg.com/react-on-rails/-/react-on-rails-9.0.1.tgz#49bf7520866214e410e6f88b298e889183d93786"
|
|
3254
|
-
dependencies:
|
|
3255
|
-
react-on-rails "^9.0.0-beta.12"
|
|
3256
|
-
react-redux "^5.0.6"
|
|
3257
|
-
|
|
3258
|
-
react-on-rails@^9.0.3:
|
|
3259
|
-
version "9.0.3"
|
|
3260
|
-
resolved "https://registry.yarnpkg.com/react-on-rails/-/react-on-rails-9.0.3.tgz#da8a9873a94d62fe91e1f80d76716583f2be9da7"
|
|
3261
|
-
dependencies:
|
|
3262
|
-
react-on-rails "^9.0.0-beta.12"
|
|
3263
|
-
react-redux "^5.0.6"
|
|
3264
|
-
|
|
3265
3240
|
react-proxy@^1.1.7:
|
|
3266
3241
|
version "1.1.8"
|
|
3267
3242
|
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
|
|
@@ -3269,17 +3244,6 @@ react-proxy@^1.1.7:
|
|
|
3269
3244
|
lodash "^4.6.1"
|
|
3270
3245
|
react-deep-force-update "^1.0.0"
|
|
3271
3246
|
|
|
3272
|
-
react-redux@^5.0.6:
|
|
3273
|
-
version "5.0.6"
|
|
3274
|
-
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946"
|
|
3275
|
-
dependencies:
|
|
3276
|
-
hoist-non-react-statics "^2.2.1"
|
|
3277
|
-
invariant "^2.0.0"
|
|
3278
|
-
lodash "^4.2.0"
|
|
3279
|
-
lodash-es "^4.2.0"
|
|
3280
|
-
loose-envify "^1.1.0"
|
|
3281
|
-
prop-types "^15.5.10"
|
|
3282
|
-
|
|
3283
3247
|
react-transform-hmr@^1.0.4:
|
|
3284
3248
|
version "1.0.4"
|
|
3285
3249
|
resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb"
|