[#17,backend][s]: add readonly attribute on backends indicating whether they are 'read-only'.

This commit is contained in:
Rufus Pollock
2012-04-22 00:03:59 +01:00
parent 67ff757722
commit 31d829f53f
6 changed files with 18 additions and 0 deletions

View File

@@ -32,6 +32,13 @@ this.recline.Backend = this.recline.Backend || {};
// backends (see recline.Model.Dataset.initialize). // backends (see recline.Model.Dataset.initialize).
__type__: 'base', __type__: 'base',
// ### readonly
//
// Class level attribute indicating that this backend is read-only (that
// is, cannot be written to).
readonly: true,
// ### sync // ### sync
// //
// An implementation of Backbone.sync that will be used to override // An implementation of Backbone.sync that will be used to override

View File

@@ -18,6 +18,7 @@ this.recline.Backend = this.recline.Backend || {};
// Note that this is a **read-only** backend. // Note that this is a **read-only** backend.
my.DataProxy = my.Base.extend({ my.DataProxy = my.Base.extend({
__type__: 'dataproxy', __type__: 'dataproxy',
readonly: true,
defaults: { defaults: {
dataproxy_url: 'http://jsonpdataproxy.appspot.com' dataproxy_url: 'http://jsonpdataproxy.appspot.com'
}, },

View File

@@ -21,6 +21,7 @@ this.recline.Backend = this.recline.Backend || {};
// <pre>http://localhost:9200/twitter/tweet</pre> // <pre>http://localhost:9200/twitter/tweet</pre>
my.ElasticSearch = my.Base.extend({ my.ElasticSearch = my.Base.extend({
__type__: 'elasticsearch', __type__: 'elasticsearch',
readonly: true,
_getESUrl: function(dataset) { _getESUrl: function(dataset) {
var out = dataset.get('elasticsearch_url'); var out = dataset.get('elasticsearch_url');
if (out) return out; if (out) return out;

View File

@@ -18,6 +18,7 @@ this.recline.Backend = this.recline.Backend || {};
// </pre> // </pre>
my.GDoc = my.Base.extend({ my.GDoc = my.Base.extend({
__type__: 'gdoc', __type__: 'gdoc',
readonly: true,
getUrl: function(dataset) { getUrl: function(dataset) {
var url = dataset.get('url'); var url = dataset.get('url');
if (url.indexOf('feeds/list') != -1) { if (url.indexOf('feeds/list') != -1) {

View File

@@ -71,6 +71,7 @@ this.recline.Backend = this.recline.Backend || {};
// </pre> // </pre>
my.Memory = my.Base.extend({ my.Memory = my.Base.extend({
__type__: 'memory', __type__: 'memory',
readonly: false,
initialize: function() { initialize: function() {
this.datasets = {}; this.datasets = {};
}, },

View File

@@ -25,6 +25,11 @@ function makeBackendDataset() {
return dataset; return dataset;
} }
test('Memory Backend: readonly', function () {
var backend = new recline.Backend.Memory();
equal(backend.readonly, false);
});
test('Memory Backend: createDataset', function () { test('Memory Backend: createDataset', function () {
var dataset = recline.Backend.createDataset(memoryData.documents, memoryData.fields, memoryData.metadata); var dataset = recline.Backend.createDataset(memoryData.documents, memoryData.fields, memoryData.metadata);
equal(memoryData.metadata.id, dataset.id); equal(memoryData.metadata.id, dataset.id);
@@ -217,6 +222,8 @@ test('DataProxy Backend', function() {
// needed only if not stubbing // needed only if not stubbing
// stop(); // stop();
var backend = new recline.Backend.DataProxy(); var backend = new recline.Backend.DataProxy();
ok(backend.readonly, false);
var dataset = new recline.Model.Dataset({ var dataset = new recline.Model.Dataset({
url: 'http://webstore.thedatahub.org/rufuspollock/gold_prices/data.csv' url: 'http://webstore.thedatahub.org/rufuspollock/gold_prices/data.csv'
}, },