Renames kraken to limn.
authorDavid Schoonover <dsc@wikimedia.org>
Thu, 12 Jul 2012 18:17:01 +0000 (11:17 -0700)
committerDavid Schoonover <dsc@wikimedia.org>
Thu, 12 Jul 2012 18:17:01 +0000 (11:17 -0700)
88 files changed:
Cokefile
README.md
package.co
package.json
src/app.co
src/base/asset-manager.co
src/base/base-mixin.co
src/base/base-model.co
src/base/base-view.co
src/base/base.co
src/base/cascading-model.co
src/base/data-binding.co
src/base/index.co
src/base/model-cache.co
src/base/scaffold/index.co
src/base/scaffold/scaffold-model.co
src/base/scaffold/scaffold-view.co
src/chart/chart-type.co
src/chart/index.co
src/chart/option/chart-option-model.co
src/chart/option/chart-option-view.co
src/chart/option/index.co
src/chart/type/d3-chart.co
src/chart/type/d3/d3-bar-chart-type.co
src/chart/type/d3/d3-bar-element.co
src/chart/type/d3/d3-chart-element.co
src/chart/type/d3/d3-geo-element.co
src/chart/type/d3/d3-line-element.co
src/chart/type/d3/index.co
src/chart/type/dygraphs.co
src/dashboard/dashboard-model.co
src/dashboard/dashboard-view.co
src/dashboard/index.co
src/data/data-view.co
src/data/dataset-model.co
src/data/dataset-view.co
src/data/datasource-model.co
src/data/datasource-ui-view.co
src/data/datasource-view.co
src/data/index.co
src/data/metric-edit-view.co
src/data/metric-model.co
src/graph/graph-display-view.co
src/graph/graph-edit-view.co
src/graph/graph-list-view.co
src/graph/graph-model.co
src/graph/graph-view.co
src/graph/index.co
src/main-dashboard.co
src/main-display.co
src/main-edit.co
src/main-graph-list.co
src/server/controller.co
src/server/controllers/dashboard.co
src/server/controllers/datasource.co
src/server/controllers/graph.co
src/server/file-controller.co
src/server/files.co
src/server/middleware.co
src/server/server.co
src/server/view-helpers.co
src/util/aliasdict.co
src/util/cascade.co
src/util/event/index.co
src/util/event/ready-emitter.co
src/util/event/waiting-emitter.co
src/util/formatters.co
src/util/index.co
src/util/parser.co
src/util/timeseries/csv.co
src/util/timeseries/index.co
src/util/timeseries/timeseries.co
src/util/underscore/index.co
test/test-proxy-server.co
test/util/cascade-test.co
test/util/underscore/underscore-object-test.co
www/d3-test-bar.jade
www/d3-test-line.jade
www/d3-test.jade
www/dashboard/view.jade
www/geo.jade
www/graph/edit.jade
www/graph/index.jade
www/graph/view.jade
www/misc/numbers.co
www/misc/numbers.jade
www/misc/test.co
www/modules.yaml

index fb738d9..949701e 100644 (file)
--- a/Cokefile
+++ b/Cokefile
@@ -4,14 +4,14 @@ require 'buildtools/tasks'
 {removeSync:remove} = require 'remove'
 
 
-MODULE_LINK = 'node_modules/kraken'
+MODULE_LINK = 'node_modules/limn'
 
 
 
 
 task \link 'Link package source to node_modules so the name resolves correctly' ->
     # Browser-based require doens't support relative requires, but things
-    # like `require 'kraken/utils'` rarely work in node without this hack.
+    # like `require 'limn/utils'` rarely work in node without this hack.
     mkdirp 'node_modules'
     if exists MODULE_LINK
         remove MODULE_LINK
@@ -38,7 +38,7 @@ task \build 'Build coco sources' ->
     invoke \setup
     coco <[ -bjc package.co ]>
     
-    {sources} = require 'kraken/server/view-helpers'
+    {sources} = require 'limn/server/view-helpers'
     browserify = require 'browserify'
     Coco       = require 'coco'
     Jade       = require 'jade'
@@ -130,12 +130,12 @@ task \bundle 'Build application and vendor bundles' ->
     invoke \bundle_vendor
 
 task \bundle_app 'Build application bundle' ->
-    {sources} = require 'kraken/server/view-helpers'
+    {sources} = require 'limn/server/view-helpers'
     
-    app_bundle_path = 'var/js/kraken/app-bundle.js'
+    app_bundle_path = 'var/js/limn/app-bundle.js'
     app_sources = sources("www/modules.yaml", 'development')
         .filter -> not _.startsWith it, '/vendor'
-        .map -> it.slice 1 .replace /js\/kraken/, 'lib'
+        .map -> it.slice 1 .replace /js\/limn/, 'lib'
     mkdirp dirname app_bundle_path
     bundle_js app_bundle_path, app_sources, {-minify}
     
@@ -145,7 +145,7 @@ task \bundle_app 'Build application bundle' ->
     say 'ok.\n'
 
 task \bundle_vendor 'Build vendor bundle' ->
-    {sources} = require 'kraken/server/view-helpers'
+    {sources} = require 'limn/server/view-helpers'
     
     vendor_bundle_path = 'var/vendor/vendor-bundle.js'
     vendor_sources = sources("www/modules.yaml", 'development')
@@ -200,7 +200,7 @@ task \clean 'Clean up environment and artifacts' ->
 
 task \source_list 'Print a list of the source file paths.' ->
     invoke \setup
-    {sources} = require 'kraken/server/view-helpers'
+    {sources} = require 'limn/server/view-helpers'
     say do
         sources("www/modules.yaml", 'development')
             .map -> it.slice 1
index 733039c..c7ae1e5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
-# Kraken UI: WMF Analytics Reportcard prototype
+# Limn &mdash; a GUI Visualization Toolkit
 
-Setup instructions to be cleaned up momentarily. (brb lunch)
 
 
 ### Setting Up
index 87518b4..c00dd63 100644 (file)
@@ -1,8 +1,8 @@
 name                            : 'limn'
 version                         : '0.1.0'
-description                     : 'A charting toolkit and dashboard.'
+description                     : 'A GUI Visualization Toolkit'
 homepage                        : 'https://github.com/wikimedia/limn'
