Checkpoint. Updates deps and fiddles with middleware.
authorDavid Schoonover <dsc@wikimedia.org>
Wed, 11 Jul 2012 00:03:55 +0000 (17:03 -0700)
committerDavid Schoonover <dsc@wikimedia.org>
Wed, 11 Jul 2012 00:03:55 +0000 (17:03 -0700)
package.co
package.json
src/server/controllers/datasource.co
src/server/middleware.co
src/server/server.co

index 4f5821f..87518b4 100644 (file)
@@ -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 <dsc@less.ly> (http://less.ly)'
+homepage                        : 'https://github.com/wikimedia/limn'
+keywords                        : <[ visualization graph d3 util server client browser ]>
+author                          : 'David Schoonover <dsc@wikimedia.org> (http://less.ly)'
 contributors                    : [
                                     'Andrew Otto <otto@wikimedia.org>'
+                                    'Fabian Kaelin <fabian.kaelin@gmail.com>'
                                     'Evan Rosen <erosen@wikimedia.org>'
                                     'Diederik van Liere <dvanliere@wikimedia.org>'
 ]
 
+
 # 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'
index 872ab4d..b6bc670 100644 (file)
@@ -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 <dsc@less.ly> (http://less.ly)",
+  "author": "David Schoonover <dsc@wikimedia.org> (http://less.ly)",
   "contributors": [
     "Andrew Otto <otto@wikimedia.org>",
+    "Fabian Kaelin <fabian.kaelin@gmail.com>",
     "Evan Rosen <erosen@wikimedia.org>",
     "Diederik van Liere <dvanliere@wikimedia.org>"
   ],
   "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"
index fb07e6a..4b37c1c 100644 (file)
@@ -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
index dce18b7..cf3022e 100755 (executable)
@@ -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'
 
 
 
index 7c7459b..2940c48 100755 (executable)
@@ -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