Created
November 29, 2012 17:25
-
-
Save mrios/4170567 to your computer and use it in GitHub Desktop.
Hal Builder NodeJS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
( | |
function(exports) | |
{ | |
exports.make_hal_builder | |
= function(_,hal) | |
{ | |
var hal_builder | |
= function(aData,uri) | |
{ | |
this.resource | |
= new hal.Resource(aData,uri) | |
return this | |
} | |
hal_builder | |
.prototype.link | |
= function(aLink, isTrue) | |
{ | |
var self=this | |
if(isTrue==false) | |
return this | |
_.each( | |
aLink | |
, function(link_item,rel) | |
{ | |
if(_.isArray(link_item)) | |
_.each( | |
_.map( | |
link_item | |
, function(link_item) | |
{ | |
var result | |
= {} | |
result[rel] | |
= link_item | |
return result | |
} | |
) | |
, function(singlelink) | |
{ | |
self.link(singlelink) | |
} | |
) | |
else | |
{ | |
self.resource | |
.link(rel,link_item) | |
} | |
} | |
) | |
return this | |
} | |
hal_builder | |
.prototype.embedded | |
= function(anEmbedded) | |
{ | |
var self=this | |
_.each( | |
anEmbedded | |
, function(item,key) | |
{ | |
self.resource | |
.embed( | |
key | |
, ( | |
_.isArray(item) | |
?_.map( | |
item | |
, function(i) | |
{ | |
return i.resource | |
} | |
) | |
:item.resource | |
) | |
) | |
} | |
) | |
return this | |
} | |
hal_builder | |
.prototype.get_document | |
= function() | |
{ | |
return this.resource.toJSON() | |
} | |
return hal_builder | |
} | |
} | |
)( | |
typeof exports === 'undefined' | |
?this['Sigma'].portable //ATENTI ACA | |
:exports | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{"_links":{"self":{"href":"instituciones-univ/CAECE"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"CAECE","type":"NO CLAVE","name":"Universidad CAECE","postal_code":"1026","address":"Junin 516","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/ITBA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"ITBA","type":"CLAVE","name":"Instituto Tecnologico de Buenos Aires","postal_code":"C1106ACD","address":"Av. Eduardo Madero 399","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UADE"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UADE","type":"NO CLAVE","name":"Universidad Argentina de la Empresa","postal_code":"C1073AAO","address":"Lima 717","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UAI"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UAI","type":"NO CLAVE","name":"Universidad Abierta Interamericana","postal_code":"C1147AAH","address":"San Juan 951 ","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UAUSTRAL"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UAUSTRAL","type":"NO CLAVE","name":"Universidad Austral","postal_code":"C1063ABB","address":"Av. Juan de Garay 125","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UBA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UBA","type":"CLAVE","name":"Universidad de Buenos Aires","postal_code":"C1425CKB","address":"Av. Figueroa Alcorta 2263","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UBELGRANO"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UBELGRANO","type":"NO CLAVE","name":"Universidad de Belgrano","postal_code":"1426","address":"Av. Federico Lacroze 1959 PB","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UCA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UCA","type":"CLAVE","name":"Universidad Catolica Argentina","postal_code":"1107","address":"Av. Alicia M. de Justo 1400 P. Baja","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UCEMA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UCEMA","type":"NO CLAVE","name":"Universidad del CEMA","postal_code":"1054","address":"Avda Córdoba 374","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UCES"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UCES","type":"NO CLAVE","name":"Universidad de Ciencias Empresariales y Sociales","postal_code":"C1061ABA","address":"Paraguay 1401 Piso 8","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UNLAM"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UNLAM","type":"NO CLAVE","name":"Universidad Nacional de la Matanza","postal_code":"B1754JEC","address":"Florencio Varela 1903","city":"San Justo"},{"_links":{"self":{"href":"instituciones-univ/UNSAM"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UNSAM","type":"NO CLAVE","name":"Universidad Nacional de San Martin","postal_code":"1650","address":"Caseros 2241","city":"San Martin"},{"_links":{"self":{"href":"instituciones-univ/UPALERMO"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UPALERMO","type":"NO CLAVE","name":"Universidad de Palermo","postal_code":"1175","address":"Maria Bravo 1050","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/USALVADOR"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"USALVADOR","type":"NO CLAVE","name":"Universidad Nacional del Salvador","postal_code":"C1058AAV","address":"Viamonte 1856","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UTDT"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UTDT","type":"NO CLAVE","name":"Universidad Torcuato Di Tella","postal_code":null,"address":"Miñones 2177","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UTN"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CABA"}},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"}},"id":"UTN","type":"CLAVE","name":"Universidad Tecnologica Nacional","postal_code":"C1041AAJ","address":"Sarmiento 440","city":"Capital Federal"},{"_links":{"self":{"href":"instituciones-univ/UNC"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CBA"}},"id":"CBA","desc":"Córdoba"}},"id":"UNC","type":"CLAVE","name":"Universidad Nacional de Cordoba","postal_code":"X5016GCA","address":"Av. Vélez Sarfield 1611.- Ciudad Universitaria.","city":"Córdoba"},{"_links":{"self":{"href":"instituciones-univ/UNRC"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CBA"}},"id":"CBA","desc":"Córdoba"}},"id":"UNRC","type":"NO CLAVE","name":"Universidad Nacional de Rio Cuarto","postal_code":"X5804BYA","address":"Ruta Nacional Nº36 km 601","city":"RÃo Cuarto"},{"_links":{"self":{"href":"instituciones-univ/UNPATAGONIA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CHU"}},"id":"CHU","desc":"Chubut"}},"id":"UNPATAGONIA","type":"NO CLAVE","name":"Universidad Nacional de La Patagonia San Juan Bosco","postal_code":"9005","address":"Ciudad Universitaria Km 4","city":"Comodoro Rivadavia"},{"_links":{"self":{"href":"instituciones-univ/IUAERONAUTICO"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/CBA"}},"id":"CBA","desc":"Córdoba"}},"id":"IUAERONAUTICO","type":"NO CLAVE","name":"Instituto Universitario Aeronautico","postal_code":"5022","address":"Av. Fuerza Aerera 6500","city":"Córdoba"},{"_links":{"self":{"href":"instituciones-univ/UNJU"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/JUJ"}},"id":"JUJ","desc":"Jujuy"}},"id":"UNJU","type":"NO CLAVE","name":"Universidad Nacional de Jujuy","postal_code":"4600","address":"Av. Bolivia 1239","city":"San Salvador de Jujuy"},{"_links":{"self":{"href":"instituciones-univ/UNCUYO"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/MDZ"}}}},"id":"UNCUYO","type":"CLAVE","name":"Universidad Nacional de Cuyo","postal_code":"M5502KFA","address":"Facultad de IngenierÃa Edificio de Gobierno Centro Unversitario","city":"Mendoza"},{"_links":{"self":{"href":"instituciones-univ/UNCOMA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/NEU"}},"id":"NEU","desc":"Neuquén"}},"id":"UNCOMA","type":"NO CLAVE","name":"Universidad Nacional del Comahue","postal_code":"8300","address":"Buenos Aires 1400","city":"Neuquen"},{"_links":{"self":{"href":"instituciones-univ/UDESA"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UDESA","type":"NO CLAVE","name":"Universidad de San Andres","postal_code":"B1644BID","address":"Vito Dumas 284","city":"Victoria"},{"_links":{"self":{"href":"instituciones-univ/UNICEN"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNICEN","type":"NO CLAVE","name":"Universidad Nacional del Centro de Buenos Aires","postal_code":"B7000GHG","address":"Gral. Pinto 399, Campus Universitario","city":"Tandil"},{"_links":{"self":{"href":"instituciones-univ/UNLP"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNLP","type":"CLAVE","name":"Universidad Nacional de La Plata","postal_code":"B1900TAG","address":"Calle 1 y 47","city":"La Plata"},{"_links":{"self":{"href":"instituciones-univ/UNLUJAN"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNLUJAN","type":"NO CLAVE","name":"Universidad Nacional de Lujan","postal_code":"6700","address":"Ruta 5 Av. Constitucion","city":"Luján"},{"_links":{"self":{"href":"instituciones-univ/UNLZ"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNLZ","type":"NO CLAVE","name":"Universidad de Lomas de Zamora","postal_code":"1832","address":"Ruta Provincial 4, Kilómetro 2","city":"Lomas de Zamora"},{"_links":{"self":{"href":"instituciones-univ/UNMDP"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNMDP","type":"CLAVE","name":"Universidad Nacional de Mar del Plata","postal_code":"B7602AYJ","address":" Funes 3250 - 2º Piso","city":"Mar del Plata"},{"_links":{"self":{"href":"instituciones-univ/UNMDP"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNMDP","type":"CLAVE","name":"Universidad Nacional de Mar del Plata","postal_code":"B7608FDQ","address":"Avenida Juan B. Justo 4302","city":"Mar del Plata"},{"_links":{"self":{"href":"instituciones-univ/UNSUR"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/BUE"}},"id":"BUE","desc":"Buenos Aires"}},"id":"UNSUR","type":"CLAVE","name":"Universidad Nacional del Sur","postal_code":"B8000FTN","address":"Avenida Colon 80","city":"BahÃa Blanca"},{"_links":{"self":{"href":"instituciones-univ/IBALSEIRO"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/RNG"}},"id":"RNG","desc":"RÃo Negro"}},"id":"IBALSEIRO","type":"NO CLAVE","name":"Instituto Balseiro","postal_code":"R8402AGP","address":"Av. Bustillo Km 9,500","city":"San Carlos de Bariloche"},{"_links":{"self":{"href":"instituciones-univ/UNSJ"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/JUA"}},"id":"JUA","desc":"San Juan"}},"id":"UNSJ","type":"CLAVE","name":"Universidad Nacional de San Juan","postal_code":"5400","address":"Av. Ignacio de la Roza Oeste 590 - Complejo Universitario Islas Malvinas Rivadavia ","city":"San Juan"},{"_links":{"self":{"href":"instituciones-univ/UNSAL"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/SAL"}},"id":"SAL","desc":"Salta"}},"id":"UNSAL","type":"NO CLAVE","name":"Universidad Nacional de Salta","postal_code":"4400","address":"Av. Bolivia 5150 - Complejo Universitario Gral San Martin","city":"Salta"},{"_links":{"self":{"href":"instituciones-univ/UCAROS"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/SFE"}},"id":"SFE","desc":"Santa Fé"}},"id":"UCAROS","type":"NO CLAVE","name":"Universidad Catolica de Rosario","postal_code":"2000","address":"Mendoza 4197","city":"Rosario"},{"_links":{"self":{"href":"instituciones-univ/UNLIT"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/SFE"}},"id":"SFE","desc":"Santa Fé"}},"id":"UNLIT","type":"NO CLAVE","name":"Universidad Nacional del Litoral","postal_code":"S3000ADQ","address":"Bv. Pelegrini 2750 1° Piso","city":"Santa Fe"},{"_links":{"self":{"href":"instituciones-univ/UNROS"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/SFE"}},"id":"SFE","desc":"Santa Fé"}},"id":"UNROS","type":"CLAVE","name":"Universidad Nacional de Rosario","postal_code":"S2000BTP","address":"Av. Pellegrini 250 - 1er. Piso","city":" Rosario"},{"_links":{"self":{"href":"instituciones-univ/UNSL"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/UIS"}},"id":"UIS","desc":"San Luis"}},"id":"UNSL","type":"NO CLAVE","name":"Universidad Nacional de San Luis","postal_code":"D5730EKQ","address":"Av. 25 de Mayo n° 384","city":"Villa Mercedes"},{"_links":{"self":{"href":"instituciones-univ/UNT"}},"_embedded":{"provincia":{"_links":{"self":{"href":"provincias/TUC"}},"id":"TUC","desc":"Tucumán"}},"id":"UNT","type":"NO CLAVE","name":"Universidad Nacional de Tucuman","postal_code":"T4002BLR","address":"Av. Independencia 1900","city":"San Miguel De Tucumán"}] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//require('amd-loader') | |
var csv | |
= require('csv') | |
, _ | |
= require('underscore') | |
, path | |
= require('path') | |
, fs | |
= require('fs') | |
, fsExists | |
= fs.existsSync || path.existsSync | |
, program | |
= require('commander') | |
.version('0.0.1') | |
.option('-i, --input <path>','input dir to find json data [./data/json]',String,'./data/json') | |
.option('-o, --output <path>','output dir for hal data [./data/hal]',String,'./data/hal') | |
.option('-t, --transforms <transforms.json>','linking and embeding transforms [./transforms.json]',String,'./transforms.json') | |
.parse(process.argv) | |
, ensureDir | |
= require('ensureDir') | |
, hal | |
= require('hal') | |
, make_transformers | |
= require('../lib/spec-transform.js').make_transformers | |
, make_hal_builder | |
= require('../lib/hal-builder.js').make_hal_builder | |
, transforms | |
= fsExists(program.transforms) | |
?require(program.transforms) | |
:false | |
if(!fsExists(program.input)) | |
throw 'error: '+program.input+' no exists' | |
console.log('input: '+program.input) | |
if(!transforms) | |
throw 'error: '+program.transforms+' no exists' | |
console.log('transforms: '+program.transforms) | |
ensureDir( | |
program.output | |
, function() | |
{ | |
console.log('output: '+program.output) | |
var sources | |
= {} | |
, store | |
= {} | |
, store_filter | |
= function(what,by_key,by_id) | |
{ | |
return _(sources[what]) | |
.filter( | |
function(item) | |
{ | |
return item[by_key]==by_id | |
} | |
) | |
} | |
, store_find | |
= function(what,by_key,id_to_find) | |
{ | |
return _(sources[what]) | |
.find( | |
function(item) | |
{ | |
return item[by_key]==id_to_find | |
} | |
) | |
} | |
_.each( | |
transforms | |
, function(transform,index) | |
{ | |
var input | |
= JSON.parse( | |
fs.readFileSync(program.input+'/'+index+'.json','utf8') | |
) | |
sources[index] | |
= JSON.parse( | |
fs.readFileSync(program.input+'/'+index+'.json','utf8') | |
) | |
} | |
) | |
var transformers | |
= make_transformers(_)({find:store_find,filter:store_filter},transforms,make_hal_builder,hal) | |
_(sources) | |
.each( | |
function(source,index) | |
{ | |
var out | |
= fs.createWriteStream(program.output+'/'+index+'.json') | |
out.write( | |
JSON.stringify( | |
_(source) | |
.map(transformers[index]) | |
) | |
) | |
} | |
) | |
} | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "csv2json" | |
, "version": "0.0.1" | |
, "description": "Convert csv to json" | |
, "author": "Gabriel Pittau <gpittau@gmail.com>" | |
, "contributors": | |
[ | |
] | |
, "engines": | |
{ | |
"node": ">= 0.6.0" | |
} | |
, "keywords": | |
[ | |
"parser" | |
, "generator" | |
, "json" | |
, "csv" | |
] | |
, "repository": | |
{ | |
"type": "git" | |
, "url": "git://github.com/SIGMA-IT/csv2json.git" | |
} | |
, "dependencies": | |
{ | |
"csv": "0.2.3" | |
, "commander": "latest" | |
, "ensureDir": "latest" | |
, "underscore": "latest" | |
, "hal":"git://github.com/SIGMA-IT/js-hal.git#master" | |
} | |
, "devDependencies": | |
{ | |
"qunit": "0.5.x" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{"_links":{"self":{"href":"provincias/BUE"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UDESA"}},"id":"UDESA","type":"NO CLAVE","name":"Universidad de San Andres","postal_code":"B1644BID","address":"Vito Dumas 284","city":"Victoria","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNICEN"}},"id":"UNICEN","type":"NO CLAVE","name":"Universidad Nacional del Centro de Buenos Aires","postal_code":"B7000GHG","address":"Gral. Pinto 399, Campus Universitario","city":"Tandil","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNLP"}},"id":"UNLP","type":"CLAVE","name":"Universidad Nacional de La Plata","postal_code":"B1900TAG","address":"Calle 1 y 47","city":"La Plata","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNLUJAN"}},"id":"UNLUJAN","type":"NO CLAVE","name":"Universidad Nacional de Lujan","postal_code":"6700","address":"Ruta 5 Av. Constitucion","city":"Luján","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNLZ"}},"id":"UNLZ","type":"NO CLAVE","name":"Universidad de Lomas de Zamora","postal_code":"1832","address":"Ruta Provincial 4, Kilómetro 2","city":"Lomas de Zamora","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNMDP"}},"id":"UNMDP","type":"CLAVE","name":"Universidad Nacional de Mar del Plata","postal_code":"B7602AYJ","address":" Funes 3250 - 2º Piso","city":"Mar del Plata","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNMDP"}},"id":"UNMDP","type":"CLAVE","name":"Universidad Nacional de Mar del Plata","postal_code":"B7608FDQ","address":"Avenida Juan B. Justo 4302","city":"Mar del Plata","provincia":"BUE"},{"_links":{"self":{"href":"instituciones-univ/UNSUR"}},"id":"UNSUR","type":"CLAVE","name":"Universidad Nacional del Sur","postal_code":"B8000FTN","address":"Avenida Colon 80","city":"BahÃa Blanca","provincia":"BUE"}]},"id":"BUE","desc":"Buenos Aires"},{"_links":{"self":{"href":"provincias/CABA"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/CAECE"}},"id":"CAECE","type":"NO CLAVE","name":"Universidad CAECE","postal_code":"1026","address":"Junin 516","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/ITBA"}},"id":"ITBA","type":"CLAVE","name":"Instituto Tecnologico de Buenos Aires","postal_code":"C1106ACD","address":"Av. Eduardo Madero 399","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UADE"}},"id":"UADE","type":"NO CLAVE","name":"Universidad Argentina de la Empresa","postal_code":"C1073AAO","address":"Lima 717","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UAI"}},"id":"UAI","type":"NO CLAVE","name":"Universidad Abierta Interamericana","postal_code":"C1147AAH","address":"San Juan 951 ","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UAUSTRAL"}},"id":"UAUSTRAL","type":"NO CLAVE","name":"Universidad Austral","postal_code":"C1063ABB","address":"Av. Juan de Garay 125","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UBA"}},"id":"UBA","type":"CLAVE","name":"Universidad de Buenos Aires","postal_code":"C1425CKB","address":"Av. Figueroa Alcorta 2263","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UBELGRANO"}},"id":"UBELGRANO","type":"NO CLAVE","name":"Universidad de Belgrano","postal_code":"1426","address":"Av. Federico Lacroze 1959 PB","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UCA"}},"id":"UCA","type":"CLAVE","name":"Universidad Catolica Argentina","postal_code":"1107","address":"Av. Alicia M. de Justo 1400 P. Baja","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UCEMA"}},"id":"UCEMA","type":"NO CLAVE","name":"Universidad del CEMA","postal_code":"1054","address":"Avda Córdoba 374","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UCES"}},"id":"UCES","type":"NO CLAVE","name":"Universidad de Ciencias Empresariales y Sociales","postal_code":"C1061ABA","address":"Paraguay 1401 Piso 8","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UNLAM"}},"id":"UNLAM","type":"NO CLAVE","name":"Universidad Nacional de la Matanza","postal_code":"B1754JEC","address":"Florencio Varela 1903","city":"San Justo","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UNSAM"}},"id":"UNSAM","type":"NO CLAVE","name":"Universidad Nacional de San Martin","postal_code":"1650","address":"Caseros 2241","city":"San Martin","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UPALERMO"}},"id":"UPALERMO","type":"NO CLAVE","name":"Universidad de Palermo","postal_code":"1175","address":"Maria Bravo 1050","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/USALVADOR"}},"id":"USALVADOR","type":"NO CLAVE","name":"Universidad Nacional del Salvador","postal_code":"C1058AAV","address":"Viamonte 1856","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UTDT"}},"id":"UTDT","type":"NO CLAVE","name":"Universidad Torcuato Di Tella","postal_code":null,"address":"Miñones 2177","city":"Capital Federal","provincia":"CABA"},{"_links":{"self":{"href":"instituciones-univ/UTN"}},"id":"UTN","type":"CLAVE","name":"Universidad Tecnologica Nacional","postal_code":"C1041AAJ","address":"Sarmiento 440","city":"Capital Federal","provincia":"CABA"}]},"id":"CABA","desc":"Ciudad Autónoma de Buenos Aires"},{"_links":{"self":{"href":"provincias/CAT"}},"_embedded":{"instituciones-univ":[]},"id":"CAT","desc":"Catamarca"},{"_links":{"self":{"href":"provincias/CHA"}},"_embedded":{"instituciones-univ":[]},"id":"CHA","desc":"Chaco"},{"_links":{"self":{"href":"provincias/CHU"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNPATAGONIA"}},"id":"UNPATAGONIA","type":"NO CLAVE","name":"Universidad Nacional de La Patagonia San Juan Bosco","postal_code":"9005","address":"Ciudad Universitaria Km 4","city":"Comodoro Rivadavia","provincia":"CHU"}]},"id":"CHU","desc":"Chubut"},{"_links":{"self":{"href":"provincias/CBA"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNC"}},"id":"UNC","type":"CLAVE","name":"Universidad Nacional de Cordoba","postal_code":"X5016GCA","address":"Av. Vélez Sarfield 1611.- Ciudad Universitaria.","city":"Córdoba","provincia":"CBA"},{"_links":{"self":{"href":"instituciones-univ/UNRC"}},"id":"UNRC","type":"NO CLAVE","name":"Universidad Nacional de Rio Cuarto","postal_code":"X5804BYA","address":"Ruta Nacional Nº36 km 601","city":"RÃo Cuarto","provincia":"CBA"},{"_links":{"self":{"href":"instituciones-univ/IUAERONAUTICO"}},"id":"IUAERONAUTICO","type":"NO CLAVE","name":"Instituto Universitario Aeronautico","postal_code":"5022","address":"Av. Fuerza Aerera 6500","city":"Córdoba","provincia":"CBA"}]},"id":"CBA","desc":"Córdoba"},{"_links":{"self":{"href":"provincias/CRR"}},"_embedded":{"instituciones-univ":[]},"id":"CRR","desc":"Corrientes"},{"_links":{"self":{"href":"provincias/ERS"}},"_embedded":{"instituciones-univ":[]},"id":"ERS","desc":"Entre RÃos"},{"_links":{"self":{"href":"provincias/FOR"}},"_embedded":{"instituciones-univ":[]},"id":"FOR","desc":"Formosa"},{"_links":{"self":{"href":"provincias/JUJ"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNJU"}},"id":"UNJU","type":"NO CLAVE","name":"Universidad Nacional de Jujuy","postal_code":"4600","address":"Av. Bolivia 1239","city":"San Salvador de Jujuy","provincia":"JUJ"}]},"id":"JUJ","desc":"Jujuy"},{"_links":{"self":{"href":"provincias/LPA"}},"_embedded":{"instituciones-univ":[]},"id":"LPA","desc":"La Pampa"},{"_links":{"self":{"href":"provincias/LAR"}},"_embedded":{"instituciones-univ":[]},"id":"LAR","desc":"La Rioja"},{"_links":{"self":{"href":"provincias/DOZ"}},"_embedded":{"instituciones-univ":[]},"id":"DOZ","desc":"Mendoza"},{"_links":{"self":{"href":"provincias/MIS"}},"_embedded":{"instituciones-univ":[]},"id":"MIS","desc":"Misiones"},{"_links":{"self":{"href":"provincias/NEU"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNCOMA"}},"id":"UNCOMA","type":"NO CLAVE","name":"Universidad Nacional del Comahue","postal_code":"8300","address":"Buenos Aires 1400","city":"Neuquen","provincia":"NEU"}]},"id":"NEU","desc":"Neuquén"},{"_links":{"self":{"href":"provincias/RNG"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/IBALSEIRO"}},"id":"IBALSEIRO","type":"NO CLAVE","name":"Instituto Balseiro","postal_code":"R8402AGP","address":"Av. Bustillo Km 9,500","city":"San Carlos de Bariloche","provincia":"RNG"}]},"id":"RNG","desc":"RÃo Negro"},{"_links":{"self":{"href":"provincias/SAL"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNSAL"}},"id":"UNSAL","type":"NO CLAVE","name":"Universidad Nacional de Salta","postal_code":"4400","address":"Av. Bolivia 5150 - Complejo Universitario Gral San Martin","city":"Salta","provincia":"SAL"}]},"id":"SAL","desc":"Salta"},{"_links":{"self":{"href":"provincias/JUA"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNSJ"}},"id":"UNSJ","type":"CLAVE","name":"Universidad Nacional de San Juan","postal_code":"5400","address":"Av. Ignacio de la Roza Oeste 590 - Complejo Universitario Islas Malvinas Rivadavia ","city":"San Juan","provincia":"JUA"}]},"id":"JUA","desc":"San Juan"},{"_links":{"self":{"href":"provincias/UIS"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNSL"}},"id":"UNSL","type":"NO CLAVE","name":"Universidad Nacional de San Luis","postal_code":"D5730EKQ","address":"Av. 25 de Mayo n° 384","city":"Villa Mercedes","provincia":"UIS"}]},"id":"UIS","desc":"San Luis"},{"_links":{"self":{"href":"provincias/SCZ"}},"_embedded":{"instituciones-univ":[]},"id":"SCZ","desc":"Santa Cruz"},{"_links":{"self":{"href":"provincias/SFE"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UCAROS"}},"id":"UCAROS","type":"NO CLAVE","name":"Universidad Catolica de Rosario","postal_code":"2000","address":"Mendoza 4197","city":"Rosario","provincia":"SFE"},{"_links":{"self":{"href":"instituciones-univ/UNLIT"}},"id":"UNLIT","type":"NO CLAVE","name":"Universidad Nacional del Litoral","postal_code":"S3000ADQ","address":"Bv. Pelegrini 2750 1° Piso","city":"Santa Fe","provincia":"SFE"},{"_links":{"self":{"href":"instituciones-univ/UNROS"}},"id":"UNROS","type":"CLAVE","name":"Universidad Nacional de Rosario","postal_code":"S2000BTP","address":"Av. Pellegrini 250 - 1er. Piso","city":" Rosario","provincia":"SFE"}]},"id":"SFE","desc":"Santa Fé"},{"_links":{"self":{"href":"provincias/SDE"}},"_embedded":{"instituciones-univ":[]},"id":"SDE","desc":"Santiago del Estero"},{"_links":{"self":{"href":"provincias/TDF"}},"_embedded":{"instituciones-univ":[]},"id":"TDF","desc":"Tierra del Fuego"},{"_links":{"self":{"href":"provincias/TUC"}},"_embedded":{"instituciones-univ":[{"_links":{"self":{"href":"instituciones-univ/UNT"}},"id":"UNT","type":"NO CLAVE","name":"Universidad Nacional de Tucuman","postal_code":"T4002BLR","address":"Av. Independencia 1900","city":"San Miguel De Tucumán","provincia":"TUC"}]},"id":"TUC","desc":"Tucumán"}] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var qunit | |
= require('qunit') | |
exports._ | |
= require('underscore') | |
exports.hal | |
= require('hal') | |
qunit.run( | |
{ | |
code: "/var/www/sigma-node/sigma-hal/hal_builder.js", | |
tests: "/var/www/sigma-node/sigma-hal/hal_builder_test.js" | |
}, | |
function(err, report) | |
{ | |
console.dir(report) | |
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
( | |
function(exports) | |
{ | |
exports.make_transformers | |
= function(_) | |
{ | |
return function(store,spec,make_hal_builder,hal) | |
{ | |
var hal_builder | |
= make_hal_builder(_,hal) | |
, results={} | |
_.each( | |
spec | |
, function(source_transform,index) | |
{ | |
results[index] | |
= function(what) | |
{ | |
var json_data | |
= _.clone(what) | |
, transformed | |
= new hal_builder(json_data,index+'/'+json_data.id) | |
var transformers | |
= _.reduce( | |
source_transform | |
, function(result,field_t,key) | |
{ | |
var make_transformer | |
= function(field) | |
{ | |
var is_single | |
= field.key!=undefined | |
, is_linked | |
= field.linked!=undefined | |
, src | |
= index | |
, src_key | |
= is_single | |
?field.key | |
:'id' | |
, tgt | |
= is_linked | |
?field.linked | |
:field.embeded | |
, tgt_key | |
= is_linked | |
?field.linked_key | |
:field.embeded_key | |
, embedded_key | |
= is_single | |
?field_t.key | |
:field_t.embeded | |
return function(source_item,transform_key) | |
{ | |
var embed_single | |
= function(embedded_link) | |
{ | |
return new hal_builder(store.find(tgt,tgt_key,json_data[src_key]), embedded_link) | |
} | |
, embed_list | |
= function(embedded_link) | |
{ | |
return store.filter(tgt,tgt_key,json_data[src_key]) | |
.map( | |
function(source_item) | |
{ | |
return new hal_builder(source_item, embedded_link+"/"+source_item.id ) | |
} | |
) | |
} | |
, link_single | |
= function() | |
{ | |
return tgt+'/'+what[src_key] | |
} | |
, link_list | |
= function() | |
{ | |
return tgt | |
} | |
var embedded_link | |
= is_single | |
?link_single() | |
:link_list() | |
, data | |
= is_single | |
?embed_single(embedded_link) | |
:embed_list(embedded_link) | |
, to_embed | |
= {} | |
to_embed[embedded_key] | |
= data | |
delete source_item.resource[embedded_key] | |
source_item.embedded(to_embed) | |
} | |
} | |
result[key]=make_transformer(field_t) | |
return result | |
} | |
, {} | |
) | |
_.each( | |
transformers | |
, function(t,k) | |
{ | |
t(transformed,k) | |
} | |
) | |
console.log(transformed.get_document()) | |
return transformed.get_document() | |
} | |
} | |
) | |
return results | |
} | |
} | |
} | |
)( | |
typeof exports === 'undefined' | |
?this['Sigma'].portable | |
:exports | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"provincias": | |
{ | |
"institutions": | |
{ | |
"embeded":"instituciones-univ" | |
, "embeded_key":"provincia" | |
} | |
} | |
, "instituciones-univ": | |
{ | |
"provincia": | |
{ | |
"key":"provincia" | |
, "embeded":"provincias" | |
, "embeded_key":"id" | |
} | |
, "provincia_link": | |
{ | |
"key":"provincia" | |
, "linked":"provincias" | |
, "linked_key":"id" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment