react-rails-generator 0.0.1
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/bin/react-rails +7 -0
- data/lib/generators/init_react.rb +174 -0
- data.tar.gz.sig +0 -0
- metadata +68 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 941a06d0e019b126a140b56acd80cf372ede74c4
|
4
|
+
data.tar.gz: a3b8cbfe43445c6d28f397b8b3da3af09c8292c4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 28621f6ea2d0b2648240f767ee30c84eac5b9640ce60a56993b40a80b7491c41fe84f5a7f4565745c8d8847b1b36d8e23587da3a4fabd2c65e70dc8bc3da6f07
|
7
|
+
data.tar.gz: d0604cb66a913092a4ad9d335b63a20b74a40524c8d16c211b989ae25a15253f133e590328f1d3ba2c4d6265ec2774e58b6edab9634e3e6f82d54e8c4a6ddc2e
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data/bin/react-rails
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
3
|
+
class InitReact
|
4
|
+
def initialize app_name
|
5
|
+
@app_name = app_name
|
6
|
+
FileUtils::mkdir_p "#{@app_name}/app/jsx"
|
7
|
+
end
|
8
|
+
|
9
|
+
def init
|
10
|
+
create_babelrc
|
11
|
+
add_gitignore
|
12
|
+
create_app_jsx
|
13
|
+
create_bootstrap_jsx
|
14
|
+
add_react_wrapper
|
15
|
+
create_package_json
|
16
|
+
create_webpack_config
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_babelrc
|
20
|
+
babelrc = <<-HEREDOC
|
21
|
+
{
|
22
|
+
presets: [
|
23
|
+
"es2017",
|
24
|
+
"react",
|
25
|
+
],
|
26
|
+
"plugins": [
|
27
|
+
"transform-class-properties",
|
28
|
+
],
|
29
|
+
}
|
30
|
+
HEREDOC
|
31
|
+
|
32
|
+
File.open("#{@app_name}/out.txt", "w") do |f|
|
33
|
+
f.write(babelrc)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_gitignore
|
38
|
+
gitignore = <<-HEREDOC
|
39
|
+
node_modules
|
40
|
+
app/assets/javascripts/react-app.js
|
41
|
+
HEREDOC
|
42
|
+
|
43
|
+
File.open("#{@app_name}/.gitignore", "a+") do |f|
|
44
|
+
f.write(gitignore)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def create_app_jsx
|
49
|
+
app_jsx = <<-HEREDOC
|
50
|
+
import getMuiTheme from "material-ui/styles/getMuiTheme";
|
51
|
+
import MuiThemeProvider from "material-ui/styles/MuiThemeProvider";
|
52
|
+
|
53
|
+
export default class App extends React.Component {
|
54
|
+
render() {
|
55
|
+
return (
|
56
|
+
<MuiThemeProvider muiTheme={getMuiTheme()}>
|
57
|
+
<mui.Drawer open={true}>
|
58
|
+
<mui.MenuItem>FAQ</mui.MenuItem>
|
59
|
+
</mui.Drawer>
|
60
|
+
</MuiThemeProvider>
|
61
|
+
);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
HEREDOC
|
65
|
+
|
66
|
+
File.open("#{@app_name}/app/jsx/app.jsx", "w") do |f|
|
67
|
+
f.write(app_jsx)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def create_bootstrap_jsx
|
72
|
+
bootstrap_jsx = <<-HEREDOC
|
73
|
+
import ReactDOM from "react-dom";
|
74
|
+
import {Router, Route, Link, browserHistory} from "react-router"
|
75
|
+
|
76
|
+
import injectTapEventPlugin from "react-tap-event-plugin";
|
77
|
+
injectTapEventPlugin();
|
78
|
+
|
79
|
+
import App from "./app";
|
80
|
+
|
81
|
+
const router = (
|
82
|
+
<Router history={browserHistory}>
|
83
|
+
<Route path="/" component={App}>
|
84
|
+
</Route>
|
85
|
+
</Router>
|
86
|
+
);
|
87
|
+
|
88
|
+
$(document).on("ready page:load", function() {
|
89
|
+
ReactDOM.render(router, document.getElementById("react-wrapper"));
|
90
|
+
});
|
91
|
+
HEREDOC
|
92
|
+
|
93
|
+
File.open("#{@app_name}/app/jsx/bootstrap.jsx", "w") do |f|
|
94
|
+
f.write(bootstrap_jsx)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def add_react_wrapper
|
99
|
+
file_name = "#{@app_name}/app/views/layouts/application.html.erb"
|
100
|
+
text = File.read(file_name)
|
101
|
+
new_contents = text.gsub(/<%= yield %>/, '<div id="react-wrapper"></div>')
|
102
|
+
File.open(file_name, "w") {|f| f.write(new_contents)}
|
103
|
+
end
|
104
|
+
|
105
|
+
def create_package_json
|
106
|
+
package_json = <<-HEREDOC
|
107
|
+
{
|
108
|
+
"private": true,
|
109
|
+
"dependencies": {
|
110
|
+
"babel-core": "^6.18.2",
|
111
|
+
"babel-loader": "^6.2.7",
|
112
|
+
"babel-preset-es2017": "^1.4.0",
|
113
|
+
"babel-preset-react-hmre": "^1.1.1",
|
114
|
+
"babel-preset-react": "^6.16.0",
|
115
|
+
"material-ui": "^0.16.0",
|
116
|
+
"react": "^15.4.0",
|
117
|
+
"react-addons-update": "^15.4.0",
|
118
|
+
"react-dom": "^15.4.0",
|
119
|
+
"react-router": "^3.0.0",
|
120
|
+
"react-tap-event-plugin": "^2.0.0",
|
121
|
+
"react-toastr": "^2.8.0",
|
122
|
+
"webpack": "~1.13.3"
|
123
|
+
}
|
124
|
+
}
|
125
|
+
HEREDOC
|
126
|
+
|
127
|
+
File.open("#{@app_name}/package.json", "w") do |f|
|
128
|
+
f.write(package_json)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
def create_webpack_config
|
133
|
+
webpack_config = <<-HEREDOC
|
134
|
+
var webpack = require("webpack");
|
135
|
+
|
136
|
+
const paths = {
|
137
|
+
js: "./app/assets/javascripts/",
|
138
|
+
jsx: "./app/jsx/",
|
139
|
+
}
|
140
|
+
|
141
|
+
var alias = {
|
142
|
+
"react/lib/CSSPropertyOperations": "react-dom/lib/CSSPropertyOperations"
|
143
|
+
};
|
144
|
+
|
145
|
+
module.exports = {
|
146
|
+
entry: paths.jsx + "bootstrap.jsx",
|
147
|
+
output: {
|
148
|
+
path: paths.js,
|
149
|
+
filename: "react-app.js",
|
150
|
+
},
|
151
|
+
resolve: {
|
152
|
+
extensions: ['', '.js', '.jsx'],
|
153
|
+
alias: alias,
|
154
|
+
},
|
155
|
+
module: {
|
156
|
+
loaders: [{
|
157
|
+
test: /\.jsx?$/,
|
158
|
+
loaders: ['babel?cacheDirectory'],
|
159
|
+
}]
|
160
|
+
},
|
161
|
+
plugins: [
|
162
|
+
new webpack.ProvidePlugin({
|
163
|
+
React: "react",
|
164
|
+
mui: "material-ui",
|
165
|
+
})
|
166
|
+
],
|
167
|
+
}
|
168
|
+
HEREDOC
|
169
|
+
|
170
|
+
File.open("#{@app_name}/webpack.config.js", "w") do |f|
|
171
|
+
f.write(webpack_config)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: react-rails-generator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bach Van Ngoc
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRcwFQYDVQQDDA5uZXZl
|
14
|
+
cnNtaWxlMTJiMTEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQB
|
15
|
+
GRYDY29tMB4XDTE3MDUwODA5NDExMVoXDTE4MDUwODA5NDExMVowRTEXMBUGA1UE
|
16
|
+
AwwObmV2ZXJzbWlsZTEyYjExFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmS
|
17
|
+
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN35
|
18
|
+
LZ1gt+cEs9rBssbC1I4v/I4ZhFzMfnyD/ArzakoxsLIzDOB+nj0+3LzZHfcjEvLa
|
19
|
+
UMvSbJ8R4v0gGlbLC70RtXbhPRVwhcyoOAABaD7NZjxROiHOwThyGBShsLteNKSG
|
20
|
+
d5QL6N9DW5iGO9dxiOHsQTRH8slR0A5QpwIOb1meK/gHs4OwpghOmCqWqSMq/zdC
|
21
|
+
RbWbbAw7NOWJZVbBgOnaH64fHlrqNPtSI1wAEA8YqRw7pxnb5gx86pKw8A6zLDQ4
|
22
|
+
bjldNHT93rscaLqencfsr6ZSYthw3+X9PAm9csfxICRBGId/tfHGS8dfC3z9Ptwz
|
23
|
+
vstpoE+injXvGp83PKkCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
24
|
+
sDAdBgNVHQ4EFgQU6K4tApQ9Y4Xawrmwc9gShYFBnrUwIwYDVR0RBBwwGoEYbmV2
|
25
|
+
ZXJzbWlsZTEyYjFAZ21haWwuY29tMCMGA1UdEgQcMBqBGG5ldmVyc21pbGUxMmIx
|
26
|
+
QGdtYWlsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAu4V9Vt8Wg6ByPmZVHvIevWe1
|
27
|
+
vZrhURsaoZOl4DIy/HoJQAGlOZnKoA2i1Ch/q5L2Bw6YV9Rw9CaB+J8I87jVZQ/3
|
28
|
+
+wRffI943LIxjzkDbE+xyMj1WxMD0vya8jKy9Ntu/vIgE3Pi7ePoVLcn4s7V4dlu
|
29
|
+
ZrFAQ9dcP3KgKqlyBhpTa1FvR2w8NIRuP4dsdNR9FWs9V/732aFG2neoAcioNhNA
|
30
|
+
Wt1AQEk+MTC+t/byXCIxnQE3kop57JRYDdd1pck4MmLvVpixD3mhOA8QNXZR6P/3
|
31
|
+
VWRkILiW3rvPHLFTy/AMn5XKxpUm3lV1f13P57/YZ+c+wJOB2wpI/kgYjhy/Pg==
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2017-05-17 00:00:00.000000000 Z
|
34
|
+
dependencies: []
|
35
|
+
description: A simple React Rails generator
|
36
|
+
email: nevesmile12b1@gmail.com
|
37
|
+
executables:
|
38
|
+
- react-rails
|
39
|
+
extensions: []
|
40
|
+
extra_rdoc_files: []
|
41
|
+
files:
|
42
|
+
- bin/react-rails
|
43
|
+
- lib/generators/init_react.rb
|
44
|
+
homepage: http://rubygems.org/gems/hello-neversmile
|
45
|
+
licenses:
|
46
|
+
- MIT
|
47
|
+
metadata: {}
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirements: []
|
63
|
+
rubyforge_project:
|
64
|
+
rubygems_version: 2.6.12
|
65
|
+
signing_key:
|
66
|
+
specification_version: 4
|
67
|
+
summary: React Rails generator
|
68
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|