-keywords                        : <[ visualization graph d3 util server client browser ]>
+keywords                        : <[ visualization graph gui d3 ]>
 author                          : 'David Schoonover <dsc@wikimedia.org> (http://less.ly)'
 contributors                    : [
                                     'Andrew Otto <otto@wikimedia.org>'
index b6bc670..d5763fd 100644 (file)
@@ -1,16 +1,13 @@
 {
   "name": "limn",
   "version": "0.1.0",
-  "description": "A charting toolkit and dashboard.",
+  "description": "A GUI Visualization Toolkit",
   "homepage": "https://github.com/wikimedia/limn",
   "keywords": [
     "visualization",
     "graph",
-    "d3",
-    "util",
-    "server",
-    "client",
-    "browser"
+    "gui",
+    "d3"
   ],
   "author": "David Schoonover <dsc@wikimedia.org> (http://less.ly)",
   "contributors": [
index a4185b0..050341a 100644 (file)
@@ -1,7 +1,7 @@
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 
 
 /**
index fa91012..ff646a1 100644 (file)
@@ -1,7 +1,7 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ReadyEmitter,
-} = require 'kraken/util/event'
+} = require 'limn/util/event'
 
 
 
index c6764cb..5e6af11 100644 (file)
@@ -1,7 +1,7 @@
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 
 
 
index 54b725e..383fc66 100644 (file)
@@ -1,9 +1,9 @@
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseBackboneMixin, mixinBase,
-} = require 'kraken/base/base-mixin'
+} = require 'limn/base/base-mixin'
 
 
 
index 18646a5..c214d13 100644 (file)
@@ -1,13 +1,13 @@
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseBackboneMixin, mixinBase,
-} = require 'kraken/base/base-mixin'
+} = require 'limn/base/base-mixin'
 { BaseModel,
-} = require 'kraken/base/base-mixin'
+} = require 'limn/base/base-mixin'
 { DataBinding,
-} = require 'kraken/base/data-binding'
+} = require 'limn/base/data-binding'
 
 
 
index 5d3f699..4591cd0 100644 (file)
@@ -3,7 +3,7 @@ EventEmitter::off     = EventEmitter::removeListener
 EventEmitter::trigger = EventEmitter::emit
 
 { _, op
-} = require 'kraken/util'
+} = require 'limn/util'
 
 
 
index 7582621..d232593 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList,
-} = require 'kraken/base/base-model'
+} = require 'limn/base/base-model'
 
-Cascade = require 'kraken/util/cascade'
+Cascade = require 'limn/util/cascade'
 
 
 
index 4b2fa58..b130f85 100644 (file)
@@ -1,7 +1,7 @@
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 
 
 class exports.DataBinding
index 17b6726..cfeab93 100644 (file)
@@ -1,9 +1,9 @@
-exports.Base = require 'kraken/base/base'
-mixins       = require 'kraken/base/base-mixin'
-models       = require 'kraken/base/base-model'
-views        = require 'kraken/base/base-view'
-cache        = require 'kraken/base/model-cache'
-cascading    = require 'kraken/base/cascading-model'
-data_binding = require 'kraken/base/data-binding'
+exports.Base = require 'limn/base/base'
+mixins       = require 'limn/base/base-mixin'
+models       = require 'limn/base/base-model'
+views        = require 'limn/base/base-view'
+cache        = require 'limn/base/model-cache'
+cascading    = require 'limn/base/cascading-model'
+data_binding = require 'limn/base/data-binding'
 exports import mixins   import models       import views \
         import cache    import cascading    import data_binding
index f636a7d..177ebce 100644 (file)
@@ -1,7 +1,7 @@
 _   = require 'underscore'
 Seq = require 'seq'
 
-{ReadyEmitter} = require 'kraken/util/event'
+{ReadyEmitter} = require 'limn/util/event'
 
 
 # TODO: Bubble events to decorated emitters
index 6524ae6..9e23fe2 100644 (file)
@@ -1,3 +1,3 @@
-models = require 'kraken/base/scaffold/scaffold-model'
-views  = require 'kraken/base/scaffold/scaffold-view'
+models = require 'limn/base/scaffold/scaffold-model'
+views  = require 'limn/base/scaffold/scaffold-view'
 exports import models import views
index 2800782..e8ca6da 100644 (file)
@@ -1,7 +1,7 @@
-_  = require 'kraken/util/underscore'
-op = require 'kraken/util/op'
+_  = require 'limn/util/underscore'
+op = require 'limn/util/op'
 { BaseModel, BaseList,
-}  = require 'kraken/base'
+}  = require 'limn/base'
 
 
 
index b5299bc..075054d 100644 (file)
@@ -1,9 +1,9 @@
-_  = require 'kraken/util/underscore'
-op = require 'kraken/util/op'
+_  = require 'limn/util/underscore'
+op = require 'limn/util/op'
 { BaseView,
-}  = require 'kraken/base'
+}  = require 'limn/base'
 { Field, FieldList,
-}  = require 'kraken/base/scaffold/scaffold-model'
+}  = require 'limn/base/scaffold/scaffold-model'
 
 
 FieldView = exports.FieldView = BaseView.extend do # {{{
index 2840b9d..1ea7f85 100644 (file)
@@ -2,11 +2,11 @@ moment = require 'moment'
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ReadyEmitter,
-} = require 'kraken/util/event'
+} = require 'limn/util/event'
 { Parsers, ParserMixin,
-} = require 'kraken/util/parser'
+} = require 'limn/util/parser'
 
 
 
index c5fd1e2..3a2fd85 100644 (file)
@@ -1,8 +1,8 @@
-chart_type   = require 'kraken/chart/chart-type'
-chart_option = require 'kraken/chart/option'
-dygraphs     = require 'kraken/chart/type/dygraphs'
-d3_chart     = require 'kraken/chart/type/d3-chart'
-d3_elements  = require 'kraken/chart/type/d3'
+chart_type   = require 'limn/chart/chart-type'
+chart_option = require 'limn/chart/option'
+dygraphs     = require 'limn/chart/type/dygraphs'
+d3_chart     = require 'limn/chart/type/d3-chart'
+d3_elements  = require 'limn/chart/type/d3'
 
 exports import chart_type import chart_option \
         import dygraphs import d3_chart import d3_elements
index 2a3c37a..489c775 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { Parsers, ParserMixin, ParsingModel, ParsingView,
-} = require 'kraken/util/parser'
+} = require 'limn/util/parser'
 { BaseModel, BaseList,
-}  = require 'kraken/base'
+}  = require 'limn/base'
 
 
 /**
index 1b004e1..3b0fab5 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView,
-}  = require 'kraken/base'
+}  = require 'limn/base'
 { ChartOption, ChartOptionList,
-} = require 'kraken/chart/option/chart-option-model'
+} = require 'limn/chart/option/chart-option-model'
 
 DEBOUNCE_RENDER = exports.DEBOUNCE_RENDER = 100ms
 
@@ -14,7 +14,7 @@ DEBOUNCE_RENDER = exports.DEBOUNCE_RENDER = 100ms
 ChartOptionView = exports.ChartOptionView = BaseView.extend do # {{{
     tagName   : 'section'
     className : 'chart-option field'
-    template  : require 'kraken/template/chart/chart-option'
+    template  : require 'limn/template/chart/chart-option'
     
     type : 'string'
     isCollapsed : true
@@ -129,7 +129,7 @@ ChartOptionScaffold = exports.ChartOptionScaffold = BaseView.extend do # {{{
     __bind__       : <[ addField ]>
     tagName        : 'form'
     className      : 'chart-options scaffold'
-    template       : require 'kraken/template/chart/chart-scaffold'
+    template       : require 'limn/template/chart/chart-scaffold'
     
     collectionType : ChartOptionList
     subviewType    : ChartOptionView
index 5cdea4d..3244f1c 100644 (file)
@@ -1,4 +1,4 @@
-model = require 'kraken/chart/option/chart-option-model'
-view  = require 'kraken/chart/option/chart-option-view'
+model = require 'limn/chart/option/chart-option-model'
+view  = require 'limn/chart/option/chart-option-view'
 
 exports import model import view
index 02c2c34..32e61fc 100644 (file)
@@ -2,11 +2,11 @@ d3 = require 'd3'
 ColorBrewer = require 'colorbrewer'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ChartType,
-} = require 'kraken/chart/chart-type'
+} = require 'limn/chart/chart-type'
 { D3ChartElement,
-} = require 'kraken/chart/type/d3/d3-chart-element'
+} = require 'limn/chart/type/d3/d3-chart-element'
 
 
 root = do -> this
index 6bab42b..be02f69 100644 (file)
@@ -1,9 +1,9 @@
 d3 = require 'd3'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ChartType,
-} = require 'kraken/chart/chart-type'
+} = require 'limn/chart/chart-type'
 
 root = do -> this
 
index 9f93fa7..99c9719 100644 (file)
@@ -1,11 +1,11 @@
 d3 = require 'd3'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { D3ChartElement    
-} = require 'kraken/chart/type/d3/d3-chart-element'
+} = require 'limn/chart/type/d3/d3-chart-element'
 
-_fmt = require 'kraken/util/formatters'
+_fmt = require 'limn/util/formatters'
 
 root = do -> this
 
index 29cc2a3..e852476 100644 (file)
@@ -2,10 +2,10 @@ d3 = require 'd3'
 ColorBrewer = require 'colorbrewer'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ReadyEmitter,
-} = require 'kraken/util/event'
-# Base = require 'kraken/base/base'
+} = require 'limn/util/event'
+# Base = require 'limn/base/base'
 
 
 root = do -> this
index 2238b31..c690a88 100644 (file)
@@ -1,9 +1,9 @@
 ColorBrewer = require 'colorbrewer'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { ChartType,
-} = require 'kraken/chart/chart-type'
+} = require 'limn/chart/chart-type'
 
 
 
index 51ce742..92bf946 100644 (file)
@@ -2,11 +2,11 @@ d3 = require 'd3'
 ColorBrewer = require 'colorbrewer'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { D3ChartElement    
-} = require 'kraken/chart/type/d3/d3-chart-element'
+} = require 'limn/chart/type/d3/d3-chart-element'
 
-_fmt = require 'kraken/util/formatters'
+_fmt = require 'limn/util/formatters'
 
 root = do -> this
 
index a18badd..856a7f8 100644 (file)
@@ -1,6 +1,6 @@
-d3chart = require 'kraken/chart/type/d3/d3-chart-element'
-line = require 'kraken/chart/type/d3/d3-line-element'
-bar  = require 'kraken/chart/type/d3/d3-bar-element'
-# geo  = require 'kraken/chart/type/d3/d3-geo-element'
+d3chart = require 'limn/chart/type/d3/d3-chart-element'
+line = require 'limn/chart/type/d3/d3-line-element'
+bar  = require 'limn/chart/type/d3/d3-bar-element'
+# geo  = require 'limn/chart/type/d3/d3-geo-element'
 
 exports import line import bar import d3chart # import geo 
index 4d0113e..2266a37 100644 (file)
@@ -1,6 +1,6 @@
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 { ChartType,
-} = require 'kraken/chart/chart-type'
+} = require 'limn/chart/chart-type'
 
 
 class exports.DygraphsChartType extends ChartType
index d4e3fbf..bd969e7 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Graph, GraphList,
-} = require 'kraken/graph/graph-model'
+} = require 'limn/graph/graph-model'
 
 
 /**
index eada37e..6f9aea8 100644 (file)
@@ -1,13 +1,13 @@
 Seq = require 'seq'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Graph, GraphList, GraphDisplayView,
-} = require 'kraken/graph'
+} = require 'limn/graph'
 { Dashboard,
-} = require 'kraken/dashboard/dashboard-model'
+} = require 'limn/dashboard/dashboard-model'
 
 
 /**
@@ -17,7 +17,7 @@ DashboardView = exports.DashboardView = BaseView.extend do # {{{
     __bind__       : <[ addTab ]>
     tagName        : 'section'
     className      : 'dashboard'
-    template       : require 'kraken/template/dashboard/dashboard'
+    template       : require 'limn/template/dashboard/dashboard'
     
     
     events:
@@ -147,7 +147,7 @@ DashboardTabView = exports.DashboardTabView = BaseView.extend do # {{{
     __bind__       : <[  ]>
     className      : 'tab-pane'
     tag            : 'div'
-    template       : require 'kraken/template/dashboard/dashboard-tab'
+    template       : require 'limn/template/dashboard/dashboard-tab'
     
     
     constructor: function DashboardTabView
index 03fc595..5f2f229 100644 (file)
@@ -1,3 +1,3 @@
-models = require 'kraken/dashboard/dashboard-model'
-views  = require 'kraken/dashboard/dashboard-view'
+models = require 'limn/dashboard/dashboard-model'
+views  = require 'limn/dashboard/dashboard-view'
 exports import models import views
index c57eaa8..a692f6f 100644 (file)
@@ -1,14 +1,14 @@
 Seq = require 'seq'
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView, ViewList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { DataSetView,
-} = require 'kraken/data/dataset-view'
+} = require 'limn/data/dataset-view'
 { MetricEditView,
-} = require 'kraken/data/metric-edit-view'
+} = require 'limn/data/metric-edit-view'
 { DataSource, 
-} = require 'kraken/data/datasource-model'
+} = require 'limn/data/datasource-model'
 
 /**
  * @class DataSet selection and customization UI (root of the `data` tab).
@@ -17,7 +17,7 @@ DataView = exports.DataView = BaseView.extend do # {{{
     __bind__       : <[ onMetricsChanged ]>
     tagName        : 'section'
     className      : 'data-ui'
-    template       : require 'kraken/template/data/data'
+    template       : require 'limn/template/data/data'
     
     datasources : null
     
index 5bc6c25..4b1502c 100644 (file)
@@ -2,13 +2,13 @@ Seq = require 'seq'
 ColorBrewer = require 'colorbrewer'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Metric, MetricList,
-} = require 'kraken/data/metric-model'
+} = require 'limn/data/metric-model'
 { DataSource, DataSourceList,
-} = require 'kraken/data/datasource-model'
+} = require 'limn/data/datasource-model'
 
 
 
index 4a55a14..45c90d3 100644 (file)
@@ -1,7 +1,7 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 
 
 /**
@@ -10,7 +10,7 @@
 DataSetView = exports.DataSetView = BaseView.extend do # {{{
     tagName   : 'section'
     className : 'dataset-ui dataset'
-    template  : require 'kraken/template/data/dataset'
+    template  : require 'limn/template/data/dataset'
     
     events:
         'click  .new-metric-button'                     : 'onNewMetric'
@@ -112,7 +112,7 @@ DataSetView = exports.DataSetView = BaseView.extend do # {{{
 DataSetMetricView = exports.DataSetMetricView = BaseView.extend do # {{{
     tagName   : 'tr'
     className : 'dataset-metric metric'
-    template  : require 'kraken/template/data/dataset-metric'
+    template  : require 'limn/template/data/dataset-metric'
     
     
     
index 544af94..5dcf0bd 100644 (file)
@@ -1,11 +1,11 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { TimeSeriesData, CSVData,
-} = require 'kraken/util/timeseries'
+} = require 'limn/util/timeseries'
 { BaseModel, BaseList, ModelCache,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Metric, MetricList,
-} = require 'kraken/data/metric-model'
+} = require 'limn/data/metric-model'
 
 
 /**
index 7f04041..6a7bffb 100644 (file)
@@ -1,7 +1,7 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList, BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 
 
 /**
@@ -12,7 +12,7 @@ DataSourceUIView = exports.DataSourceUIView = BaseView.extend do # {{{
     __bind__       : <[  ]>
     tagName        : 'section'
     className      : 'datasource-ui'
-    template       : require 'kraken/template/data/datasource-ui'
+    template       : require 'limn/template/data/datasource-ui'
     
     events :
         'click .datasource-summary'       : 'onHeaderClick'
index 95e5ee1..57b1469 100644 (file)
@@ -1,7 +1,7 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList, BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 
 
 /**
@@ -11,7 +11,7 @@ DataSourceView = exports.DataSourceView = BaseView.extend do # {{{
     __bind__       : <[  ]>
     tagName        : 'section'
     className      : 'datasource'
-    template       : require 'kraken/template/data/datasource'
+    template       : require 'limn/template/data/datasource'
     
     
     
index df014f4..1ed639d 100644 (file)
@@ -1,11 +1,11 @@
-metric_model       = require 'kraken/data/metric-model'
-metric_edit_view   = require 'kraken/data/metric-edit-view'
-datasource_model   = require 'kraken/data/datasource-model'
-datasource_view    = require 'kraken/data/datasource-view'
-datasource_ui_view = require 'kraken/data/datasource-ui-view'
-dataset_model      = require 'kraken/data/dataset-model'
-dataset_view       = require 'kraken/data/dataset-view'
-data_view          = require 'kraken/data/data-view'
+metric_model       = require 'limn/data/metric-model'
+metric_edit_view   = require 'limn/data/metric-edit-view'
+datasource_model   = require 'limn/data/datasource-model'
+datasource_view    = require 'limn/data/datasource-view'
+datasource_ui_view = require 'limn/data/datasource-ui-view'
+dataset_model      = require 'limn/data/dataset-model'
+dataset_view       = require 'limn/data/dataset-view'
+data_view          = require 'limn/data/data-view'
 
 exports import datasource_model import datasource_view  import datasource_ui_view   \
         import dataset_model    import dataset_view                                 \
index a4868a7..3aaa040 100644 (file)
@@ -1,11 +1,11 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Metric,
-} = require 'kraken/data/metric-model'
+} = require 'limn/data/metric-model'
 { DataSourceUIView,
-} = require 'kraken/data/datasource-ui-view'
+} = require 'limn/data/datasource-ui-view'
 
 
 
@@ -17,7 +17,7 @@ MetricEditView = exports.MetricEditView = BaseView.extend do # {{{
     __bind__       : <[ onChange ]>
     tagName        : 'section'
     className      : 'metric-edit-ui'
-    template       : require 'kraken/template/data/metric-edit'
+    template       : require 'limn/template/data/metric-edit'
     
     callOnReturnKeypress : 'onChange'
     events:
index 8381076..1a00e4a 100644 (file)
@@ -1,8 +1,8 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList,
-} = require 'kraken/base'
-ProjectColors = require 'kraken/data/project-colors'
+} = require 'limn/base'
+ProjectColors = require 'limn/data/project-colors'
 DataSource = DataSourceList = null
 
 
@@ -170,6 +170,6 @@ MetricList = exports.MetricList = BaseList.extend do # {{{
 
 ### FIXME: LOLHACKS ###
 setTimeout do
-    -> { DataSource, DataSourceList, } := require 'kraken/data/datasource-model'
+    -> { DataSource, DataSourceList, } := require 'limn/data/datasource-model'
     10
 
index 868d910..ce745de 100644 (file)
@@ -1,11 +1,11 @@
 moment = require 'moment'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { Graph,
-} = require 'kraken/graph/graph-model'
+} = require 'limn/graph/graph-model'
 { GraphView,
-} = require 'kraken/graph/graph-view'
+} = require 'limn/graph/graph-view'
 
 root = do -> this
 
@@ -17,7 +17,7 @@ root = do -> this
 GraphDisplayView = exports.GraphDisplayView = GraphView.extend do # {{{
     tagName   : 'section'
     className : 'graph graph-display'
-    template  : require 'kraken/template/graph/graph-display'
+    template  : require 'limn/template/graph/graph-display'
     
     events:
         # Select the whole permalink URI text when it receives focus.
index 123fc58..2f9abc9 100644 (file)
@@ -1,14 +1,14 @@
 moment = require 'moment'
 
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 { Graph,
-} = require 'kraken/graph/graph-model'
+} = require 'limn/graph/graph-model'
 { GraphView,
-} = require 'kraken/graph/graph-view'
+} = require 'limn/graph/graph-view'
 { ChartOptionScaffold, DEBOUNCE_RENDER,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { DataView, DataSetView, DataSet,
-} = require 'kraken/data'
+} = require 'limn/data'
 
 root = do -> this
 
@@ -26,7 +26,7 @@ GraphEditView = exports.GraphEditView = GraphView.extend do # {{{
         onFirstClickRenderOptionsTab onFirstClickRenderDataTab
     ]>
     className : 'graph-edit graph'
-    template  : require 'kraken/template/graph/graph-edit'
+    template  : require 'limn/template/graph/graph-edit'
     
     events:
         'click    .redraw-button'                        : 'stopAndRender'
index 14bd007..276b06d 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Graph, GraphList
-} = require 'kraken/graph/graph-model'
+} = require 'limn/graph/graph-model'
 
 root = do -> this
 DEBOUNCE_RENDER = 100ms
@@ -19,7 +19,7 @@ GraphListView = exports.GraphListView = BaseView.extend do # {{{
     
     tagName   : 'section'
     className : 'graph-list-view'
-    template  : require 'kraken/template/graph/graph-list'
+    template  : require 'limn/template/graph/graph-list'
     
     data  : {}
     ready : false
index a67c57a..7cd5732 100644 (file)
@@ -1,13 +1,13 @@
 Seq = require 'seq'
 
 { _, Cascade,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseModel, BaseList, ModelCache,
-} = require 'kraken/base'
+} = require 'limn/base'
 { ChartType,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { DataSet
-} = require 'kraken/data'
+} = require 'limn/data'
 
 root = do -> this
 
index b6dff7d..704ce86 100644 (file)
@@ -1,10 +1,10 @@
 moment = require 'moment'
 
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 { BaseView,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Graph,
-} = require 'kraken/graph/graph-model'
+} = require 'limn/graph/graph-model'
 
 root = do -> this
 DEBOUNCE_RENDER = 100ms
index 18203dd..c8f65a4 100644 (file)
@@ -1,7 +1,7 @@
-models         = require 'kraken/graph/graph-model'
-base_views     = require 'kraken/graph/graph-view'
-display_views  = require 'kraken/graph/graph-display-view'
-edit_views     = require 'kraken/graph/graph-edit-view'
-index_views    = require 'kraken/graph/graph-list-view'
+models         = require 'limn/graph/graph-model'
+base_views     = require 'limn/graph/graph-view'
+display_views  = require 'limn/graph/graph-display-view'
+edit_views     = require 'limn/graph/graph-edit-view'
+index_views    = require 'limn/graph/graph-list-view'
 
 exports import models import base_views import display_views import edit_views import index_views
index 40aee2b..74d7b3e 100644 (file)
@@ -2,17 +2,17 @@ Seq      = require 'seq'
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { AppView, 
-} = require 'kraken/app'
+} = require 'limn/app'
 { BaseView, BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { ChartType, DygraphsChartType,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { Graph, GraphList, GraphDisplayView,
-} = require 'kraken/graph'
+} = require 'limn/graph'
 { DashboardView, Dashboard,
-} = require 'kraken/dashboard'
+} = require 'limn/dashboard'
 
 
 root = this
index f5f2b04..b435b62 100644 (file)
@@ -2,15 +2,15 @@ Seq      = require 'seq'
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { AppView, 
-} = require 'kraken/app'
+} = require 'limn/app'
 { BaseView, BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { ChartType, DygraphsChartType,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { Graph, GraphList, GraphDisplayView,
-} = require 'kraken/graph'
+} = require 'limn/graph'
 
 
 root = this
index 74040d5..6c52fac 100644 (file)
@@ -2,17 +2,17 @@ Seq      = require 'seq'
 Backbone = require 'backbone'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { AppView, 
-} = require 'kraken/app'
+} = require 'limn/app'
 { BaseView, BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { ChartType,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { DataSource, DataSourceList,
-} = require 'kraken/data'
+} = require 'limn/data'
 { Graph, GraphList, GraphEditView,
-} = require 'kraken/graph'
+} = require 'limn/graph'
 
 
 root = this
index a726510..9cc5086 100644 (file)
@@ -1,9 +1,9 @@
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView, BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Graph, GraphList, GraphListView
-} = require 'kraken/graph'
+} = require 'limn/graph'
 
 # instantiates a new GraphListView with the
 # passed in JSON graph_list_data, and then
index 6ae94fa..19e235e 100644 (file)
@@ -92,8 +92,29 @@ class Controller extends Resource
                 @map verb, subroute, @[method]
         this
     
+    
+    /**
+     * Boilerplate for creating a error-handling callback that otherwise returns JSON {result:'ok'}.
+     * @param {Response} res Express response object.
+     * @param {String} msg Error message to send on failure.
+     * @param {Number} [code=500] HTTP error code to send on failure.
+     * @returns {Function} Error-handling callback.
+     */
+    errorHandler: (res, msg, code=500) ->
+        (err) ->
+            if err
+                msg or= err.message or String(err)
+                console.error msg
+                res.send { result:"error", message:msg }, code
+            else
+                res.send { result:"ok" }
+    
+    
+    getClassName: ->
+        "#{@..name or @..displayName}"
+    
     toString: ->
-        "#{@.constructor.name}('#{@name}', base='#{@base}', app=#{@app})"
+        "#{@getClassName()}(name='#{@name}')"
 
 
 express.HTTPServer::controller  = \
index ca6c844..fe592c6 100644 (file)
@@ -5,8 +5,9 @@ path       = require 'path'
 _          = require 'underscore'
 Seq        = require 'seq'
 yaml       = require 'js-yaml'
-{mkdirp, mkdirpAsync} = require '../mkdirp'
 
+{ mkdirp, mkdirpAsync,
+} = require '../mkdirp'
 { readJSONFilesAsync,
 } = require '../files'
 
@@ -23,8 +24,7 @@ class DashboardController extends FileBackedController
     ]>
     PROTECT : true
     
-    name    : 'dashboards'
-    dataDir : 'data/dashboards'
+    name : 'dashboards'
     -> super ...
     
     
@@ -34,7 +34,7 @@ class DashboardController extends FileBackedController
         # if format is json, then return the dashboard JSON
         switch req.format
             case 'json'
-                pattern = @dataDir + "/*.json"
+                pattern = "#{@dataDir}/*.json"
                 Seq()
                     # find list of data/dashboard/*.json files, send back the objects
                     .seq -> readJSONFilesAsync pattern, this
@@ -66,7 +66,7 @@ class DashboardController extends FileBackedController
         return unless data = @processBody req, res
         file = @toFile data.id
         if exists file
-            return res.send { result:"error", message:"Dashboard '#{data.id}' already exists!" }
+            return res.send { result:"error", message:"Dashboard '#{data.id}' already exists!" }, 409 # 409: Resource Conflict
         else
             fs.writeFile file, JSON.stringify(data), "utf8", @errorHandler(res, "Error writing Dashboard!")
     
@@ -74,15 +74,15 @@ class DashboardController extends FileBackedController
     update: (req, res) ->
         return unless data = @processBody req, res
         if @PROTECT and _ @PROTECTED_IDS .contains data.id
-            return res.send {result:"error", message:"Dashboard '#{data.id}' is read-only."}, 403
+            return res.send {result:"error", message:"Dashboard '#{data.id}' is read-only."}, 403 # 403: Forbidden
         fs.writeFile @toFile(data.id), JSON.stringify(data), "utf8", @errorHandler(res, "Error writing Dashboard!")
     
     # DELETE /dashboards/:dashboard
     destroy: (req, res) ->
         id = req.param.dashboard
         if @PROTECT and _ @PROTECTED_IDS .contains id
-            return res.send {result:"error", message:"Dashboard '#{id}' is read-only."}, 403
-        fs.unlink @toFile(id), @errorHandler(res, "Dashboard '#{id}' does not exist!")
+            return res.send {result:"error", message:"Dashboard '#{id}' is read-only."}, 403 # 403: Forbidden
+        fs.unlink @toFile(id), @errorHandler(res, "Dashboard '#{id}' does not exist!", 410) # 410: Resource Gone
     
     
 
index 4b37c1c..bce9946 100644 (file)
@@ -6,9 +6,10 @@ Seq        = require 'seq'
 glob       = require 'glob'
 yaml       = require 'js-yaml'
 
-{_, op}          = require '../../util'
-{readFilesAsync} = require '../files'
-Controller       = require '../controller'
+{_, op}              = require '../../util'
+{readFilesAsync}     = require '../files'
+Controller           = require '../controller'
+FileBackedController = require '../file-controller'
 
 
 EXT_PAT          = /\.[^\.]*$/i
@@ -17,61 +18,19 @@ YAML_OR_JSON_PAT = /\.(json|ya?ml)$/i
 
 
 /**
- * @class Resource controller for graph requests.
+ * @class Resource controller for datasource requests.
  */
-class DataSourceController extends Controller
+class DataSourceController extends FileBackedController
     name    : 'datasources'
-    dataDir : 'data/datasources'
+    dataDir : null
     
     mapping :
         all : 'allData'
     
     -> super ...
+    toFile: @::toFileRecursive
     
     
-    toFile: (id) -> "#{@dataDir}/#id.json"
-    
-    /**
-     * Auto-load :id for related requests.
-     */
-    autoload: (id, cb) ->
-        files   = findit.sync @dataDir
-        pattern = new RegExp "#id\.(json|ya?ml)$", "i"
-        file    = _.find files, -> pattern.test it
-        
-        unless file
-            console.error "Unable to find DataSource for '#id'!"
-            return cb new Error "Unable to find DataSource for '#id'!"
-        
-        if _.endsWith file, "#id.json"
-            parser = JSON.parse
-        if _.endsWith file, "#id.yaml"
-            parser = yaml.load
-        
-        err, data <- fs.readFile file, 'utf8'
-        if 'ENOENT' is err?.code
-            console.error "Unable to find DataSource for '#id'!"
-            return cb new Error "Unable to find DataSource for '#id'!"
-        if err
-            console.error "DataSourceController.autoload(#id, #{typeof cb}) -->\n", err
-            return cb err
-        try
-            cb null, parser data
-        catch err
-            console.error "DataSourceController.autoload(#id, #{typeof cb}) -->\n", err
-            cb err
-    
-    /**
-     * GET /datasources
-     * @returns {Object} JSON listing of the datasource metadata files.
-     */
-    index : (req, res, next) ->
-        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
      */
@@ -83,12 +42,22 @@ class DataSourceController extends Controller
         #     res.render 'datasource/view'
     
     /**
+     * GET /datasources
+     * @returns {Object} JSON listing of the datasource metadata files.
+     */
+    index : (req, res, next) ->
+        Seq()
+            .seq glob, "#{@dataDir}/**/*.@(yaml|json)", {+nocase, +nosort}, Seq
+            .map -> "#it".replace YAML_EXT_PAT, '.json'
+            .seq -> res.send it
+    
+    /**
      * Returns the aggregated JSON content of the datasource metadata files.
      */
     allData : (req, res, next) ->
         data = {}
         Seq()
-            .seq glob, 'data/datasources/**/*.@(yaml|json)', {+nocase, +nosort}, Seq
+            .seq glob, "#{@dataDir}/**/*.@(yaml|json)", {+nocase, +nosort}, Seq
             .seq (paths) -> readFilesAsync paths, this
             .seq (txts) -> @ok _.items txts
             .flatten false
@@ -104,16 +73,16 @@ class DataSourceController extends Controller
                     # console.log "#f ok!", data
                     @ok v
                 catch err
-                    console.error "[/datasources] catch! #err"
+                    console.error "[/datasources] Error parsing data!"
                     console.error err
                     console.error that if err.stack
-                    res.send { error:String(err), partial_data:data }
+                    res.send { error:String(err), partial_data:data }, 500
             .seq -> res.send data
             .catch (err) ->
-                console.error '[/datasources] catch!'
+                console.error '[/datasources] Error!'
                 console.error err
                 console.error that if err.stack
-                res.send { error:String(err), partial_data:data }
+                res.send { error:String(err), partial_data:data }, 500
     
 
 
index c7f2462..a3ed631 100644 (file)
@@ -34,8 +34,12 @@ class GraphController extends Controller
     PROTECT_GRAPHS : true
     
     name    : 'graphs'
-    dataDir : 'data/graphs'
-    -> super ...
+    dataDir : null
+    
+    ->
+        super ...
+        limnOpts = @app.set 'limn options'
+        @dataDir = "#{limnOpts.dataDir}/graphs"
     
     
     
@@ -71,7 +75,7 @@ class GraphController extends Controller
         # if format is json, then return the graph JSON
         switch req.format
             case 'json' 
-                pattern = @dataDir + "/*.json"
+                pattern = "#{@dataDir}/*.json"
                 Seq()
                     # find list of data/graph/*.json files, send back the objects
                     .seq            -> readJSONFilesAsync pattern, this
@@ -103,7 +107,7 @@ class GraphController extends Controller
         return unless data = @processBody req, res
         file = @toFile data.id
         if exists file
-            return res.send { result:"error", message:"Graph '#{data.id}' already exists!" }
+            return res.send { result:"error", message:"Graph '#{data.id}' already exists!" }, 409 # 409: Resource Conflict
         else
             fs.writeFile file, JSON.stringify(data), "utf8", @errorHandler(res, "Error writing graph!")
     
@@ -111,43 +115,35 @@ class GraphController extends Controller
     update: (req, res) ->
         return unless data = @processBody req, res
         if @PROTECT_GRAPHS and _ @PROTECTED_GRAPH_IDS .contains data.id
-            return res.send {result:"error", message:"Graph '#{data.id}' is read-only."}, 403
+            return res.send {result:"error", message:"Graph '#{data.id}' is read-only."}, 403 # 403: Forbidden
         fs.writeFile @toFile(data.id), JSON.stringify(data), "utf8", @errorHandler(res, "Error writing graph!")
     
     # DELETE /graphs/:graph
     destroy: (req, res) ->
         id = req.param.graph
         if @PROTECT_GRAPHS and _ @PROTECTED_GRAPH_IDS .contains id
-            return res.send {result:"error", message:"Graph '#{id}' is read-only."}, 403
-        fs.unlink @toFile(id), @errorHandler(res, "Graph '#{id}' does not exist!")
+            return res.send {result:"error", message:"Graph '#{id}' is read-only."}, 403 # 403: Forbidden
+        fs.unlink @toFile(id), @errorHandler(res, "Graph '#{id}' does not exist!", 410) # 410: Resource Gone
     
     
     ### Helpers
     
     processBody: (req, res) ->
-        if not req.body
-            res.send {result:"error", message:"Data required!"}, 501
+        unless req.body
+            res.send {result:"error", message:"Data required!"}, 400 # 400: Bad Request
             return false
         
         data = req.body
         data.slug or= data.id
-        data.id or= data.slug
+        data.id   or= data.slug
         
-        if not data.slug
-            res.send {result:"error", message:"Slug required!"}, 501
+        unless data.slug
+            res.send {result:"error", message:"Slug required!"}, 400 # 400: Bad Request
             return false
         
-        mkdirp @dataDir if not exists @dataDir
+        mkdirp @dataDir unless exists @dataDir
         return data
     
-    errorHandler: (res, msg) ->
-        (err) ->
-            if err
-                msg or= err.message or String(err)
-                console.error msg
-                res.send { result:"error", message:msg }, 501
-            else
-                res.send { result:"ok" }
 
 
 module.exports = exports = GraphController
index f4d29c7..e94f93d 100644 (file)
@@ -1,12 +1,13 @@
 fs         = require 'fs'
 path       = require 'path'
-{existsSync:exists} = path
+exists  = fs.existsSync or path.existsSync
 
 _          = require 'underscore'
 Seq        = require 'seq'
 yaml       = require 'js-yaml'
-{mkdirp, mkdirpAsync} = require './mkdirp'
 
+{ mkdirp, mkdirpAsync,
+} = require './mkdirp'
 { readJSONFilesAsync,
 } = require './files'
 
@@ -20,35 +21,56 @@ class FileBackedController extends Controller
     
     name    : null
     dataDir : null
+    noun    : null
     
     ->
-        @dataDir or= "data/#{@name}"
         super ...
+        limnOpts = @app.set 'limn options'
+        @dataDir = "#{limnOpts.dataDir}/#{@name}"
+        @noun ?= @name.charAt(0).toUpperCase() + @name.slice(1)
     
     
     
     /**
-     * Override to customize lookup of files by ID.
+     * Look up the resource in the dataDir.
      * 
      * @param {String} id ID of this resource.
      * @returns {String} Path to file for this resource.
+     * @see toFileRecursive
      */
-    toFile: (id) -> "#{@dataDir}/#id.json"
+    toFileFlat: (id) ->
+        return j if exists f = "#{@dataDir}/#id.json"
+        return y if exists y = "#{@dataDir}/#id.yaml"
+    
+    /**
+     * Look up the resource by recursively searching the dataDir.
+     * 
+     * @param {String} id ID of this resource.
+     * @returns {String} Path to file for this resource.
+     * @see toFileFlat
+     */
+    toFileRecursive: (id, cb) ->
+        files = glob "#{@dataDir}/**/#id.@(yaml|json)", {+nocase, +nosort, +sync}
+        files[0]
+    
+    /**
+     * Function for looking up the filepath to a resource. Defaults to a recursive lookup; 
+     * use `toFileFlat()` to only check the top-level directory.
+     */
+    toFile: @::toFileRecursive
     
     
     /**
-     * Auto-load :id for related requests.
+     * Auto-load :id for related requests by looking up the so-named file in the dataDir.
      * 
      * @param {String} id ID of the resource.
      * @param {Function} cb Callback to invoke with the loaded object.
      */
     autoload: (id, cb) ->
-        file = @toFile id
-        parser = JSON.parse
+        parser   = JSON.parse
+        file     = @toFile id
         
-        yamlFile = file.replace /\.json$/i, '.yaml'
-        if exists yamlFile
-            file = yamlFile
+        if _.endsWith file, "#id.yaml"
             parser = yaml.load
         
         err, data <- fs.readFile file, 'utf8'
@@ -56,40 +78,33 @@ class FileBackedController extends Controller
         if 'ENOENT' is err?.code
             return cb null, {}
         if err
-            console.error "#{this}.autoload(#id, #{typeof cb}) -->\nerr"
+            console.error "#{this}.autoload(#id, #{typeof cb}) --> Error reading data!\n", err
             return cb err
         try
             cb null, parser data
         catch err
-            console.error "#{this}.autoload(#id, #{typeof cb}) -->\nerr"
+            console.error "#{this}.autoload(#id, #{typeof cb}) --> Error parsing data!\n", err
             cb err
     
+    
+    
     ### Helpers
     
     processBody: (req, res) ->
-        if not req.body
-            res.send {result:"error", message:"Data required!"}, 501
+        unless req.body
+            res.send {result:"error", message:"Data required!"}, 400 # 400: Bad Request
             return false
         
         data = req.body
         data.slug or= data.id
-        data.id or= data.slug
+        data.id   or= data.slug
         
-        if not data.slug
-            res.send {result:"error", message:"Slug required!"}, 501
+        unless data.slug
+            res.send {result:"error", message:"Slug required!"}, 400 # 400: Bad Request
             return false
         
-        mkdirp @dataDir if not exists @dataDir
+        mkdirp @dataDir unless exists @dataDir
         return data
-    
-    errorHandler: (res, msg) ->
-        (err) ->
-            if err
-                msg or= err.message or String(err)
-                console.error msg
-                res.send { result:"error", message:msg }, 501
-            else
-                res.send { result:"ok" }
 
 
 module.exports = exports = FileBackedController
index 72a6512..bb815a3 100644 (file)
@@ -81,14 +81,14 @@ logErrorsAnd = exports.logErrorsAnd = (cb) ->
 ## Test Code
 if require.main is module
     files = exports
-    u = require 'kraken/util/underscore'
+    u = require 'limn/util/underscore'
     
     paths = <[ package.* deploy.sh ]>
     files.readFilesAsync paths, (err, data) ->
         if err then console.error err
         else console.log '\n\n', global.data = u.map data, (txt, f) -> "#f: #{txt.length}"
     
-    # u = require 'kraken/util/underscore'; files = require 'kraken/server/files'
+    # u = require 'limn/util/underscore'; files = require 'limn/server/files'
     # files.readJSONFilesAsync 'data/**/*.json', files.logErrorsAnd()
 
 
index cf3022e..708cc0a 100755 (executable)
@@ -22,33 +22,84 @@ Controller            = require './controller'
  * Limn project-internals
  */
 BASE   = dirname dirname __dirname
-DATA   = "#BASE/data"
-LIB    = "#BASE/llb"
+LIB    = "#BASE/lib"
 SRC    = "#BASE/src"
 STATIC = "#BASE/static"
-VAR    = "#BASE/var"
 WWW    = "#BASE/www"
 
 NODE_ENV = process.env.NODE_ENV or 'development'
 IS_DEV   = NODE_ENV is 'development'
 IS_PROD  = NODE_ENV is 'production'
 
-LOG_LEVEL = process.env.KRAKEN_LOG_LEVEL
+LOG_LEVEL = process.env.LIMN_LOG_LEVEL
 LOG_LEVEL or= if IS_DEV then 'INFO' else 'WARN'
 LOG_LEVEL .= toUpperCase()
 
-REV = process.env.KRAKEN_REV or 'HEAD'
+REV = process.env.LIMN_REV or 'HEAD'
 try REV = require '../version' catch e
 
 
 
+/**
+ * Limn option defaults.
+ */
 DEFAULT_OPTIONS =
-    dataDir         : './data' # Path to directory where data files should be written.
-    # datasetDir      : null     # Path to a directory to statically serve as `/data` if present.
+    /**
+     * @name dataDir
+     * @type String
+     * Path to directory where data and metadata files are stored.
+     */
+    dataDir : './data'
+    
+    /**
+     * @name varDir
+     * @type String
+     * Path to directory where derived files are written while in dev-mode.
+     */
+    varDir : './var'
+    
+    /**
+     * @name proxy
+     * @type Object
+     */
     proxy :
-        enabled     : false    # Enables remote dataset proxy. If omitted, the proxy will be enabled if either `proxy.whitelist` or `proxy.blacklist` are set.
-        whitelist   : null     # Array of domain patterns to whitelist for proxy. Strings are matched via glob-like syntax, but regular expressions may also be passed. If `proxy.enabled` is true but no whitelist is provided, it defaults to `['*']`.
-        blacklist   : null     # Array of domain patterns to blacklist from proxying. Strings are matched via glob-like syntax, but regular expressions may also be passed.
+        /**
+         * @name enabled
+         * @type Boolean
+         * Enables remote dataset proxy. If omitted, the proxy will be enabled
+         * if either `proxy.whitelist` or `proxy.blacklist` are set.
+         */
+        enabled : false
+        
+        /**
+         * @name whitelist
+         * @type Array<String|RegExp>
+         * Array of domain patterns to whitelist for proxy. Strings are matched
+         * via glob syntax, but regular expressions may also be passed. 
+         * If `proxy.enabled` is true but no whitelist is provided, it defaults to `['*']`.
+         */
+        whitelist : null
+        
+        /**
+         * @name blacklist
+         * @type Array<String|RegExp>
+         * Array of domain patterns to blacklist from proxying. Strings are matched
+         * via glob syntax, but regular expressions may also be passed.
+         */
+        blacklist : null
+    
+    /**
+     * @name staticMaxAge
+     * @type Object
+     * Max-Age of static files served by Limn. Object is a hash from NODE_ENV to
+     * expiry time in miliseconds, with a special key "default" that does what you
+     * expect.
+     */
+    staticMaxAge :
+        default     : 0
+        development : 0
+        production  : 108_000_000_ms # set a one month max-age for static files
+    
 
 
 
@@ -69,6 +120,9 @@ function limn(options)
 
 
 
+/**
+ * Application pseudo-prototype (as we don't actually inherit from the Express server).
+ */
 application = limn.application = 
     
     /**
@@ -99,7 +153,6 @@ application = limn.application =
                 version : REV
                 IS_DEV, IS_PROD
             } import require './view-helpers'
-            
             # @helpers require './view-helpers'
             
             # Parse URL, fiddle
@@ -113,67 +166,68 @@ application = limn.application =
             
             # Route to the web services
             @use @router
-            
-            # Browserify some deps
-            @use require('browserify') do
-                mount   : '/vendor/browserify.js'
-                require : <[ seq d3 events ]>
-                cache   : "#BASE/.cache/browserify/cache.json"
         
         # production config
         @configure 'production', ->
+            ### FIXME
+            
             # log all requests
             @use express.logger()
             
-            # set a one month max-age for static files
-            @set 'static max age', 108_000_000_ms
-            
             # show simple errors
             @use express.errorHandler()
         
         
         # development config
         @configure 'development', ->
-            # show exceptions, pretty stack traces
+            opts = {varDir, dataDir} = @set 'limn options'
+            
+            # show exceptions, pretty stack traces ### FIXME
             @use express.errorHandler { +dumpExceptions, +showStack }
             
             # turn on pretty-printing of views
             @set('view options').pretty = true
             
+            # Browserify some deps
+            @use require('browserify') do
+                mount   : '/vendor/browserify.js'
+                require : <[ seq d3 events ]>
+                cache   : "#varDir/.cache/browserify/cache.json"
+            
             # import dev-only deps here, so prod users don't need them
             compiler = require 'connect-compiler-extras'
             
             # transparently recompile modules that have changed
-            @use '/js/kraken', compiler do
+            @use '/js/limn', compiler do
                 enabled : 'coco'
                 src     : SRC
-                dest    : "#VAR/js/kraken"
+                dest    : "#varDir/js/limn"
                 log_level : LOG_LEVEL
             @use compiler do
                 enabled : <[ jade-browser stylus yaml ]>
                 src     : WWW
-                dest    : VAR
+                dest    : varDir
                 options : stylus : { nib:true, include:"#WWW/css" }
                 log_level : LOG_LEVEL
             @use compiler do
                 enabled : 'yaml'
-                src     : DATA
-                dest    : "#VAR/data"
+                src     : dataDir
+                dest    : "#varDir/data"
                 log_level : LOG_LEVEL
             
             # wrap modules in commonjs closure for browser
             @use compiler do
                 enabled : 'commonjs_define'
                 src     : [ STATIC ]
-                dest    : VAR
+                dest    : varDir
                 options :
                     commonjs        : { drop_path_parts:1, drop_full_ext:false }
                     commonjs_define : { drop_path_parts:1, drop_full_ext:false }
                 log_level : LOG_LEVEL
             @use compiler do
                 enabled : 'commonjs_define'
-                src     : [ VAR, WWW ]
-                dest    : VAR
+                src     : [ varDir, WWW ]
+                dest    : varDir
                 options :
                     commonjs        : { drop_path_parts:1, drop_full_ext:true }
                     commonjs_define : { drop_path_parts:1, drop_full_ext:true }
@@ -181,10 +235,12 @@ application = limn.application =
         
         # serve static files
         @configure ->
-            opts = @set('static file options') or {}
-            @use express.static VAR, ^opts
-            @use express.static WWW, ^opts
-            @use express.static STATIC, ^opts
+            {staticMaxAge} = @set 'limn options'
+            maxAge = staticMaxAge[NODE_ENV] ? staticMaxAge.default
+            
+            @use express.static varDir, {maxAge}
+            @use express.static WWW,    {maxAge}
+            @use express.static STATIC, {maxAge}
         
         
         
@@ -194,9 +250,11 @@ application = limn.application =
         
         YAML_EXT_PAT = /\.ya?ml$/i
         @get '/datasources/all', (req, res, next) ->
+            opts = {varDir, dataDir} = @set 'limn options'
+            
             data = {}
             Seq()
-                .seq glob, 'data/datasources/**/*.@(yaml|json)', {+nocase, +nosort}, Seq
+                .seq glob, "#dataDir/datasources/**/*.@(yaml|json)", {+nocase, +nosort}, Seq
                 .seq (paths) -> readFilesAsync paths, this
                 .seq (txts) -> @ok _.items txts
                 .flatten false
@@ -212,26 +270,23 @@ application = limn.application =
                         # console.log "#f ok!", data
                         @ok v
                     catch err
-                        console.error "[/data/all] catch! #err"
+                        console.error "[/datasources/all] Error parsing data!"
                         console.error err
                         console.error that if err.stack
-                        res.send { error:String(err), partial_data:data }
+                        res.send { error:String(err), partial_data:data }, 500
                 .seq -> res.send data
                 .catch (err) ->
-                    console.error '[/data/all] catch!'
+                    console.error '[/datasources/all] Error!'
                     console.error err
                     console.error that if err.stack
-                    res.send { error:String(err), partial_data:data }
+                    res.send { error:String(err), partial_data:data }, 500
         
         @controller require './controllers/datasource'
         
         
         # proxy endpoint
         if opts.proxy.enabled
-            proxy = require('./proxy')({
-                blacklist: opts.proxy.blacklist
-                whitelist: opts.proxy.whitelist
-            })
+            proxy = require('./proxy')(opts.proxy)
             @get '/x',   proxy
             @get '/x/*', proxy
         
@@ -240,16 +295,17 @@ application = limn.application =
         @get '/', (req, res) ->
             res.render 'dashboard/view'
         
+        ### FIXME
         @get '/geo', (req, res) ->
             res.render 'geo'
         
+        ### FIXME?
         @get '/:type/:action/?', (req, res, next) ->
             {type, action} = req.params
             if exists "#WWW/#type/#action.jade"
                 res.render "#type/#action"
             else
                 next()
-        
         @get '/:type/?', (req, res, next) ->
             {type} = req.params
             if exists "#WWW/#type.jade"
index 2940c48..47e943c 100755 (executable)
@@ -41,11 +41,11 @@ app.use limn = app.limn = LimnMiddleware()
 mainfile = path.basename require.main?.filename
 if require.main is module or 'Cokefile' is mainfile
     PORT = 8081
-    PORT = parseInt(that, 10) if process.env.KRAKEN_PORT
+    PORT = parseInt(that, 10) if process.env.LIMN_PORT
     
     NODE_ENV  = process.env.NODE_ENV or 'development'
     
-    REV = process.env.KRAKEN_REV or 'HEAD'
+    REV = process.env.LIMN_REV or 'HEAD'
     try REV = require '../version' catch e
     err, stdout, stderr <- exec 'git rev-parse --short HEAD', {cwd:process.cwd(), env:process.env}
     throw err if err
index c96ccc7..f222a41 100644 (file)
@@ -28,7 +28,7 @@ IS_DEV   = exports.IS_DEV   = not (IS_PROD or IS_TEST)
 
 
 
-SOURCES_ENV = if process.env.KRAKEN_FORCE_BUNDLES then 'production' else NODE_ENV
+SOURCES_ENV = if process.env.LIMN_FORCE_BUNDLES then 'production' else NODE_ENV
 
 /**
  * Reify a modules.yaml file
index f71d353..5ac539a 100644 (file)
@@ -1,4 +1,4 @@
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 
 /**
  * @class A mapping of key-value pairs supporting key-aliases.
index 1c09368..cfe474e 100644 (file)
@@ -1,4 +1,4 @@
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 
 hasOwn = ({}).hasOwnProperty
 
index 18c3e40..f31f727 100644 (file)
@@ -1,2 +1,2 @@
-exports.WaitingEmitter = require 'kraken/util/event/waiting-emitter'
-exports.ReadyEmitter   = require 'kraken/util/event/ready-emitter'
+exports.WaitingEmitter = require 'limn/util/event/waiting-emitter'
+exports.ReadyEmitter   = require 'limn/util/event/ready-emitter'
index 049ad1c..879dcf8 100644 (file)
@@ -1,4 +1,4 @@
-Base = require 'kraken/base/base'
+Base = require 'limn/base/base'
 
 
 /**
index 3f29ddf..876e07b 100644 (file)
@@ -1,4 +1,4 @@
-Base = require 'kraken/base/base'
+Base = require 'limn/base/base'
 
 
 /**
index f2c3b95..d545835 100644 (file)
@@ -1,7 +1,7 @@
 moment = require 'moment'
 
 { _, op,
-} = require 'kraken/util'
+} = require 'limn/util'
 
 
 _fmt = do
index ddcacba..f68bb6f 100644 (file)
@@ -1,5 +1,5 @@
-_  = exports._  = require 'kraken/util/underscore'
-op = exports.op = require 'kraken/util/op'
+_  = exports._  = require 'limn/util/underscore'
+op = exports.op = require 'limn/util/op'
 
 # Root object -- `window` in the browser, `global` in Node.
 root = exports.root = do -> this
@@ -26,13 +26,13 @@ root.jQuery?.fn.invoke = (method, ...args) ->
         jQuery(el)[method] ...args
 
 
-exports import require 'kraken/util/event'
+exports import require 'limn/util/event'
 
-backbone = exports.backbone = require 'kraken/util/backbone'
-parser   = exports.parser   = require 'kraken/util/parser'
-Cascade  = exports.Cascade  = require 'kraken/util/cascade'
+backbone = exports.backbone = require 'limn/util/backbone'
+parser   = exports.parser   = require 'limn/util/parser'
+Cascade  = exports.Cascade  = require 'limn/util/cascade'
 
-# HashSet   = exports.HashSet   = require 'kraken/util/hashset'
-# BitString = exports.BitString = require 'kraken/util/bitstring'
-# {crc32}   = exports.{crc32}   = require 'kraken/util/crc'
+# HashSet   = exports.HashSet   = require 'limn/util/hashset'
+# BitString = exports.BitString = require 'limn/util/bitstring'
+# {crc32}   = exports.{crc32}   = require 'limn/util/crc'
 
index 1783703..03137d8 100644 (file)
@@ -1,7 +1,7 @@
-_  = require 'kraken/util/underscore'
-op = require 'kraken/util/op'
+_  = require 'limn/util/underscore'
+op = require 'limn/util/op'
 { BaseModel, BaseList, BaseView, Mixin,
-}  = require 'kraken/base'
+}  = require 'limn/base'
 
 
 /**
index e89053b..4599630 100644 (file)
@@ -1,5 +1,5 @@
-_  = require 'kraken/util/underscore'
-TimeSeriesData = require 'kraken/util/timeseries/timeseries'
+_  = require 'limn/util/underscore'
+TimeSeriesData = require 'limn/util/timeseries/timeseries'
 
 
 DASH_PATTERN       = /-/g
index b583a6b..c729d0a 100644 (file)
@@ -1,2 +1,2 @@
-exports.TimeSeriesData = require 'kraken/util/timeseries/timeseries'
-exports.CSVData        = require 'kraken/util/timeseries/csv'
+exports.TimeSeriesData = require 'limn/util/timeseries/timeseries'
+exports.CSVData        = require 'limn/util/timeseries/csv'
index 8fad863..42c3f0f 100644 (file)
@@ -1,4 +1,4 @@
-_  = require 'kraken/util/underscore'
+_  = require 'limn/util/underscore'
 
 
 
index f59c17f..de956ca 100644 (file)
@@ -2,12 +2,12 @@ _     = require 'underscore'
 _.str = require 'underscore.string'
 _.mixin _.str.exports()
 
-_.mixin require 'kraken/util/underscore/function'
-_.mixin require 'kraken/util/underscore/array'
-_.mixin require 'kraken/util/underscore/object'
-_.mixin require 'kraken/util/underscore/class'
-_.mixin require 'kraken/util/underscore/kv'
-_.mixin require 'kraken/util/underscore/string'
+_.mixin require 'limn/util/underscore/function'
+_.mixin require 'limn/util/underscore/array'
+_.mixin require 'limn/util/underscore/object'
+_.mixin require 'limn/util/underscore/class'
+_.mixin require 'limn/util/underscore/kv'
+_.mixin require 'limn/util/underscore/string'
 
 
 ## Debug
index c3a4609..5693416 100755 (executable)
@@ -13,7 +13,7 @@ PROXY_DOMAIN_WHITELIST = <[
 ]>
 
 
-proxy = require('kraken/server/proxy')({
+proxy = require('limn/server/proxy')({
     blacklist: PROXY_DOMAIN_BLACKLIST
     whitelist: PROXY_DOMAIN_WHITELIST
 })
index afaebe8..1ca1302 100644 (file)
@@ -1,7 +1,7 @@
 assert  = require 'assert'
 
-_       = require 'kraken/util/underscore'
-Cascade = require 'kraken/util/cascade'
+_       = require 'limn/util/underscore'
+Cascade = require 'limn/util/cascade'
 
 assertArraysEqual = (actual, expected, name) ->
     assert.deepEqual actual, expected
index f2c635a..3dc166e 100644 (file)
@@ -1,7 +1,7 @@
 _       = require 'underscore'
 assert  = require 'assert'
 
-_.mixin require 'kraken/util/underscore/object'
+_.mixin require 'limn/util/underscore/object'
 
 
 assertArraysEqual = (actual, expected, name) ->
index 82f0eb5..1caaa00 100644 (file)
@@ -20,13 +20,13 @@ block main-scripts
         d3            = require('d3')
         Seq           = require('seq')
         Backbone      = require('backbone')
-        util          = require('kraken/util'); _ = util._; op = util.op
-        AppView       = require('kraken/app').AppView
-        base          = require('kraken/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
-        ChartType     = require('kraken/chart').ChartType
-        data          = require('kraken/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
-        _graph        = require('kraken/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
-        //LineChartType = require('kraken/chart/type/d3/d3-line-chart-type')
+        util          = require('limn/util'); _ = util._; op = util.op
+        AppView       = require('limn/app').AppView
+        base          = require('limn/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
+        ChartType     = require('limn/chart').ChartType
+        data          = require('limn/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
+        _graph        = require('limn/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
+        //LineChartType = require('limn/chart/type/d3/d3-line-chart-type')
         
         // run on DOM-ready
         jQuery(function(){
index ab70d61..20dcfac 100644 (file)
@@ -20,13 +20,13 @@ block main-scripts
         d3            = require('d3')
         Seq           = require('seq')
         Backbone      = require('backbone')
-        util          = require('kraken/util'); _ = util._; op = util.op
-        AppView       = require('kraken/app').AppView
-        base          = require('kraken/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
-        ChartType     = require('kraken/chart').ChartType
-        data          = require('kraken/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
-        _graph        = require('kraken/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
-        //LineChartType = require('kraken/chart/type/d3/d3-line-chart-type')
+        util          = require('limn/util'); _ = util._; op = util.op
+        AppView       = require('limn/app').AppView
+        base          = require('limn/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
+        ChartType     = require('limn/chart').ChartType
+        data          = require('limn/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
+        _graph        = require('limn/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
+        //LineChartType = require('limn/chart/type/d3/d3-line-chart-type')
         
         // run on DOM-ready
         jQuery(function(){
index 968e48f..8871f67 100644 (file)
@@ -20,13 +20,13 @@ block main-scripts
         d3            = require('d3')
         Seq           = require('seq')
         Backbone      = require('backbone')
-        util          = require('kraken/util'); _ = util._; op = util.op
-        AppView       = require('kraken/app').AppView
-        base          = require('kraken/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
-        ChartType     = require('kraken/chart').ChartType
-        data          = require('kraken/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
-        _graph        = require('kraken/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
-        //LineChartType = require('kraken/chart/type/d3/d3-line-chart-type')
+        util          = require('limn/util'); _ = util._; op = util.op
+        AppView       = require('limn/app').AppView
+        base          = require('limn/base'); BaseView = base.BaseView; BaseModel = base.BaseModel; BaseList = base.BaseList
+        ChartType     = require('limn/chart').ChartType
+        data          = require('limn/data'); DataSource = data.DataSource; DataSourceList = data.DataSourceList
+        _graph        = require('limn/graph'); Graph = _graph.Graph; GraphList = _graph.GraphList; GraphEditView = _graph.GraphEditView
+        //LineChartType = require('limn/chart/type/d3/d3-line-chart-type')
         
         // run on DOM-ready
         jQuery(function(){
index 78a56fa..8dbbe93 100644 (file)
@@ -14,4 +14,4 @@ append styles
     
 
 block main-scripts
-    script(src="/js/kraken/main-dashboard.js?"+version)
+    script(src="/js/limn/main-dashboard.js?"+version)
index c7f3d30..ddcbd2b 100644 (file)
@@ -7,7 +7,7 @@ append styles
     mixin css('geo-display.css')
 
 block main-scripts
-    script(src="/js/kraken/main-geo.js?"+version)
+    script(src="/js/limn/main-geo.js?"+version)
 
 block content
     section.geo
index e9db138..bfa7732 100644 (file)
@@ -11,4 +11,4 @@ append styles
     mixin css('isotope.css')
 
 block main-scripts
-    script(src="/js/kraken/main-edit.js?"+version)
+    script(src="/js/limn/main-edit.js?"+version)
index 9d7d68b..f8b87a6 100644 (file)
@@ -4,4 +4,4 @@ block title
     title Graph | Limn
 
 block main-scripts
-    script(src="/js/kraken/main-graph-list.js?"+version)
+    script(src="/js/limn/main-graph-list.js?"+version)
index ef1345d..aa5fd68 100644 (file)
@@ -7,4 +7,4 @@ append styles
     mixin css('graph-display.css')
 
 block main-scripts
-    script(src="/js/kraken/main-display.js?"+version)
+    script(src="/js/limn/main-display.js?"+version)
index d04237b..cbe9428 100644 (file)
@@ -1,4 +1,4 @@
-_ = require 'kraken/util/underscore'
+_ = require 'limn/util/underscore'
 
 config = tbody = null
 
index d6e630a..ecf547e 100644 (file)
@@ -59,10 +59,10 @@ block scripts
     script(src="/vendor/bootstrap.min.js")
     script(src="/vendor/underscore.mod.js")
     script(src="/vendor/underscore.string.mod.js")
-    script(src="/js/kraken/util/underscore/array.mod.js")
-    script(src="/js/kraken/util/underscore/object.mod.js")
-    script(src="/js/kraken/util/underscore/kv.mod.js")
-    script(src="/js/kraken/util/underscore/string.mod.js")
-    script(src="/js/kraken/util/underscore/index.mod.js")
+    script(src="/js/limn/util/underscore/array.mod.js")
+    script(src="/js/limn/util/underscore/object.mod.js")
+    script(src="/js/limn/util/underscore/kv.mod.js")
+    script(src="/js/limn/util/underscore/string.mod.js")
+    script(src="/js/limn/util/underscore/index.mod.js")
     script(src="numbers.js")
 
index 21f3d13..4996c94 100644 (file)
@@ -2,17 +2,17 @@ Seq      = require 'seq'
 Backbone = require 'backbone'
 
 { _, op, Cascade,
-} = require 'kraken/util'
+} = require 'limn/util'
 { BaseView, BaseModel, BaseList,
-} = require 'kraken/base'
+} = require 'limn/base'
 { Field, FieldList, FieldView, Scaffold,
-} = require 'kraken/base/scaffold'
+} = require 'limn/base/scaffold'
 { ChartType, DygraphsChartType,
   ChartOption, ChartOptionList, TagSet,
   ChartOptionView, ChartOptionScaffold,
-} = require 'kraken/chart'
+} = require 'limn/chart'
 { GraphEditView, Graph, GraphList,
-} = require 'kraken/graph'
+} = require 'limn/graph'
 
 
 root = this
index f136df3..dcf3d6c 100644 (file)
@@ -4,7 +4,7 @@ production:
 -   suffix: .js
     paths:
     - vendor/vendor-bundle.min
-    - js/kraken/app-bundle
+    - js/limn/app-bundle
 
 development:
 -   suffix: .js
@@ -45,7 +45,7 @@ development:
 -   suffix: .mod.js
     paths:
     - js:
-        - kraken:
+        - limn:
             - template:
                 - chart:
                     - chart-option.jade
@@ -143,4 +143,4 @@ development:
 
 # -   suffix: .js
 #     paths:
-#     - js/kraken/main
+#     - js/limn/main