From: David Schoonover Date: Thu, 12 Jul 2012 18:17:01 +0000 (-0700) Subject: Renames kraken to limn. X-Git-Url: http://git.less.ly:3516/?a=commitdiff_plain;h=8782bea96ecfb62c27ebbc583a875b1c013e5326;p=limn.git Renames kraken to limn. --- diff --git a/Cokefile b/Cokefile index fb738d9..949701e 100644 --- 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 diff --git a/README.md b/README.md index 733039c..c7ae1e5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ -# Kraken UI: WMF Analytics Reportcard prototype +# Limn — a GUI Visualization Toolkit -Setup instructions to be cleaned up momentarily. (brb lunch) ### Setting Up diff --git a/package.co b/package.co index 87518b4..c00dd63 100644 --- a/package.co +++ b/package.co @@ -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 (http://less.ly)' contributors : [ 'Andrew Otto ' diff --git a/package.json b/package.json index b6bc670..d5763fd 100644 --- a/package.json +++ b/package.json @@ -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 (http://less.ly)", "contributors": [ diff --git a/src/app.co b/src/app.co index a4185b0..050341a 100644 --- a/src/app.co +++ b/src/app.co @@ -1,7 +1,7 @@ Backbone = require 'backbone' { _, op, -} = require 'kraken/util' +} = require 'limn/util' /** diff --git a/src/base/asset-manager.co b/src/base/asset-manager.co index fa91012..ff646a1 100644 --- a/src/base/asset-manager.co +++ b/src/base/asset-manager.co @@ -1,7 +1,7 @@ { _, op, -} = require 'kraken/util' +} = require 'limn/util' { ReadyEmitter, -} = require 'kraken/util/event' +} = require 'limn/util/event' diff --git a/src/base/base-mixin.co b/src/base/base-mixin.co index c6764cb..5e6af11 100644 --- a/src/base/base-mixin.co +++ b/src/base/base-mixin.co @@ -1,7 +1,7 @@ Backbone = require 'backbone' { _, op, -} = require 'kraken/util' +} = require 'limn/util' diff --git a/src/base/base-model.co b/src/base/base-model.co index 54b725e..383fc66 100644 --- a/src/base/base-model.co +++ b/src/base/base-model.co @@ -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' diff --git a/src/base/base-view.co b/src/base/base-view.co index 18646a5..c214d13 100644 --- a/src/base/base-view.co +++ b/src/base/base-view.co @@ -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' diff --git a/src/base/base.co b/src/base/base.co index 5d3f699..4591cd0 100644 --- a/src/base/base.co +++ b/src/base/base.co @@ -3,7 +3,7 @@ EventEmitter::off = EventEmitter::removeListener EventEmitter::trigger = EventEmitter::emit { _, op -} = require 'kraken/util' +} = require 'limn/util' diff --git a/src/base/cascading-model.co b/src/base/cascading-model.co index 7582621..d232593 100644 --- a/src/base/cascading-model.co +++ b/src/base/cascading-model.co @@ -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' diff --git a/src/base/data-binding.co b/src/base/data-binding.co index 4b2fa58..b130f85 100644 --- a/src/base/data-binding.co +++ b/src/base/data-binding.co @@ -1,7 +1,7 @@ Backbone = require 'backbone' { _, op, -} = require 'kraken/util' +} = require 'limn/util' class exports.DataBinding diff --git a/src/base/index.co b/src/base/index.co index 17b6726..cfeab93 100644 --- a/src/base/index.co +++ b/src/base/index.co @@ -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 diff --git a/src/base/model-cache.co b/src/base/model-cache.co index f636a7d..177ebce 100644 --- a/src/base/model-cache.co +++ b/src/base/model-cache.co @@ -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 diff --git a/src/base/scaffold/index.co b/src/base/scaffold/index.co index 6524ae6..9e23fe2 100644 --- a/src/base/scaffold/index.co +++ b/src/base/scaffold/index.co @@ -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 diff --git a/src/base/scaffold/scaffold-model.co b/src/base/scaffold/scaffold-model.co index 2800782..e8ca6da 100644 --- a/src/base/scaffold/scaffold-model.co +++ b/src/base/scaffold/scaffold-model.co @@ -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' diff --git a/src/base/scaffold/scaffold-view.co b/src/base/scaffold/scaffold-view.co index b5299bc..075054d 100644 --- a/src/base/scaffold/scaffold-view.co +++ b/src/base/scaffold/scaffold-view.co @@ -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 # {{{ diff --git a/src/chart/chart-type.co b/src/chart/chart-type.co index 2840b9d..1ea7f85 100644 --- a/src/chart/chart-type.co +++ b/src/chart/chart-type.co @@ -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' diff --git a/src/chart/index.co b/src/chart/index.co index c5fd1e2..3a2fd85 100644 --- a/src/chart/index.co +++ b/src/chart/index.co @@ -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 diff --git a/src/chart/option/chart-option-model.co b/src/chart/option/chart-option-model.co index 2a3c37a..489c775 100644 --- a/src/chart/option/chart-option-model.co +++ b/src/chart/option/chart-option-model.co @@ -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' /** diff --git a/src/chart/option/chart-option-view.co b/src/chart/option/chart-option-view.co index 1b004e1..3b0fab5 100644 --- a/src/chart/option/chart-option-view.co +++ b/src/chart/option/chart-option-view.co @@ -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 diff --git a/src/chart/option/index.co b/src/chart/option/index.co index 5cdea4d..3244f1c 100644 --- a/src/chart/option/index.co +++ b/src/chart/option/index.co @@ -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 diff --git a/src/chart/type/d3-chart.co b/src/chart/type/d3-chart.co index 02c2c34..32e61fc 100644 --- a/src/chart/type/d3-chart.co +++ b/src/chart/type/d3-chart.co @@ -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 diff --git a/src/chart/type/d3/d3-bar-chart-type.co b/src/chart/type/d3/d3-bar-chart-type.co index 6bab42b..be02f69 100644 --- a/src/chart/type/d3/d3-bar-chart-type.co +++ b/src/chart/type/d3/d3-bar-chart-type.co @@ -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 diff --git a/src/chart/type/d3/d3-bar-element.co b/src/chart/type/d3/d3-bar-element.co index 9f93fa7..99c9719 100644 --- a/src/chart/type/d3/d3-bar-element.co +++ b/src/chart/type/d3/d3-bar-element.co @@ -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 diff --git a/src/chart/type/d3/d3-chart-element.co b/src/chart/type/d3/d3-chart-element.co index 29cc2a3..e852476 100644 --- a/src/chart/type/d3/d3-chart-element.co +++ b/src/chart/type/d3/d3-chart-element.co @@ -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 diff --git a/src/chart/type/d3/d3-geo-element.co b/src/chart/type/d3/d3-geo-element.co index 2238b31..c690a88 100644 --- a/src/chart/type/d3/d3-geo-element.co +++ b/src/chart/type/d3/d3-geo-element.co @@ -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' diff --git a/src/chart/type/d3/d3-line-element.co b/src/chart/type/d3/d3-line-element.co index 51ce742..92bf946 100644 --- a/src/chart/type/d3/d3-line-element.co +++ b/src/chart/type/d3/d3-line-element.co @@ -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 diff --git a/src/chart/type/d3/index.co b/src/chart/type/d3/index.co index a18badd..856a7f8 100644 --- a/src/chart/type/d3/index.co +++ b/src/chart/type/d3/index.co @@ -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 diff --git a/src/chart/type/dygraphs.co b/src/chart/type/dygraphs.co index 4d0113e..2266a37 100644 --- a/src/chart/type/dygraphs.co +++ b/src/chart/type/dygraphs.co @@ -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 diff --git a/src/dashboard/dashboard-model.co b/src/dashboard/dashboard-model.co index d4e3fbf..bd969e7 100644 --- a/src/dashboard/dashboard-model.co +++ b/src/dashboard/dashboard-model.co @@ -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' /** diff --git a/src/dashboard/dashboard-view.co b/src/dashboard/dashboard-view.co index eada37e..6f9aea8 100644 --- a/src/dashboard/dashboard-view.co +++ b/src/dashboard/dashboard-view.co @@ -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 diff --git a/src/dashboard/index.co b/src/dashboard/index.co index 03fc595..5f2f229 100644 --- a/src/dashboard/index.co +++ b/src/dashboard/index.co @@ -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 diff --git a/src/data/data-view.co b/src/data/data-view.co index c57eaa8..a692f6f 100644 --- a/src/data/data-view.co +++ b/src/data/data-view.co @@ -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 diff --git a/src/data/dataset-model.co b/src/data/dataset-model.co index 5bc6c25..4b1502c 100644 --- a/src/data/dataset-model.co +++ b/src/data/dataset-model.co @@ -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' diff --git a/src/data/dataset-view.co b/src/data/dataset-view.co index 4a55a14..45c90d3 100644 --- a/src/data/dataset-view.co +++ b/src/data/dataset-view.co @@ -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' diff --git a/src/data/datasource-model.co b/src/data/datasource-model.co index 544af94..5dcf0bd 100644 --- a/src/data/datasource-model.co +++ b/src/data/datasource-model.co @@ -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' /** diff --git a/src/data/datasource-ui-view.co b/src/data/datasource-ui-view.co index 7f04041..6a7bffb 100644 --- a/src/data/datasource-ui-view.co +++ b/src/data/datasource-ui-view.co @@ -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' diff --git a/src/data/datasource-view.co b/src/data/datasource-view.co index 95e5ee1..57b1469 100644 --- a/src/data/datasource-view.co +++ b/src/data/datasource-view.co @@ -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' diff --git a/src/data/index.co b/src/data/index.co index df014f4..1ed639d 100644 --- a/src/data/index.co +++ b/src/data/index.co @@ -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 \ diff --git a/src/data/metric-edit-view.co b/src/data/metric-edit-view.co index a4868a7..3aaa040 100644 --- a/src/data/metric-edit-view.co +++ b/src/data/metric-edit-view.co @@ -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: diff --git a/src/data/metric-model.co b/src/data/metric-model.co index 8381076..1a00e4a 100644 --- a/src/data/metric-model.co +++ b/src/data/metric-model.co @@ -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 diff --git a/src/graph/graph-display-view.co b/src/graph/graph-display-view.co index 868d910..ce745de 100644 --- a/src/graph/graph-display-view.co +++ b/src/graph/graph-display-view.co @@ -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. diff --git a/src/graph/graph-edit-view.co b/src/graph/graph-edit-view.co index 123fc58..2f9abc9 100644 --- a/src/graph/graph-edit-view.co +++ b/src/graph/graph-edit-view.co @@ -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' diff --git a/src/graph/graph-list-view.co b/src/graph/graph-list-view.co index 14bd007..276b06d 100644 --- a/src/graph/graph-list-view.co +++ b/src/graph/graph-list-view.co @@ -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 diff --git a/src/graph/graph-model.co b/src/graph/graph-model.co index a67c57a..7cd5732 100644 --- a/src/graph/graph-model.co +++ b/src/graph/graph-model.co @@ -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 diff --git a/src/graph/graph-view.co b/src/graph/graph-view.co index b6dff7d..704ce86 100644 --- a/src/graph/graph-view.co +++ b/src/graph/graph-view.co @@ -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 diff --git a/src/graph/index.co b/src/graph/index.co index 18203dd..c8f65a4 100644 --- a/src/graph/index.co +++ b/src/graph/index.co @@ -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 diff --git a/src/main-dashboard.co b/src/main-dashboard.co index 40aee2b..74d7b3e 100644 --- a/src/main-dashboard.co +++ b/src/main-dashboard.co @@ -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 diff --git a/src/main-display.co b/src/main-display.co index f5f2b04..b435b62 100644 --- a/src/main-display.co +++ b/src/main-display.co @@ -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 diff --git a/src/main-edit.co b/src/main-edit.co index 74040d5..6c52fac 100644 --- a/src/main-edit.co +++ b/src/main-edit.co @@ -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 diff --git a/src/main-graph-list.co b/src/main-graph-list.co index a726510..9cc5086 100644 --- a/src/main-graph-list.co +++ b/src/main-graph-list.co @@ -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 diff --git a/src/server/controller.co b/src/server/controller.co index 6ae94fa..19e235e 100644 --- a/src/server/controller.co +++ b/src/server/controller.co @@ -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 = \ diff --git a/src/server/controllers/dashboard.co b/src/server/controllers/dashboard.co index ca6c844..fe592c6 100644 --- a/src/server/controllers/dashboard.co +++ b/src/server/controllers/dashboard.co @@ -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 diff --git a/src/server/controllers/datasource.co b/src/server/controllers/datasource.co index 4b37c1c..bce9946 100644 --- a/src/server/controllers/datasource.co +++ b/src/server/controllers/datasource.co @@ -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 diff --git a/src/server/controllers/graph.co b/src/server/controllers/graph.co index c7f2462..a3ed631 100644 --- a/src/server/controllers/graph.co +++ b/src/server/controllers/graph.co @@ -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 diff --git a/src/server/file-controller.co b/src/server/file-controller.co index f4d29c7..e94f93d 100644 --- a/src/server/file-controller.co +++ b/src/server/file-controller.co @@ -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 diff --git a/src/server/files.co b/src/server/files.co index 72a6512..bb815a3 100644 --- a/src/server/files.co +++ b/src/server/files.co @@ -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() diff --git a/src/server/middleware.co b/src/server/middleware.co index cf3022e..708cc0a 100755 --- a/src/server/middleware.co +++ b/src/server/middleware.co @@ -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 + * 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 + * 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" diff --git a/src/server/server.co b/src/server/server.co index 2940c48..47e943c 100755 --- a/src/server/server.co +++ b/src/server/server.co @@ -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 diff --git a/src/server/view-helpers.co b/src/server/view-helpers.co index c96ccc7..f222a41 100644 --- a/src/server/view-helpers.co +++ b/src/server/view-helpers.co @@ -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 diff --git a/src/util/aliasdict.co b/src/util/aliasdict.co index f71d353..5ac539a 100644 --- a/src/util/aliasdict.co +++ b/src/util/aliasdict.co @@ -1,4 +1,4 @@ -_ = require 'kraken/util/underscore' +_ = require 'limn/util/underscore' /** * @class A mapping of key-value pairs supporting key-aliases. diff --git a/src/util/cascade.co b/src/util/cascade.co index 1c09368..cfe474e 100644 --- a/src/util/cascade.co +++ b/src/util/cascade.co @@ -1,4 +1,4 @@ -_ = require 'kraken/util/underscore' +_ = require 'limn/util/underscore' hasOwn = ({}).hasOwnProperty diff --git a/src/util/event/index.co b/src/util/event/index.co index 18c3e40..f31f727 100644 --- a/src/util/event/index.co +++ b/src/util/event/index.co @@ -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' diff --git a/src/util/event/ready-emitter.co b/src/util/event/ready-emitter.co index 049ad1c..879dcf8 100644 --- a/src/util/event/ready-emitter.co +++ b/src/util/event/ready-emitter.co @@ -1,4 +1,4 @@ -Base = require 'kraken/base/base' +Base = require 'limn/base/base' /** diff --git a/src/util/event/waiting-emitter.co b/src/util/event/waiting-emitter.co index 3f29ddf..876e07b 100644 --- a/src/util/event/waiting-emitter.co +++ b/src/util/event/waiting-emitter.co @@ -1,4 +1,4 @@ -Base = require 'kraken/base/base' +Base = require 'limn/base/base' /** diff --git a/src/util/formatters.co b/src/util/formatters.co index f2c3b95..d545835 100644 --- a/src/util/formatters.co +++ b/src/util/formatters.co @@ -1,7 +1,7 @@ moment = require 'moment' { _, op, -} = require 'kraken/util' +} = require 'limn/util' _fmt = do diff --git a/src/util/index.co b/src/util/index.co index ddcacba..f68bb6f 100644 --- a/src/util/index.co +++ b/src/util/index.co @@ -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' diff --git a/src/util/parser.co b/src/util/parser.co index 1783703..03137d8 100644 --- a/src/util/parser.co +++ b/src/util/parser.co @@ -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' /** diff --git a/src/util/timeseries/csv.co b/src/util/timeseries/csv.co index e89053b..4599630 100644 --- a/src/util/timeseries/csv.co +++ b/src/util/timeseries/csv.co @@ -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 diff --git a/src/util/timeseries/index.co b/src/util/timeseries/index.co index b583a6b..c729d0a 100644 --- a/src/util/timeseries/index.co +++ b/src/util/timeseries/index.co @@ -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' diff --git a/src/util/timeseries/timeseries.co b/src/util/timeseries/timeseries.co index 8fad863..42c3f0f 100644 --- a/src/util/timeseries/timeseries.co +++ b/src/util/timeseries/timeseries.co @@ -1,4 +1,4 @@ -_ = require 'kraken/util/underscore' +_ = require 'limn/util/underscore' diff --git a/src/util/underscore/index.co b/src/util/underscore/index.co index f59c17f..de956ca 100644 --- a/src/util/underscore/index.co +++ b/src/util/underscore/index.co @@ -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 diff --git a/test/test-proxy-server.co b/test/test-proxy-server.co index c3a4609..5693416 100755 --- a/test/test-proxy-server.co +++ b/test/test-proxy-server.co @@ -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 }) diff --git a/test/util/cascade-test.co b/test/util/cascade-test.co index afaebe8..1ca1302 100644 --- a/test/util/cascade-test.co +++ b/test/util/cascade-test.co @@ -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 diff --git a/test/util/underscore/underscore-object-test.co b/test/util/underscore/underscore-object-test.co index f2c635a..3dc166e 100644 --- a/test/util/underscore/underscore-object-test.co +++ b/test/util/underscore/underscore-object-test.co @@ -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) -> diff --git a/www/d3-test-bar.jade b/www/d3-test-bar.jade index 82f0eb5..1caaa00 100644 --- a/www/d3-test-bar.jade +++ b/www/d3-test-bar.jade @@ -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(){ diff --git a/www/d3-test-line.jade b/www/d3-test-line.jade index ab70d61..20dcfac 100644 --- a/www/d3-test-line.jade +++ b/www/d3-test-line.jade @@ -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(){ diff --git a/www/d3-test.jade b/www/d3-test.jade index 968e48f..8871f67 100644 --- a/www/d3-test.jade +++ b/www/d3-test.jade @@ -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(){ diff --git a/www/dashboard/view.jade b/www/dashboard/view.jade index 78a56fa..8dbbe93 100644 --- a/www/dashboard/view.jade +++ b/www/dashboard/view.jade @@ -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) diff --git a/www/geo.jade b/www/geo.jade index c7f3d30..ddcbd2b 100644 --- a/www/geo.jade +++ b/www/geo.jade @@ -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 diff --git a/www/graph/edit.jade b/www/graph/edit.jade index e9db138..bfa7732 100644 --- a/www/graph/edit.jade +++ b/www/graph/edit.jade @@ -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) diff --git a/www/graph/index.jade b/www/graph/index.jade index 9d7d68b..f8b87a6 100644 --- a/www/graph/index.jade +++ b/www/graph/index.jade @@ -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) diff --git a/www/graph/view.jade b/www/graph/view.jade index ef1345d..aa5fd68 100644 --- a/www/graph/view.jade +++ b/www/graph/view.jade @@ -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) diff --git a/www/misc/numbers.co b/www/misc/numbers.co index d04237b..cbe9428 100644 --- a/www/misc/numbers.co +++ b/www/misc/numbers.co @@ -1,4 +1,4 @@ -_ = require 'kraken/util/underscore' +_ = require 'limn/util/underscore' config = tbody = null diff --git a/www/misc/numbers.jade b/www/misc/numbers.jade index d6e630a..ecf547e 100644 --- a/www/misc/numbers.jade +++ b/www/misc/numbers.jade @@ -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") diff --git a/www/misc/test.co b/www/misc/test.co index 21f3d13..4996c94 100644 --- a/www/misc/test.co +++ b/www/misc/test.co @@ -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 diff --git a/www/modules.yaml b/www/modules.yaml index f136df3..dcf3d6c 100644 --- a/www/modules.yaml +++ b/www/modules.yaml @@ -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