From: David Schoonover Date: Wed, 11 Jul 2012 00:03:55 +0000 (-0700) Subject: Checkpoint. Updates deps and fiddles with middleware. X-Git-Url: http://git.less.ly:3516/?a=commitdiff_plain;h=f44f0d0cb44df34b9da84b46456a55d6a10ece19;p=limn.git Checkpoint. Updates deps and fiddles with middleware. --- diff --git a/package.co b/package.co index 4f5821f..87518b4 100644 --- a/package.co +++ b/package.co @@ -1,48 +1,48 @@ -name : 'kraken' +name : 'limn' version : '0.1.0' description : 'A charting toolkit and dashboard.' -homepage : 'http://git.less.ly/?p=kraken-ui.git' -keywords : <[ visualization graph chart util server client browser ]> -author : 'David Schoonover (http://less.ly)' +homepage : 'https://github.com/wikimedia/limn' +keywords : <[ visualization graph d3 util server client browser ]> +author : 'David Schoonover (http://less.ly)' contributors : [ 'Andrew Otto ' + 'Fabian Kaelin ' 'Evan Rosen ' 'Diederik van Liere ' ] + # main : './lib' # directories : lib: './lib', bin:'./bin', doc:'./doc', man:'./man' dependencies : - 'coco' : '== 0.7.0' - 'request' : '== 2.9.x' + 'd3' : '== 2.9.x' 'underscore' : '== 1.3.x' 'underscore.string' : '== 2.1.1' 'seq' : '== 0.3.5' - 'hashish' : '== 0.0.4' + 'backbone' : '== 0.9.1' + 'express' : '== 2.5.11' + 'express-resource' : '== 0.2.4' + 'request' : '== 2.9.x' 'js-yaml' : '== 0.3.6' 'minimatch' : '== 0.2.5' 'glob' : '== 3.1.9' - 'findit' : '== 0.1.2' - 'remove' : '>= 0.1.1' - 'express' : '== 2.5.11' - 'express-resource' : '== 0.2.4' - 'connect-compiler' : 'https://github.com/dsc/connect-compiler/tarball/master' - 'connect-compiler-extras' : 'https://github.com/dsc/connect-compiler-extras/tarball/master' 'jade' : '== 0.22.1' 'stylus' : '== 0.27.2' 'nib' : '== 0.4.0' - 'browserify' : '== 1.9.4' - 'backbone' : '== 0.9.1' - 'd3' : '== 2.9.x' - + devDependencies : + 'coco' : '== 0.7.0' + 'remove' : '>= 0.1.1' 'buildtools' : 'https://github.com/dsc/node-buildtools/tarball/master' + 'connect-compiler' : 'https://github.com/dsc/connect-compiler/tarball/master' + 'connect-compiler-extras' : 'https://github.com/dsc/connect-compiler-extras/tarball/master' + 'browserify' : '== 1.9.4' 'uglify-js' : '== 1.2.6' - # 'expresso' : '== 0.9.2' +# 'expresso' : '== 0.9.2' # scripts : test:'expresso' -repository : type:'git', url:'git://less.ly/kraken-ui.git' +repository : type:'git', url:'git://github.com/wikimedia/limn.git' engine : node:'>=0.8.1' license : 'MIT' diff --git a/package.json b/package.json index 872ab4d..b6bc670 100644 --- a/package.json +++ b/package.json @@ -1,53 +1,52 @@ { - "name": "kraken", + "name": "limn", "version": "0.1.0", "description": "A charting toolkit and dashboard.", - "homepage": "http://git.less.ly/?p=kraken-ui.git", + "homepage": "https://github.com/wikimedia/limn", "keywords": [ "visualization", "graph", - "chart", + "d3", "util", "server", "client", "browser" ], - "author": "David Schoonover (http://less.ly)", + "author": "David Schoonover (http://less.ly)", "contributors": [ "Andrew Otto ", + "Fabian Kaelin ", "Evan Rosen ", "Diederik van Liere " ], "dependencies": { - "coco": "== 0.7.0", - "request": "== 2.9.x", + "d3": "== 2.9.x", "underscore": "== 1.3.x", "underscore.string": "== 2.1.1", "seq": "== 0.3.5", - "hashish": "== 0.0.4", + "backbone": "== 0.9.1", + "express": "== 2.5.11", + "express-resource": "== 0.2.4", + "request": "== 2.9.x", "js-yaml": "== 0.3.6", "minimatch": "== 0.2.5", "glob": "== 3.1.9", - "findit": "== 0.1.2", - "remove": ">= 0.1.1", - "express": "== 2.5.11", - "express-resource": "== 0.2.4", - "connect-compiler": "https://github.com/dsc/connect-compiler/tarball/master", - "connect-compiler-extras": "https://github.com/dsc/connect-compiler-extras/tarball/master", "jade": "== 0.22.1", "stylus": "== 0.27.2", - "nib": "== 0.4.0", - "browserify": "== 1.9.4", - "backbone": "== 0.9.1", - "d3": "== 2.9.x" + "nib": "== 0.4.0" }, "devDependencies": { + "coco": "== 0.7.0", + "remove": ">= 0.1.1", "buildtools": "https://github.com/dsc/node-buildtools/tarball/master", + "connect-compiler": "https://github.com/dsc/connect-compiler/tarball/master", + "connect-compiler-extras": "https://github.com/dsc/connect-compiler-extras/tarball/master", + "browserify": "== 1.9.4", "uglify-js": "== 1.2.6" }, "repository": { "type": "git", - "url": "git://less.ly/kraken-ui.git" + "url": "git://github.com/wikimedia/limn.git" }, "engine": { "node": ">=0.8.1" diff --git a/src/server/controllers/datasource.co b/src/server/controllers/datasource.co index fb07e6a..4b37c1c 100644 --- a/src/server/controllers/datasource.co +++ b/src/server/controllers/datasource.co @@ -1,13 +1,15 @@ fs = require 'fs' path = require 'path' -{existsSync:exists} = path +exists = fs.existsSync or path.existsSync -_ = require 'underscore' -yaml = require 'js-yaml' -findit = require 'findit' Seq = require 'seq' +glob = require 'glob' +yaml = require 'js-yaml' + +{_, op} = require '../../util' +{readFilesAsync} = require '../files' +Controller = require '../controller' -Controller = require '../controller' EXT_PAT = /\.[^\.]*$/i YAML_EXT_PAT = /\.ya?ml$/i @@ -64,11 +66,11 @@ class DataSourceController extends Controller * @returns {Object} JSON listing of the datasource metadata files. */ index : (req, res, next) -> - files = findit.sync @dataDir - # fs.readdir @dataDir, (err, files) -> - res.send do - files.filter -> YAML_OR_JSON_PAT.test it - .map -> "#it".replace YAML_EXT_PAT, '.json' + Seq() + .seq glob, 'data/datasources/**/*.@(yaml|json)', {+nocase, +nosort}, Seq + .filter -> YAML_OR_JSON_PAT.test it + .map -> "#it".replace YAML_EXT_PAT, '.json' + .seq -> res.send it /** * GET /datasources/:datasource @@ -85,21 +87,12 @@ class DataSourceController extends Controller */ allData : (req, res, next) -> data = {} - files = [] - Seq(findit.sync @dataDir) - # .seq ~> @ok findit.sync @dataDir - # .flatten() - .filter -> YAML_OR_JSON_PAT.test it - .seq -> - files := @stack.slice() - # console.log 'files:', files - @ok files - .flatten() - .parMap_ (next, f) ~> - # console.log "fs.readFile '#CWD/data/#f'" - fs.readFile f, 'utf8', next - .parMap (text, i) -> - f = files[i] + Seq() + .seq glob, 'data/datasources/**/*.@(yaml|json)', {+nocase, +nosort}, Seq + .seq (paths) -> readFilesAsync paths, this + .seq (txts) -> @ok _.items txts + .flatten false + .parMap ([f, text]) -> # console.log "parsing file[#i]: '#f' -> text[#{text.length}]..." k = f.replace YAML_EXT_PAT, '.json' v = data[k] = {} @@ -121,7 +114,7 @@ class DataSourceController extends Controller console.error err console.error that if err.stack res.send { error:String(err), partial_data:data } - + module.exports = exports = DataSourceController diff --git a/src/server/middleware.co b/src/server/middleware.co index dce18b7..cf3022e 100755 --- a/src/server/middleware.co +++ b/src/server/middleware.co @@ -1,19 +1,20 @@ #!/usr/bin/env coco +fs = require 'fs' +path = {dirname} = require 'path' +subproc = {exec, spawn} = require 'child_process' +exists = fs.existsSync or path.existsSync -fs = {existsSync:exists} = require 'fs' -path = {dirname} = require 'path' -subproc = {exec, spawn} = require 'child_process' +Seq = require 'seq' +glob = require 'glob' +yaml = require 'js-yaml' -glob = require 'glob' -yaml = require 'js-yaml' -Seq = require 'seq' -express = require 'express' +express = require 'express' -{_, op} = require '../util' -{mkdirp, mkdirpAsync} = require './mkdirp' -{readFilesAsync} = require './files' -Controller = require './controller' +{_, op} = require '../util' +{mkdirp, mkdirpAsync} = require './mkdirp' +{readFilesAsync} = require './files' +Controller = require './controller' diff --git a/src/server/server.co b/src/server/server.co index 7c7459b..2940c48 100755 --- a/src/server/server.co +++ b/src/server/server.co @@ -1,17 +1,16 @@ #!/usr/bin/env coco -fs = require 'fs' -path = require 'path' +fs = require 'fs' +path = {dirname} = require 'path' +subproc = {exec, spawn} = require 'child_process' +exists = fs.existsSync or path.existsSync -{exec, spawn, -} = require 'child_process' -exists = fs.existsSync or path.existsSync - - -express = require 'express' +express = require 'express' LimnMiddleware = require './middleware' - +/** + * Create server + */ app = exports = module.exports = express.createServer() /** @@ -52,7 +51,7 @@ if require.main is module or 'Cokefile' is mainfile throw err if err REV = stdout.trim! unless REV - console.log s = "Kraken Server (port=#PORT, env=#NODE_ENV, rev=#REV, base_dir=#{limn.BASE})" + console.log s = "Limn Server (port=#PORT, env=#NODE_ENV, rev=#REV, base_dir=#{limn.BASE})" console.log '=' * s.length app.listen PORT