Compare commits

...
7 Commits
Author SHA1 Message Date
Chris 47f1273828 2.1.0 2015-09-29 13:53:05 +02:00
Chris 56ff5c6281 Added new helper method #getDestinationPath to make path management in subcomponents easier 2015-09-29 13:52:58 +02:00
Chris 7269a0a315 2.0.2 2015-09-25 11:38:31 +02:00
Chris 6a3da576fa Added changes to make pr compatible with coding guidelines. 2015-09-25 11:38:24 +02:00
Chris e7bbcb1fe7 Merge pull request #146 from halkeye/patch-1
update baseRootPath to be happier with npm@3
2015-09-25 11:34:27 +02:00
Gavin Mogan 8a2fc142ba update baseRootPath to be happier with npm@3
npm@3 now flattens node_modules directory
This should be happy no matter where the module ends up
2015-09-24 23:45:12 -07:00
Chris 76f0e8e672 Added correct node version for travis 2015-09-21 21:13:28 +02:00
5 changed files with 46 additions and 5 deletions
+1 -2
View File
@@ -1,7 +1,6 @@
language: node_js
node_js:
- '0.10'
- '4.1.0'
before_install:
- currentfolder=${PWD##*/}
- if [ "$currentfolder" != 'generator-react-webpack' ]; then cd .. && eval "mv $currentfolder generator-react-webpack" && cd generator-react-webpack; fi
+1 -1
View File
@@ -6,7 +6,7 @@ let path = require('path');
let fs = require('fs');
// Set the base root directory for our files
let baseRootPath = path.join(__dirname, '../../node_modules/react-webpack-template');
let baseRootPath = path.dirname(require.resolve('react-webpack-template'));
module.exports = generator.Base.extend({
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "generator-react-webpack",
"version": "2.0.1",
"version": "2.1.0",
"description": "Yeoman generator for ReactJS and Webpack",
"keywords": [
"yeoman-generator",
+15
View File
@@ -94,4 +94,19 @@ describe('Utilities:Yeoman', () => {
});
});
describe('#getDestinationPath', () => {
it('should return the correct filesystem path for all components', () => {
expect(utils.getDestinationPath('test', 'action', 'Actions')).to.equal('src/actions/TestActions.js');
expect(utils.getDestinationPath('subfolder/test', 'action', 'Actions')).to.equal('src/actions/subfolder/TestActions.js');
expect(utils.getDestinationPath('test', 'source', 'Source')).to.equal('src/sources/TestSource.js');
expect(utils.getDestinationPath('subfolder/test', 'source', 'Source')).to.equal('src/sources/subfolder/TestSource.js');
expect(utils.getDestinationPath('test', 'store', 'Store')).to.equal('src/stores/TestStore.js');
expect(utils.getDestinationPath('subfolder/test', 'store', 'Store')).to.equal('src/stores/subfolder/TestStore.js');
});
});
});
+28 -1
View File
@@ -113,10 +113,37 @@ let getAppName = (appName) => {
return _.camelize(_.slugify(_.humanize(appName)));
};
/**
* Get the wanted destination path
* @param {String} name Name of the file
* @param {String} type The type to use (e.g. action, store, ...)
* @param {Suffix} suffix The suffix to use for the file (e.g. Store, Actions, ...)
* @return {String} Final path
*/
let getDestinationPath = (name, type, suffix) => {
let cleanedPaths = getCleanedPathName(name, suffix);
let fsParts = cleanedPaths.split('/');
let actionBaseName = _.capitalize(fsParts.pop());
let partPath = fsParts.join('/');
let fsPath = configUtils.getChoiceByKey('path', type).path;
let parts = [ fsPath ];
if(partPath.length > 0) {
parts.push(partPath);
}
parts.push(actionBaseName);
let fullPath = parts.join('/');
return `${fullPath}.js`;
};
module.exports = {
getBaseDir: getBaseDir,
getAllSettingsFromComponentName: getAllSettingsFromComponentName,
getAppName: getAppName,
getCleanedPathName: getCleanedPathName,
getComponentStyleName: getComponentStyleName
getComponentStyleName: getComponentStyleName,
getDestinationPath: getDestinationPath
};