in src/processors/CodeGenLanguageRuby.js [88:175]
preMustacheProcess(APISpecs: {[x: string]: any}) {
for (const clsName in APISpecs) {
const APIClsSpec = APISpecs[clsName];
// Fields
for (const index in APIClsSpec.fields) {
const fieldSpec = APIClsSpec.fields[index];
const enumList = {};
for (const index2 in APIClsSpec.api_spec_based_enum_reference) {
const enumSpec = APIClsSpec.api_spec_based_enum_reference[index2];
enumList[enumSpec.name] = enumSpec['field_or_param:upper_case'];
}
const rubyType = getTypeForRuby(fieldSpec.type, enumList, APISpecs);
fieldSpec['type:ruby'] = rubyType;
}
for (const index in APIClsSpec.apis) {
const APISpec = APIClsSpec.apis[index];
const enumList = {};
for (const index2 in APISpec.referred_enums) {
const enumSpec = APISpec.referred_enums[index2];
if (enumSpec.metadata.node) {
let node_name = enumSpec.metadata.node;
if (APISpecs[node_name]) {
node_name = APISpecs[node_name]['name:strict_pascal_case'];
}
enumList[enumSpec.metadata.name] =
node_name +
'::' +
enumSpec.metadata['field_or_param:upper_case'];
} else {
enumList[enumSpec.metadata.name] = enumSpec.metadata.values;
}
}
for (const index2 in APISpec.params) {
const paramSpec = APISpec.params[index2];
const rubyType = getTypeForRuby(paramSpec.type, enumList, APISpecs);
paramSpec['type:ruby'] = rubyType;
}
if (APISpec.name == 'update' && APISpec.endpoint == '/') {
APIClsSpec.has_update = true;
}
if (APISpec.name == 'delete' && APISpec.endpoint == '/') {
APIClsSpec.has_delete = true;
}
}
// Restructure Edges arrays
let edgeArray = APIClsSpec.edges;
const edgeObject = {};
for (const index in APIClsSpec.edges) {
const edgeSpec = APIClsSpec.edges[index];
const edgeName = edgeSpec.endpoint.replace(/^\//, '');
if (!edgeObject[edgeName]) {
edgeObject[edgeName] = [];
}
edgeSpec['method:lower_case'] = edgeSpec.method.toLowerCase();
if (edgeSpec.name == 'create_ad_image') {
edgeSpec.return_a_list = true;
}
edgeObject[edgeName].push(edgeSpec);
}
edgeArray = [];
for (const edgeName in edgeObject) {
const edgeEndPoints = edgeObject[edgeName];
edgeArray.push({
edge_name: edgeName,
end_points: edgeEndPoints,
});
}
APIClsSpec.edges = edgeArray;
}
return APISpecs;
},