react_on_rails 6.1.0 → 6.1.1.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.bookignore +16 -0
- data/CONTRIBUTING.md +6 -0
- data/NEWS.md +1 -0
- data/README.md +4 -2
- data/SUMMARY.md +49 -0
- data/book.json +18 -0
- data/lib/react_on_rails/assets_precompile.rb +40 -22
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +9 -5
- data/rakelib/lint.rake +7 -2
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c1a4b95d529e2b5d95bd5cd92822138f8a5017c
|
4
|
+
data.tar.gz: c77aeda6b4a99c2be1b02719729be8e49fd53179
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58c496affefbff52af047529ab85cea488f78bfd325cc2d12ee85fd0106340ff2ab174d82a9c92c8d0e8ceba007c987cd4047222546b9c867f038fefe6cef216
|
7
|
+
data.tar.gz: 774fd6cf92855b04a79e6eea058212e7744677b10c492e083ff169746f4a432d4c38be0bc93d19b3530548450f6eb2d6b49ea465808767c120df14ee861baa38
|
data/.bookignore
ADDED
data/CONTRIBUTING.md
CHANGED
@@ -36,6 +36,12 @@ From [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/
|
|
36
36
|
bundle && npm i && rake examples:prepare_all && rake node_package && rake
|
37
37
|
```
|
38
38
|
|
39
|
+
In order to run tests in browser
|
40
|
+
```
|
41
|
+
npm i -g browserify babelify tape-run faucet
|
42
|
+
browserify -t babelify node_package/tests/*.js | tape-run | faucet
|
43
|
+
```
|
44
|
+
|
39
45
|
See Dev Initial Setup, below for, well... initial setup.
|
40
46
|
|
41
47
|
# IDE/IDE SETUP
|
data/NEWS.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
*We'll keep a history of the news. A few bullets at the top will also show on the [README.md](./README.md).*
|
4
4
|
|
5
5
|
* Always see the [CHANGELOG.md](./CHANGELOG.md) for the latest project changes.
|
6
|
+
* 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
6
7
|
* 2016-08-21: v6.1 ships with serveral new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
7
8
|
* 2016-06-13: 6.0.4 shipped with a critical fix regarding a missing polyfill for `clearTimeout`, used by babel-polyfill.
|
8
9
|
* 2016-06-06: 6.0.2 shipped with a critical fix if you are fragment caching the server generated React.
|
data/README.md
CHANGED
@@ -13,6 +13,7 @@ Your support keeps this project going.
|
|
13
13
|
(Want to become a contributor? [Contact us](mailto:contact@shakacode.com) for an Slack team invite! Also, see ["easy" issues](https://github.com/shakacode/react_on_rails/labels/easy) and [issues for the full tutorial](https://github.com/shakacode/react-webpack-rails-tutorial/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy).)
|
14
14
|
|
15
15
|
# NEWS
|
16
|
+
* 2016-08-27: We now have a [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference.
|
16
17
|
* 2016-08-21: v6.1 ships with serveral new features and bug fixes. See the [Changelog](CHANGELOG.md).
|
17
18
|
* 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`.
|
18
19
|
* *See [NEWS.md](NEWS.md) for more notes over time.*
|
@@ -75,7 +76,7 @@ We're definitely not doing that. With react_on_rails, webpack is mainly generati
|
|
75
76
|
1. Add the following to your Gemfile and bundle install.
|
76
77
|
|
77
78
|
```ruby
|
78
|
-
gem "react_on_rails", "~>
|
79
|
+
gem "react_on_rails", "~> 6"
|
79
80
|
```
|
80
81
|
|
81
82
|
2. Commit this to git (you cannot run the generator unless you do this).
|
@@ -447,7 +448,8 @@ If you are using [jquery-ujs](https://github.com/rails/jquery-ujs) for AJAX call
|
|
447
448
|
## Integration with Node
|
448
449
|
Node.js can be used as the backend for server-side rendering instead of [execJS](https://github.com/rails/execjs). Before you try this, consider the tradeoff of extra complexity with your deployments versus *potential* performance gains. We've found that using ExecJS with [mini_racer](https://github.com/discourse/mini_racer) to be "fast enough" so far. That being said, we've heard of other large websites using Node.js for better server rendering performance. See [Node.js for Server Rendering](docs/additional-reading/node-server-rendering.md) for more information.
|
449
450
|
|
450
|
-
## Additional Documentation
|
451
|
+
## Additional Documentation
|
452
|
+
**Try out our new [Documentation Gitbook](https://shakacode.gitbooks.io/react-on-rails/content/) for improved readability & reference!**
|
451
453
|
+ **Rails**
|
452
454
|
+ [Rails Assets](docs/additional-reading/rails-assets.md)
|
453
455
|
+ [Rails View Rendering from Inline JavaScript](docs/additional-reading/rails_view_rendering_from_inline_javascript.md)
|
data/SUMMARY.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Table of Content
|
2
|
+
|
3
|
+
### **Rails**
|
4
|
+
* [Rails Assets](docs/additional-reading/rails-assets.md)
|
5
|
+
* [Rails View Rendering from Inline JavaScript](docs/additional-reading/rails_view_rendering_from_inline_javascript.md)
|
6
|
+
* [RSpec Configuration](docs/additional-reading/rspec-configuration.md)
|
7
|
+
* [Turbolinks](docs/additional-reading/turbolinks.md)
|
8
|
+
|
9
|
+
### **Javascript**
|
10
|
+
* [Node Dependencies and NPM](docs/additional-reading/node-dependencies-and-npm.md)
|
11
|
+
* [Babel](docs/additional-reading/babel.md)
|
12
|
+
* [React Router](docs/additional-reading/react-router.md)
|
13
|
+
* [React & Redux](docs/additional-reading/react-and-redux.md)
|
14
|
+
* [Webpack](docs/additional-reading/webpack.md)
|
15
|
+
* [Webpack Configuration](docs/additional-reading/webpack.md)
|
16
|
+
* [Webpack Cookbook](https://christianalfoni.github.io/react-webpack-cookbook/index.html)
|
17
|
+
* [Developing with the Webpack Dev Server](docs/additional-reading/webpack-dev-server.md)
|
18
|
+
* [Node Server Rendering](docs/additional-reading/node-server-rendering.md)
|
19
|
+
* [Server Rendering Tips](docs/additional-reading/server-rendering-tips.md)
|
20
|
+
|
21
|
+
### **Development**
|
22
|
+
* [React on Rails Basic Installation Tutorial](docs/tutorial.md) ([live demo](https://hello-react-on-rails.herokuapp.com))
|
23
|
+
* [Installation Overview](docs/basics/installation-overview.md)
|
24
|
+
* [Migration from react-rails](docs/basics/migrating-from-react-rails.md)
|
25
|
+
* [Recommended Project Structure](docs/additional-reading/recommended-project-structure.md)
|
26
|
+
* [Generator Tips](docs/basics/generator.md)
|
27
|
+
* [Hot Reloading of Assets For Rails Development](docs/additional-reading/hot-reloading-rails-development.md)
|
28
|
+
* [Heroku Deployment](docs/additional-reading/heroku-deployment.md)
|
29
|
+
* [Updating Dependencies](docs/additional-reading/updating-dependencies.md)
|
30
|
+
|
31
|
+
### **API**
|
32
|
+
* [JavaScript API](docs/api/javascript-api.md)
|
33
|
+
* [Ruby API](docs/api/ruby-api.md)
|
34
|
+
* [Setting up Hot Reloading during Rails Development, API docs](docs/api/ruby-api-hot-reload-view-helpers.md)
|
35
|
+
|
36
|
+
### **CONTRIBUTING**
|
37
|
+
* [Contributing](CONTRIBUTING.MD)
|
38
|
+
* [Generator Testing](docs/contributor-info/generator-testing.md)
|
39
|
+
* [Linting](docs/contributor-info/linters.md)
|
40
|
+
* [Releasing](docs/contributor-info/releasing.md)
|
41
|
+
|
42
|
+
### **Misc**
|
43
|
+
* [Tips](docs/additional-reading/tips.md)
|
44
|
+
* [Changelog](CHANGELOG.md)
|
45
|
+
* [Projects](PROJECTS.md)
|
46
|
+
* [Shaka Code Style](docs/coding-style/style.md)
|
47
|
+
* [React on Rails, Slides](http://www.slideshare.net/justingordon/react-on-rails-v4032)
|
48
|
+
* [Code of Conduct](docs/misc/code_of_conduct.md)
|
49
|
+
* [The React on Rails Doctrine](https://medium.com/@railsonmaui/the-react-on-rails-doctrine-3c59a778c724)
|
data/book.json
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"gitbook": "3.1.1",
|
3
|
+
"title": "React on Rails Documentation",
|
4
|
+
"plugins": ["prism", "-highlight", "github"],
|
5
|
+
"pluginsConfig": {
|
6
|
+
"github": {
|
7
|
+
"url": "https://github.com/shakacode/react_on_rails/"
|
8
|
+
},
|
9
|
+
"sharing": {
|
10
|
+
"facebook": true,
|
11
|
+
"twitter": true,
|
12
|
+
"google": true,
|
13
|
+
"weibo": true,
|
14
|
+
"instapaper": true,
|
15
|
+
"vk": true
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module ReactOnRails
|
2
2
|
class AssetsPrecompile
|
3
|
+
class SymlinkTargetDoesNotExistException < StandardError; end
|
4
|
+
|
3
5
|
# Used by the rake task
|
4
6
|
def default_asset_path
|
5
7
|
dir = File.join(Rails.configuration.paths["public"].first,
|
@@ -20,30 +22,35 @@ module ReactOnRails
|
|
20
22
|
def symlink_file(target, symlink)
|
21
23
|
target_path = @assets_path.join(target)
|
22
24
|
symlink_path = @assets_path.join(symlink)
|
25
|
+
|
23
26
|
target_exists = File.exist?(target_path)
|
27
|
+
raise SymlinkTargetDoesNotExistException, "Target Path was: #{target_path}" unless target_exists
|
24
28
|
|
25
29
|
# File.exist?(symlink_path) will check the file the sym is pointing to is existing
|
26
30
|
# File.lstat(symlink_path).symlink? confirms that this is a symlink
|
27
|
-
|
28
|
-
|
29
|
-
if
|
30
|
-
puts "React On Rails: Digested #{symlink} already exists indicating #{target} did not change."
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
31
|
+
valid_symlink_already_exists = File.exist?(symlink_path) && File.lstat(symlink_path).symlink?
|
32
|
+
|
33
|
+
if valid_symlink_already_exists
|
34
|
+
puts "React On Rails: Digested version of #{symlink} already exists indicating #{target} did not change."
|
35
|
+
return
|
36
|
+
end
|
37
|
+
|
38
|
+
if file_or_symlink_exists_at_path?(symlink_path)
|
39
|
+
puts "React On Rails: Removing existing invalid symlink or file #{symlink_path}"
|
40
|
+
`rm -f "#{symlink_path}"`
|
41
|
+
end
|
42
|
+
|
43
|
+
# Might be like:
|
44
|
+
# "images/5cf5db49df178f9357603f945752a1ef.png":
|
45
|
+
# "images/5cf5db49df178f9357603f945752a1ef-033650e1d6193b70d59bb60e773f47b6d9aefdd56abc7cc.png"
|
46
|
+
# need to cd to directory and then symlink
|
47
|
+
target_sub_path, _divider, target_filename = target.rpartition("/")
|
48
|
+
_symlink_sub_path, _divider, symlink_filename = symlink.rpartition("/")
|
49
|
+
dest_path = File.join(@assets_path, target_sub_path)
|
50
|
+
|
51
|
+
puts "React On Rails: Symlinking \"#{target}\" to \"#{symlink}\""
|
52
|
+
FileUtils.chdir(dest_path) do
|
53
|
+
File.symlink(target_filename, symlink_filename)
|
47
54
|
end
|
48
55
|
end
|
49
56
|
|
@@ -74,8 +81,10 @@ module ReactOnRails
|
|
74
81
|
# already been symlinked by Webpack
|
75
82
|
symlink_file(rails_digested_filename, original_filename)
|
76
83
|
|
77
|
-
# We want the gz ones as well
|
78
|
-
|
84
|
+
# We want the gz ones as well if they exist
|
85
|
+
if File.exist?(@assets_path.join("#{rails_digested_filename}.gz"))
|
86
|
+
symlink_file("#{rails_digested_filename}.gz", "#{original_filename}.gz")
|
87
|
+
end
|
79
88
|
end
|
80
89
|
end
|
81
90
|
end
|
@@ -108,5 +117,14 @@ module ReactOnRails
|
|
108
117
|
puts "Could not find generated_assets_dir #{dir} defined in react_on_rails initializer: "
|
109
118
|
end
|
110
119
|
end
|
120
|
+
|
121
|
+
private
|
122
|
+
|
123
|
+
def file_or_symlink_exists_at_path?(path)
|
124
|
+
File.lstat(path)
|
125
|
+
true
|
126
|
+
rescue
|
127
|
+
false
|
128
|
+
end
|
111
129
|
end
|
112
130
|
end
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-on-rails",
|
3
|
-
"version": "6.1.
|
3
|
+
"version": "6.1.1-rc.1",
|
4
4
|
"description": "react-on-rails JavaScript for react_on_rails Ruby gem",
|
5
5
|
"main": "node_package/lib/ReactOnRails.js",
|
6
6
|
"directories": {
|
@@ -11,6 +11,7 @@
|
|
11
11
|
"babel-core": "^6.7.4",
|
12
12
|
"babel-loader": "^6.2.4",
|
13
13
|
"babel-plugin-react-transform": "^2.0.2",
|
14
|
+
"babel-plugin-transform-flow-strip-types": "^6.8.0",
|
14
15
|
"babel-plugin-transform-runtime": "^6.6.0",
|
15
16
|
"babel-preset-es2015": "^6.6.0",
|
16
17
|
"babel-preset-react": "^6.5.0",
|
@@ -25,6 +26,7 @@
|
|
25
26
|
"eslint-plugin-import": "^1.13.0",
|
26
27
|
"eslint-plugin-jsx-a11y": "^2.1.0",
|
27
28
|
"eslint-plugin-react": "^6.1.2",
|
29
|
+
"flow-bin": "^0.30.0",
|
28
30
|
"jscs": "^2.11.0",
|
29
31
|
"jsdom": "^8.2.0",
|
30
32
|
"react": "^15.0.0",
|
@@ -45,14 +47,16 @@
|
|
45
47
|
"node_package/lib"
|
46
48
|
],
|
47
49
|
"scripts": {
|
48
|
-
"test": "node_package/
|
49
|
-
"clean": "node_package/
|
50
|
+
"test": "babel-tape-runner node_package/tests/*.js | tap-spec",
|
51
|
+
"clean": "rm -rf node_package/lib",
|
50
52
|
"prepublish": "npm run build",
|
51
|
-
"
|
53
|
+
"babel": "babel --out-dir node_package/lib node_package/src",
|
54
|
+
"build": "npm run clean && npm run babel",
|
52
55
|
"build-watch": "babel --watch --out-dir node_package/lib node_package/src",
|
53
56
|
"eslint": "eslint .",
|
54
57
|
"jscs": "jscs -e -v .",
|
55
|
-
"
|
58
|
+
"flow": "flow check node_package",
|
59
|
+
"lint": "npm run eslint && npm run jscs && npm run flow",
|
56
60
|
"lint:fix": "node_package/scripts/lint-fix",
|
57
61
|
"check": "npm run lint && npm run test",
|
58
62
|
"prerelease": "npm run check && npm run clean && npm run build",
|
data/rakelib/lint.rake
CHANGED
@@ -28,8 +28,13 @@ namespace :lint do
|
|
28
28
|
sh_in_dir(gem_root, "npm run jscs")
|
29
29
|
end
|
30
30
|
|
31
|
-
desc "Run
|
32
|
-
task
|
31
|
+
desc "Run flow from shell"
|
32
|
+
task :flow do
|
33
|
+
sh_in_dir(gem_root, "npm run flow")
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Run all eslint, jscs, flow, rubocop linters. Skip ruby-lint and scss"
|
37
|
+
task lint: [:eslint, :jscs, :flow, :rubocop] do
|
33
38
|
puts "Completed all linting"
|
34
39
|
end
|
35
40
|
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: 6.1.
|
4
|
+
version: 6.1.1.rc.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Gordon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|
@@ -311,6 +311,7 @@ executables: []
|
|
311
311
|
extensions: []
|
312
312
|
extra_rdoc_files: []
|
313
313
|
files:
|
314
|
+
- ".bookignore"
|
314
315
|
- ".coveralls.yml"
|
315
316
|
- ".dockerignore"
|
316
317
|
- ".eslintignore"
|
@@ -330,7 +331,9 @@ files:
|
|
330
331
|
- PROJECTS.md
|
331
332
|
- README.md
|
332
333
|
- Rakefile
|
334
|
+
- SUMMARY.md
|
333
335
|
- app/helpers/react_on_rails_helper.rb
|
336
|
+
- book.json
|
334
337
|
- docs/LICENSE
|
335
338
|
- docs/additional-reading/babel.md
|
336
339
|
- docs/additional-reading/heroku-deployment.md
|
@@ -452,9 +455,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
452
455
|
version: '0'
|
453
456
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
454
457
|
requirements:
|
455
|
-
- - "
|
458
|
+
- - ">"
|
456
459
|
- !ruby/object:Gem::Version
|
457
|
-
version:
|
460
|
+
version: 1.3.1
|
458
461
|
requirements: []
|
459
462
|
rubyforge_project:
|
460
463
|
rubygems_version: 2.5.1
|