autocode
Version:
the ultimate developer platform
56 lines (54 loc) • 1.9 kB
JavaScript
// Generated by CoffeeScript 1.10.0
(function() {
module.exports = function(path) {
var cson, fs, i, j, k, len, len1, model_data, model_file, model_files, model_name, model_path, ref, spec, yaml;
cson = require('season');
fs = require('fs');
yaml = require('js-yaml');
if (!path) {
if (!this.path) {
return false;
}
path = this.path + "/src/spec";
}
if (this.config.type === 'generator') {
if (this.config.specifications && this.config.specifications["default"]) {
ref = this.config.specifications["default"];
for (j = 0, len = ref.length; j < len; j++) {
i = ref[j];
path = userHome + "/.autocode/spec/" + i + "/src/spec";
break;
}
}
}
spec = {};
model_path = path + "/model/";
if (fs.existsSync(model_path)) {
model_files = fs.readdirSync(model_path);
if (model_files.length) {
spec.models = {};
for (k = 0, len1 = model_files.length; k < len1; k++) {
model_file = model_files[k];
model_file = model_path + model_file;
model_name = model_file.split('/');
model_name = model_name[model_name.length - 1];
model_name = model_name.split('.');
model_name = model_name[0];
model_data = (function() {
switch (true) {
case model_file.match(/\.yml$/i) !== null:
case model_file.match(/\.yaml$/i) !== null:
return yaml.safeLoad(fs.readFileSync(model_file));
case model_file.match(/\.cson$/i) !== null:
return cson.readFileSync(model_file);
default:
throw new Error("Unknown file format for model (" + model_name + ")");
}
})();
spec.models[model_name] = model_data;
}
}
}
return spec;
};
}).call(this);