react_on_rails 5.1.1 → 5.2.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/CHANGELOG.md +14 -2
- data/README.md +3 -77
- data/docs/additional-reading/heroku-deployment.md +30 -0
- data/docs/contributor-info/contributing.md +11 -6
- data/docs/contributor-info/releasing.md +1 -1
- data/docs/tutorial.md +3 -1
- data/lib/generators/react_on_rails/base_generator.rb +0 -57
- data/lib/generators/react_on_rails/install_generator.rb +0 -28
- data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt +8 -22
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +4 -54
- data/lib/generators/react_on_rails/templates/base/base/package.json.tt +5 -25
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +3 -3
- data/rakelib/examples_config.yml +1 -6
- metadata +2 -26
- data/lib/generators/react_on_rails/bootstrap_generator.rb +0 -86
- data/lib/generators/react_on_rails/heroku_deployment_generator.rb +0 -29
- data/lib/generators/react_on_rails/js_linters_generator.rb +0 -19
- data/lib/generators/react_on_rails/ruby_linters_generator.rb +0 -35
- data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-hot.tt +0 -4
- data/lib/generators/react_on_rails/templates/base/base/client/index.jade +0 -15
- data/lib/generators/react_on_rails/templates/base/base/client/server.js +0 -72
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +0 -70
- data/lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt +0 -88
- data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +0 -63
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +0 -10
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +0 -8
- data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +0 -19
- data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +0 -89
- data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +0 -1
- data/lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb +0 -15
- data/lib/generators/react_on_rails/templates/js_linters/client/.eslintignore +0 -1
- data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +0 -48
- data/lib/generators/react_on_rails/templates/js_linters/client/.jscsrc +0 -18
- data/lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml +0 -27
- data/lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml +0 -205
- data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake +0 -17
- data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake +0 -33
- data/lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml.tt +0 -26
@@ -1,31 +1,12 @@
|
|
1
1
|
<%- require "react_on_rails/version_syntax_converter" -%>
|
2
2
|
{
|
3
3
|
"name": "react-webpack-rails-tutorial",
|
4
|
-
"version": "
|
5
|
-
"description": "Built using the react_on_rails generator.",
|
6
|
-
"main": "server.js",
|
4
|
+
"version": "0.0.1",
|
7
5
|
"engines": {
|
8
|
-
"node": "5.
|
6
|
+
"node": "5.10.0",
|
9
7
|
"npm": "3.5.0"
|
10
8
|
},
|
11
|
-
"repository": {
|
12
|
-
"type": "git",
|
13
|
-
"url": "https://github.com/shakacode/react-webpack-rails-tutorial.git"
|
14
|
-
},
|
15
|
-
"keywords": [
|
16
|
-
"react",
|
17
|
-
"tutorial",
|
18
|
-
"comment",
|
19
|
-
"example"
|
20
|
-
],
|
21
|
-
"author": "justin808",
|
22
|
-
"license": "MIT",
|
23
|
-
"bugs": {
|
24
|
-
"url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues"
|
25
|
-
},
|
26
|
-
"homepage": "https://github.com/shakacode/react-webpack-rails-tutorial",
|
27
9
|
"scripts": {
|
28
|
-
"start": "node server.js",
|
29
10
|
"build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js",
|
30
11
|
<%- if options.server_rendering? -%>
|
31
12
|
"build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js",
|
@@ -38,11 +19,6 @@
|
|
38
19
|
<%- if options.server_rendering? -%>
|
39
20
|
"build:production:server": "NODE_ENV=production webpack --config webpack.server.rails.build.config.js",
|
40
21
|
<%- end -%>
|
41
|
-
<%- unless options.skip_js_linters? -%>
|
42
|
-
"lint": "npm run eslint && npm run jscs",
|
43
|
-
"eslint": "eslint --ext .js,.jsx .",
|
44
|
-
"jscs": "jscs --verbose .",
|
45
|
-
<%- end -%>
|
46
22
|
"test": "echo \"Error: no test specified\" && exit 1"
|
47
23
|
},
|
48
24
|
"dependencies": {
|
@@ -71,11 +47,8 @@
|
|
71
47
|
<%- if options.redux? -%>
|
72
48
|
"mirror-creator": "1.1.0",
|
73
49
|
<%- end -%>
|
74
|
-
"react": "^0.14.8",
|
75
|
-
|
76
|
-
"react-bootstrap": "^0.28.5",
|
77
|
-
<%- end -%>
|
78
|
-
"react-dom": "^0.14.8",
|
50
|
+
"react": "^0.14.8 || ^15.0.0",
|
51
|
+
"react-dom": "^0.14.8 || ^15.0.0",
|
79
52
|
"react-on-rails": "<%= VersionSyntaxConverter.new.rubygem_to_npm %>",
|
80
53
|
<%- if options.redux? -%>
|
81
54
|
"react-redux": "^4.4.1",
|
@@ -86,28 +59,5 @@
|
|
86
59
|
"webpack": "^1.12.14"
|
87
60
|
},
|
88
61
|
"devDependencies": {
|
89
|
-
"babel-plugin-react-transform": "^2.0.2",
|
90
|
-
<%- unless options.skip_bootstrap? -%>
|
91
|
-
"bootstrap-sass": "^3.3.6",
|
92
|
-
"bootstrap-sass-loader": "^1.0.10",
|
93
|
-
<%- end -%>
|
94
|
-
"css-loader": "^0.23.1",
|
95
|
-
<%- unless options.skip_js_linters? -%>
|
96
|
-
"eslint": "^2.6.0",
|
97
|
-
"eslint-config-shakacode": "^4.0.0",
|
98
|
-
"eslint-plugin-react": "^4.2.3",
|
99
|
-
<%- end -%>
|
100
|
-
"express": "^4.13.4",
|
101
|
-
"file-loader": "^0.8.5",
|
102
|
-
"jade": "^1.11.0",
|
103
|
-
<%- unless options.skip_js_linters? -%>
|
104
|
-
"jscs": "^2.11.0",
|
105
|
-
<%- end -%>
|
106
|
-
"node-sass": "^3.4.2",
|
107
|
-
"react-transform-hmr": "^1.0.4",
|
108
|
-
"sass-loader": "^3.2.0",
|
109
|
-
"style-loader": "^0.13.1",
|
110
|
-
"url-loader": "^0.5.7",
|
111
|
-
"webpack-dev-server": "^1.14.1"
|
112
62
|
}
|
113
63
|
}
|
@@ -1,15 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-webpack-rails-tutorial",
|
3
|
-
"version": "
|
4
|
-
"description": "Built using the react_on_rails generator. Allows you to run npm install from root.",
|
5
|
-
"main": "server.js",
|
3
|
+
"version": "0.0.1",
|
6
4
|
"engines": {
|
7
|
-
"node": "
|
8
|
-
"npm": "3.
|
5
|
+
"node": "5.10.0",
|
6
|
+
"npm": "3.5.0"
|
9
7
|
},
|
10
8
|
"scripts": {
|
11
9
|
"postinstall": "cd client && npm install",
|
12
|
-
"express-server": "echo 'visit http://localhost:4000' && cd client && npm start",
|
13
10
|
"rails-server": "echo 'visit http://localhost:3000/hello_world' && foreman start -f Procfile.dev",
|
14
11
|
"build:production:client": "(cd client && npm run build:production:client --silent)",
|
15
12
|
<%- if options.server_rendering? -%>
|
@@ -23,23 +20,6 @@
|
|
23
20
|
<%- if options.server_rendering? -%>
|
24
21
|
"build:dev:server": "(cd client && npm run build:dev:server --silent)",
|
25
22
|
<%- end -%>
|
26
|
-
"test": "rspec
|
27
|
-
}
|
28
|
-
"repository": {
|
29
|
-
"type": "git",
|
30
|
-
"url": "https://github.com/shakacode/react-webpack-rails-tutorial.git"
|
31
|
-
},
|
32
|
-
"keywords": [
|
33
|
-
"react",
|
34
|
-
"tutorial",
|
35
|
-
"comment",
|
36
|
-
"example"
|
37
|
-
],
|
38
|
-
"author": "justin808",
|
39
|
-
"license": "MIT",
|
40
|
-
"bugs": {
|
41
|
-
"url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues"
|
42
|
-
},
|
43
|
-
"homepage": "https://github.com/shakacode/react-webpack-rails-tutorial",
|
44
|
-
"dependencies": {}
|
23
|
+
"test": "rspec"
|
24
|
+
}
|
45
25
|
}
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-on-rails",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.2.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": {
|
@@ -24,8 +24,8 @@
|
|
24
24
|
"eslint-plugin-react": "^4.2.3",
|
25
25
|
"jscs": "^2.11.0",
|
26
26
|
"jsdom": "^8.2.0",
|
27
|
-
"react": "^0.
|
28
|
-
"react-dom": "^0.
|
27
|
+
"react": "^15.0.0",
|
28
|
+
"react-dom": "^15.0.0",
|
29
29
|
"react-transform-hmr": "^1.0.4",
|
30
30
|
"redux": "^3.3.1",
|
31
31
|
"release-it": "^2.3.1",
|
data/rakelib/examples_config.yml
CHANGED
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: 5.
|
4
|
+
version: 5.2.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: 2016-04-
|
11
|
+
date: 2016-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|
@@ -345,17 +345,12 @@ files:
|
|
345
345
|
- docs/tutorial.md
|
346
346
|
- lib/generators/USAGE
|
347
347
|
- lib/generators/react_on_rails/base_generator.rb
|
348
|
-
- lib/generators/react_on_rails/bootstrap_generator.rb
|
349
348
|
- lib/generators/react_on_rails/dev_tests_generator.rb
|
350
349
|
- lib/generators/react_on_rails/generator_helper.rb
|
351
350
|
- lib/generators/react_on_rails/generator_messages.rb
|
352
|
-
- lib/generators/react_on_rails/heroku_deployment_generator.rb
|
353
351
|
- lib/generators/react_on_rails/install_generator.rb
|
354
|
-
- lib/generators/react_on_rails/js_linters_generator.rb
|
355
352
|
- lib/generators/react_on_rails/react_no_redux_generator.rb
|
356
353
|
- lib/generators/react_on_rails/react_with_redux_generator.rb
|
357
|
-
- lib/generators/react_on_rails/ruby_linters_generator.rb
|
358
|
-
- lib/generators/react_on_rails/templates/base/base/Procfile.dev-hot.tt
|
359
354
|
- lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt
|
360
355
|
- lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md
|
361
356
|
- lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
|
@@ -364,33 +359,19 @@ files:
|
|
364
359
|
- lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
|
365
360
|
- lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx.tt
|
366
361
|
- lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt
|
367
|
-
- lib/generators/react_on_rails/templates/base/base/client/index.jade
|
368
362
|
- lib/generators/react_on_rails/templates/base/base/client/package.json.tt
|
369
|
-
- lib/generators/react_on_rails/templates/base/base/client/server.js
|
370
363
|
- lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js
|
371
|
-
- lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt
|
372
364
|
- lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js
|
373
365
|
- lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
|
374
366
|
- lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt
|
375
|
-
- lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt
|
376
367
|
- lib/generators/react_on_rails/templates/base/base/package.json.tt
|
377
368
|
- lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx
|
378
369
|
- lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js
|
379
|
-
- lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss
|
380
|
-
- lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss
|
381
|
-
- lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss
|
382
|
-
- lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss
|
383
|
-
- lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js
|
384
370
|
- lib/generators/react_on_rails/templates/dev_tests/.rspec
|
385
371
|
- lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
|
386
372
|
- lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb
|
387
373
|
- lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb
|
388
374
|
- lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb
|
389
|
-
- lib/generators/react_on_rails/templates/heroku_deployment/Procfile
|
390
|
-
- lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb
|
391
|
-
- lib/generators/react_on_rails/templates/js_linters/client/.eslintignore
|
392
|
-
- lib/generators/react_on_rails/templates/js_linters/client/.eslintrc
|
393
|
-
- lib/generators/react_on_rails/templates/js_linters/client/.jscsrc
|
394
375
|
- lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx
|
395
376
|
- lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt
|
396
377
|
- lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
|
@@ -403,11 +384,6 @@ files:
|
|
403
384
|
- lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx
|
404
385
|
- lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js
|
405
386
|
- lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx
|
406
|
-
- lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml
|
407
|
-
- lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml
|
408
|
-
- lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake
|
409
|
-
- lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake
|
410
|
-
- lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml.tt
|
411
387
|
- lib/react_on_rails.rb
|
412
388
|
- lib/react_on_rails/configuration.rb
|
413
389
|
- lib/react_on_rails/controller.rb
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
require_relative "generator_helper"
|
3
|
-
require_relative "generator_messages"
|
4
|
-
|
5
|
-
module ReactOnRails
|
6
|
-
module Generators
|
7
|
-
class BootstrapGenerator < Rails::Generators::Base
|
8
|
-
include GeneratorHelper
|
9
|
-
Rails::Generators.hide_namespace(namespace)
|
10
|
-
source_root(File.expand_path("../templates", __FILE__))
|
11
|
-
|
12
|
-
def copy_bootstrap_files
|
13
|
-
base_path = "bootstrap/"
|
14
|
-
%w(app/assets/stylesheets/_bootstrap-custom.scss
|
15
|
-
client/assets/stylesheets/_post-bootstrap.scss
|
16
|
-
client/assets/stylesheets/_pre-bootstrap.scss
|
17
|
-
client/assets/stylesheets/_react-on-rails-sass-helper.scss
|
18
|
-
client/bootstrap-sass.config.js).each { |file| copy_file(base_path + file, file) }
|
19
|
-
end
|
20
|
-
|
21
|
-
# if there still is not application.scss, just create one
|
22
|
-
def create_application_scss_if_necessary
|
23
|
-
path = File.join(destination_root, "app/assets/stylesheets/application.scss")
|
24
|
-
return if File.exist?(path)
|
25
|
-
File.open(path, "w") { |f| f.puts "// Created by React on Rails gem\n\n" }
|
26
|
-
end
|
27
|
-
|
28
|
-
def prepend_to_application_scss
|
29
|
-
data = <<-DATA.strip_heredoc
|
30
|
-
// DO NOT REQUIRE TREE! It will interfere with load order!
|
31
|
-
|
32
|
-
// Account for differences between Rails and Webpack Sass code.
|
33
|
-
$rails: true;
|
34
|
-
|
35
|
-
// Included from bootstrap-sprockets gem and loaded in app/assets/javascripts/application.rb
|
36
|
-
@import 'bootstrap-sprockets';
|
37
|
-
|
38
|
-
// Customizations - needs to be imported after bootstrap-sprocket but before bootstrap-custom!
|
39
|
-
// The _pre-bootstrap.scss file is located under
|
40
|
-
// client/assets/stylesheets, which has been added to the Rails asset
|
41
|
-
// pipeline search path. See config/application.rb.
|
42
|
-
@import 'pre-bootstrap';
|
43
|
-
|
44
|
-
// These scss files are located under client/assets/stylesheets
|
45
|
-
// (which has been added to the Rails asset pipeline search path in config/application.rb).
|
46
|
-
@import 'bootstrap-custom';
|
47
|
-
|
48
|
-
// This must come after all the boostrap styles are loaded so that these styles can override those.
|
49
|
-
@import 'post-bootstrap';
|
50
|
-
|
51
|
-
DATA
|
52
|
-
|
53
|
-
application_scss = File.join(destination_root, "app/assets/stylesheets/application.scss")
|
54
|
-
|
55
|
-
append_to_file(application_scss, data)
|
56
|
-
end
|
57
|
-
|
58
|
-
def strip_application_scss_of_incompatible_sprockets_statements
|
59
|
-
application_scss = File.join(destination_root, "app/assets/stylesheets/application.scss")
|
60
|
-
gsub_file(application_scss, "*= require_tree .", "")
|
61
|
-
gsub_file(application_scss, "*= require_self", "")
|
62
|
-
end
|
63
|
-
|
64
|
-
def add_bootstrap_sprockets_to_gemfile
|
65
|
-
append_to_file("Gemfile", "\ngem 'bootstrap-sass'\n")
|
66
|
-
end
|
67
|
-
|
68
|
-
def add_bootstrap_sprockets_to_application_js
|
69
|
-
data = <<-DATA.strip_heredoc
|
70
|
-
|
71
|
-
// bootstrap-sprockets depends on vendor-bundle for jQuery.
|
72
|
-
//= require bootstrap-sprockets
|
73
|
-
|
74
|
-
DATA
|
75
|
-
|
76
|
-
app_js_path = "app/assets/javascripts/application.js"
|
77
|
-
found_app_js = dest_file_exists?(app_js_path) || dest_file_exists?(app_js_path + ".coffee")
|
78
|
-
if found_app_js
|
79
|
-
append_to_file(found_app_js, data)
|
80
|
-
else
|
81
|
-
create_file(app_js_path, data)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
require_relative "generator_helper"
|
3
|
-
|
4
|
-
module ReactOnRails
|
5
|
-
module Generators
|
6
|
-
class HerokuDeploymentGenerator < Rails::Generators::Base
|
7
|
-
include GeneratorHelper
|
8
|
-
Rails::Generators.hide_namespace(namespace)
|
9
|
-
source_root(File.expand_path("../templates", __FILE__))
|
10
|
-
|
11
|
-
def copy_heroku_deployment_files
|
12
|
-
base_path = "heroku_deployment"
|
13
|
-
%w(Procfile
|
14
|
-
config/puma.rb).each { |file| copy_file("#{base_path}/#{file}", file) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def add_heroku_production_gems
|
18
|
-
gem_text = <<-GEMS.strip_heredoc
|
19
|
-
|
20
|
-
# For Heroku deployment
|
21
|
-
gem 'rails_12factor', group: :production
|
22
|
-
gem 'puma', group: :production
|
23
|
-
|
24
|
-
GEMS
|
25
|
-
append_to_file("Gemfile", gem_text)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
|
3
|
-
module ReactOnRails
|
4
|
-
module Generators
|
5
|
-
class JsLintersGenerator < Rails::Generators::Base
|
6
|
-
Rails::Generators.hide_namespace(namespace)
|
7
|
-
source_root File.expand_path("../templates", __FILE__)
|
8
|
-
|
9
|
-
# NOTE: linter modules are included via template in base/base/client/package.json.tt
|
10
|
-
|
11
|
-
def copy_js_linter_config_files
|
12
|
-
base_path = "js_linters/"
|
13
|
-
%w(client/.eslintrc
|
14
|
-
client/.eslintignore
|
15
|
-
client/.jscsrc).each { |file| copy_file(base_path + file, file) }
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require "rails/generators"
|
2
|
-
require_relative "generator_helper"
|
3
|
-
|
4
|
-
module ReactOnRails
|
5
|
-
module Generators
|
6
|
-
class RubyLintersGenerator < Rails::Generators::Base
|
7
|
-
include GeneratorHelper
|
8
|
-
Rails::Generators.hide_namespace(namespace)
|
9
|
-
source_root File.expand_path("../templates", __FILE__)
|
10
|
-
|
11
|
-
def add_ruby_linter_gems_to_gemfile
|
12
|
-
linter_gems = <<-GEMS.strip_heredoc
|
13
|
-
|
14
|
-
# require: false is necessary for the linters as we only want them loaded
|
15
|
-
# when used by the linting rake tasks.
|
16
|
-
group :development do
|
17
|
-
gem("rubocop", require: false)
|
18
|
-
gem("ruby-lint", require: false)
|
19
|
-
gem("scss_lint", require: false)
|
20
|
-
end
|
21
|
-
GEMS
|
22
|
-
append_to_file("Gemfile", linter_gems)
|
23
|
-
end
|
24
|
-
|
25
|
-
def copy_ruby_linting_and_auditing_tasks
|
26
|
-
base_path = "ruby_linters/"
|
27
|
-
%w(lib/tasks/brakeman.rake
|
28
|
-
lib/tasks/ci.rake
|
29
|
-
.rubocop.yml
|
30
|
-
.scss-lint.yml).each { |file| copy_file(base_path + file, file) }
|
31
|
-
template("ruby_linters/ruby-lint.yml.tt", "ruby-lint.yml")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
doctype html
|
2
|
-
html
|
3
|
-
|
4
|
-
head
|
5
|
-
title Hello, React
|
6
|
-
|
7
|
-
body
|
8
|
-
|
9
|
-
h1.alert.alert-info.this-works webpack dev server (with HMR)
|
10
|
-
#app
|
11
|
-
|
12
|
-
script(src="vendor-bundle.js")
|
13
|
-
script(src="app-bundle.js")
|
14
|
-
script.
|
15
|
-
ReactOnRails.render("HelloWorldApp", {name: "Stranger"}, 'app');
|
@@ -1,72 +0,0 @@
|
|
1
|
-
// This file is used by the webpack HMR dev server to load your component without using Rails
|
2
|
-
// It should simply match routes to basic HTML or jade files that render your component
|
3
|
-
/* eslint-disable no-console, func-names, no-var */
|
4
|
-
var webpack = require('webpack');
|
5
|
-
var WebpackDevServer = require('webpack-dev-server');
|
6
|
-
var jade = require('jade');
|
7
|
-
var config = require('./webpack.client.hot.config');
|
8
|
-
|
9
|
-
const PORT = 4000;
|
10
|
-
const compiler = webpack(config);
|
11
|
-
|
12
|
-
var server = new WebpackDevServer(compiler, {
|
13
|
-
publicPath: config.output.publicPath,
|
14
|
-
hot: true,
|
15
|
-
historyApiFallback: true,
|
16
|
-
stats: {
|
17
|
-
colors: true,
|
18
|
-
hash: false,
|
19
|
-
version: false,
|
20
|
-
chunks: false,
|
21
|
-
children: false,
|
22
|
-
},
|
23
|
-
});
|
24
|
-
|
25
|
-
// The following code is commented out because the HelloWorld example
|
26
|
-
// does not use any asynchronous functionality. It is meant to serve
|
27
|
-
// as an example of how one might implement an API in express for their
|
28
|
-
// webpack dev server
|
29
|
-
// Note, it would be necessary to run `npm i --save body-parser sleep` for
|
30
|
-
// the following to work:
|
31
|
-
// var bodyParser = require('body-parser');
|
32
|
-
// var sleep = require('sleep');
|
33
|
-
// See tutorial for example of using AJAX:
|
34
|
-
// https://github.com/shakacode/react-webpack-rails-tutorial
|
35
|
-
|
36
|
-
// server.app.use(bodyParser.json(null));
|
37
|
-
// server.app.use(bodyParser.urlencoded({extended: true}));
|
38
|
-
// server.app.get('/hello_world.json', function(req, res) {
|
39
|
-
// res.setHeader('Content-Type', 'application/json');
|
40
|
-
// res.send(JSON.stringify(name));
|
41
|
-
// });
|
42
|
-
|
43
|
-
// server.app.post('/hello_world.json', function(req, res) {
|
44
|
-
// console.log('Processing name: %j', req.body.name);
|
45
|
-
// console.log('(shhhh...napping 1 seconds)');
|
46
|
-
// sleep.sleep(1);
|
47
|
-
// console.log('Just got done with nap!');
|
48
|
-
// name = req.body.name;
|
49
|
-
// res.setHeader('Content-Type', 'application/json');
|
50
|
-
// res.send(JSON.stringify(req.body.name));
|
51
|
-
// });
|
52
|
-
|
53
|
-
var initialName = 'Stranger';
|
54
|
-
|
55
|
-
server.app.use('/', (req, res) => {
|
56
|
-
var locals = {
|
57
|
-
props: JSON.stringify(initialName),
|
58
|
-
};
|
59
|
-
var layout = `${process.cwd()}/index.jade`;
|
60
|
-
var html = jade.compileFile(layout, { pretty: true })(locals);
|
61
|
-
res.send(html);
|
62
|
-
});
|
63
|
-
|
64
|
-
server.listen(PORT, 'localhost', err => {
|
65
|
-
if (err) console.error(err);
|
66
|
-
console.log(
|
67
|
-
`=> 🔥 Webpack development server is running on port ${PORT}`
|
68
|
-
);
|
69
|
-
});
|
70
|
-
compiler.plugin('done', () => {
|
71
|
-
process.stdout.write('Webpack: Done compiling assets!\n');
|
72
|
-
});
|