revelry_generate 0.3.1 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +18 -0
- data/package.json +25 -0
- data/scripts/skeleton.js +69 -0
- data/scripts/utilities/update_views.js +56 -0
- data/skeletons/node-base/__generators__/post_skeleton.rb +3 -1
- data/skeletons/node-base/package.json +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3b43e20f9ee7efc0a494c97597b89cee32dc2c6
|
4
|
+
data.tar.gz: 20974ad9c3c058854cdf389dddade100f959db37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de2baa191b22a71e772ec4a16e6e10c06b8cb568b7d15256123671d5cea825526e2215f058c289f82a24c067a280d6a4ca479adf24b4f325b286b4f74b9d59ed
|
7
|
+
data.tar.gz: 5160058a90a1cfefcdbaa45efc9cab06f18792dc1428b4f8ca114b8530010e5d3fce30ea9857be2b4095d1a131cce977a2dc65ec383980a67d13fa9a0c8609d5
|
data/LICENSE
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
The MIT License (MIT) Copyright (c) 2016 Robert Prehn and Revelry Labs
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
5
|
+
the Software without restriction, including without limitation the rights to
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
7
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
8
|
+
subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
11
|
+
copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/package.json
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"name": "revelry-generate",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "Packages containing the application templates, scaffolds, and generators for the Revelry 2016 Name TBD stack.",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"repository": {
|
10
|
+
"type": "git",
|
11
|
+
"url": "git+https://github.com/revelrylabs/generate.git"
|
12
|
+
},
|
13
|
+
"author": "",
|
14
|
+
"license": "MIT",
|
15
|
+
"bugs": {
|
16
|
+
"url": "https://github.com/revelrylabs/generate/issues"
|
17
|
+
},
|
18
|
+
"homepage": "https://github.com/revelrylabs/generate#readme",
|
19
|
+
"dependencies": {
|
20
|
+
"fs-extra": "^0.26.7",
|
21
|
+
"inquirer": "^1.0.0",
|
22
|
+
"lodash": "^4.11.1",
|
23
|
+
"react-rails-forms": "revelrylabs/react-rails-forms"
|
24
|
+
}
|
25
|
+
}
|
data/scripts/skeleton.js
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
|
3
|
+
var fs = require('fs-extra');
|
4
|
+
var Path = require('path');
|
5
|
+
var inquirer = require('inquirer');
|
6
|
+
var spawnSync = require('child_process').spawn;
|
7
|
+
|
8
|
+
|
9
|
+
var skeletonPath = Path.resolve(__dirname, '../skeletons/node-base');
|
10
|
+
|
11
|
+
console.log(__dirname);
|
12
|
+
var needsConfirmationItems = [];
|
13
|
+
|
14
|
+
fs.walk(skeletonPath)
|
15
|
+
.on('data', function(item) {
|
16
|
+
var stats;
|
17
|
+
var dest = Path.relative(skeletonPath, item.path);
|
18
|
+
dest = Path.join(process.cwd(), dest);
|
19
|
+
if(item.path.indexOf('__generators__') > -1) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
|
23
|
+
console.log(dest);
|
24
|
+
if(fs.statSync(item.path).isDirectory()) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
try {
|
28
|
+
stats = fs.statSync(dest);
|
29
|
+
|
30
|
+
needsConfirmationItems.push({item: item, dest: dest});
|
31
|
+
} catch(e) {
|
32
|
+
|
33
|
+
fs.copy(item.path, dest);
|
34
|
+
}
|
35
|
+
})
|
36
|
+
.on('end', function() {
|
37
|
+
var file, item, dest;
|
38
|
+
var questions = [];
|
39
|
+
|
40
|
+
needsConfirmationItems.forEach(function(file) {
|
41
|
+
dest = file.dest;
|
42
|
+
questions.push({
|
43
|
+
type: 'confirm',
|
44
|
+
name: file.item.path + ':' + dest,
|
45
|
+
message: 'Overwrite ' + dest + '?'
|
46
|
+
});
|
47
|
+
});
|
48
|
+
|
49
|
+
inquirer.prompt(questions).then(function(answer) {
|
50
|
+
var item;
|
51
|
+
for(item of Object.keys(answer)) {
|
52
|
+
var parts = item.split(':');
|
53
|
+
var src = parts[0];
|
54
|
+
var dest = parts[1];
|
55
|
+
if(answer[item] != false) {
|
56
|
+
fs.copy(src, dest);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}).then(function() {
|
60
|
+
var npm = spawn('npm', ['install']);
|
61
|
+
npm.stdout.on('data', (data) => {
|
62
|
+
console.log(`stdout: ${data}`);
|
63
|
+
});
|
64
|
+
|
65
|
+
npm.stderr.on('data', (data) => {
|
66
|
+
console.log(`stderr: ${data}`);
|
67
|
+
});
|
68
|
+
});
|
69
|
+
});
|
@@ -0,0 +1,56 @@
|
|
1
|
+
var fs = require('fs');
|
2
|
+
var _ = require('lodash');
|
3
|
+
|
4
|
+
function insertImport(sourceLines, viewPath, className) {
|
5
|
+
var i;
|
6
|
+
|
7
|
+
var importLine = 'import ' + className + " from './" + viewPath + "'";
|
8
|
+
|
9
|
+
if(_.find(sourceLines, function(l) { return l == importLine })) {
|
10
|
+
return sourceLines;
|
11
|
+
}
|
12
|
+
|
13
|
+
if((i = _.findLastIndex(sourceLines, isImportLine)) > -1) {
|
14
|
+
sourceLines.splice(i, 0, importLine);
|
15
|
+
} else {
|
16
|
+
sourceLines.unshift(importLine);
|
17
|
+
}
|
18
|
+
|
19
|
+
return sourceLines;
|
20
|
+
}
|
21
|
+
|
22
|
+
function isImportLine(line) {
|
23
|
+
return _.includes(line, 'import') && _.includes(line, 'from')
|
24
|
+
}
|
25
|
+
|
26
|
+
function insertExport(sourceLines, viewName, className) {
|
27
|
+
var i, line;
|
28
|
+
var lines = [];
|
29
|
+
var foundExport = false, foundEndOfExport = false;
|
30
|
+
|
31
|
+
for(i = 0; i < sourceLines.length; i++) {
|
32
|
+
line = sourceLines[i];
|
33
|
+
if(!foundExport && line.indexOf('export') > -1) {
|
34
|
+
foundExport = true;
|
35
|
+
} else if(foundExport && !foundEndOfExport && line.indexOf('}') > -1) {
|
36
|
+
foundEndOfExport = true;
|
37
|
+
lines.push(" '" + viewName + "': " + className + ',');
|
38
|
+
}
|
39
|
+
lines.push(line);
|
40
|
+
}
|
41
|
+
return lines;
|
42
|
+
}
|
43
|
+
|
44
|
+
module.exports = function UpdateViewFile(viewIndexPath, viewPath, viewName, className) {
|
45
|
+
var source = fs.readFileSync(viewIndexPath);
|
46
|
+
var sourceLines = source.toString().split('\n');
|
47
|
+
var l = sourceLines.length;
|
48
|
+
|
49
|
+
sourceLines = insertImport(sourceLines, viewPath, className);
|
50
|
+
if(sourceLines.length > l) {
|
51
|
+
// If we did not add the import, don't add to the map
|
52
|
+
sourceLines = insertExport(sourceLines, viewName, className);
|
53
|
+
}
|
54
|
+
|
55
|
+
fs.writeFileSync(viewIndexPath, sourceLines.join('\n'));
|
56
|
+
}
|
@@ -1,9 +1,11 @@
|
|
1
1
|
append_file 'config/initializers/assets.rb', 'Rails.application.config.assets.precompile += %w( client.css client.js )'
|
2
2
|
application "config.assets.paths << Rails.root.join('build')"
|
3
3
|
|
4
|
+
gem 'puma'
|
5
|
+
|
4
6
|
inject_into_file 'config/application.rb',
|
5
7
|
after: "config.active_record.raise_in_transactional_callbacks = true\n" do <<-RUBY
|
6
|
-
|
8
|
+
config.assets.paths << Rails.root.join('build')
|
7
9
|
RUBY
|
8
10
|
end
|
9
11
|
|
@@ -24,7 +24,6 @@
|
|
24
24
|
"babel-preset-es2015": "^6.6.0",
|
25
25
|
"babel-preset-react": "^6.5.0",
|
26
26
|
"babel-preset-stage-0": "^6.5.0",
|
27
|
-
"babel-transform-class-properties"
|
28
27
|
"babel-plugin-transform-class-properties": "^6.9.1",
|
29
28
|
"babelify": "^7.2.0",
|
30
29
|
"browserify": "^13.0.0",
|
@@ -34,6 +33,7 @@
|
|
34
33
|
"glob": "^7.0.3",
|
35
34
|
"minimist": "^1.2.0",
|
36
35
|
"node-sass": "^3.4.2",
|
36
|
+
"nodemon": "^1.9.2",
|
37
37
|
"react": "^0.14.7",
|
38
38
|
"react-dom": "^0.14.7",
|
39
39
|
"react-rails-forms": "^1.0.0",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revelry_generate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Prehn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ''
|
14
14
|
email:
|
@@ -17,6 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- LICENSE
|
20
21
|
- README.md
|
21
22
|
- lib/generate.rb
|
22
23
|
- lib/rails/generators/jbuilder_props/jbuilder_props_generator.rb
|
@@ -31,6 +32,9 @@ files:
|
|
31
32
|
- lib/rails/generators/react_scaffold/templates/new.js.erb
|
32
33
|
- lib/rails/generators/react_scaffold/templates/show.js.erb
|
33
34
|
- lib/rails/generators/revelry_generate/skeleton_generator.rb
|
35
|
+
- package.json
|
36
|
+
- scripts/skeleton.js
|
37
|
+
- scripts/utilities/update_views.js
|
34
38
|
- skeletons/node-base/Procfile
|
35
39
|
- skeletons/node-base/__generators__/post_scaffold.js
|
36
40
|
- skeletons/node-base/__generators__/post_skeleton.rb
|