From dd45991321c66db07b5ac52a2af401bf93e355da Mon Sep 17 00:00:00 2001 From: Rufus Pollock Date: Sat, 23 Jun 2012 21:36:31 +0100 Subject: [PATCH] [#162,refactor][s]: backend fetch method dataset argument is simple JS object not backbone Dataset. * Helps make Backends simpler and more independent of Model --- src/backend/dataproxy.js | 6 +++--- src/backend/elasticsearch.js | 5 ++++- src/backend/gdocs.js | 9 +++++++-- src/model.js | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/backend/dataproxy.js b/src/backend/dataproxy.js index c16f2cf4..8ce7c025 100644 --- a/src/backend/dataproxy.js +++ b/src/backend/dataproxy.js @@ -12,9 +12,9 @@ this.recline.Backend.DataProxy = this.recline.Backend.DataProxy || {}; // Load data from a URL via the [DataProxy](http://github.com/okfn/dataproxy). my.fetch = function(dataset) { var data = { - url: dataset.get('url'), - 'max-results': dataset.get('size') || dataset.get('rows') || 1000, - type: dataset.get('format') || '' + url: dataset.url, + 'max-results': dataset.size || dataset.rows || 1000, + type: dataset.format || '' }; var jqxhr = $.ajax({ url: my.dataproxy_url, diff --git a/src/backend/elasticsearch.js b/src/backend/elasticsearch.js index 1db060d9..17ee688c 100644 --- a/src/backend/elasticsearch.js +++ b/src/backend/elasticsearch.js @@ -3,11 +3,14 @@ this.recline.Backend = this.recline.Backend || {}; this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {}; (function($, my) { + my.fetch = function(dataset) { + }; + // ## ElasticSearch Wrapper // // Connecting to [ElasticSearch](http://www.elasticsearch.org/) endpoints. // @param {String} endpoint: url for ElasticSearch type/table, e.g. for ES running - // on localhost:9200 with index // twitter and type tweet it would be: + // on http://localhost:9200 with index twitter and type tweet it would be: // //
http://localhost:9200/twitter/tweet
// diff --git a/src/backend/gdocs.js b/src/backend/gdocs.js index bd855cd4..085ac385 100644 --- a/src/backend/gdocs.js +++ b/src/backend/gdocs.js @@ -12,6 +12,12 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {}; // Dataset must have a url attribute pointing to the Gdocs or its JSON feed e.g. //
   // var dataset = new recline.Model.Dataset({
+  //     url: 'https://docs.google.com/spreadsheet/ccc?key=0Aon3JiuouxLUdGlQVDJnbjZRSU1tUUJWOUZXRG53VkE#gid=0'
+  //   },
+  //   'gdocs'
+  // );
+  //
+  // var dataset = new recline.Model.Dataset({
   //     url: 'https://spreadsheets.google.com/feeds/list/0Aon3JiuouxLUdDQwZE1JdV94cUd6NWtuZ0IyWTBjLWc/od6/public/values?alt=json'
   //   },
   //   'gdocs'
@@ -22,10 +28,9 @@ this.recline.Backend.GDocs = this.recline.Backend.GDocs || {};
   //
   // * fields: array of Field objects
   // * records: array of objects for each row
-  //  
   my.fetch = function(dataset) {
     var dfd = $.Deferred(); 
-    var url = my.getSpreadsheetAPIUrl(dataset.get('url'));
+    var url = my.getSpreadsheetAPIUrl(dataset.url);
     $.getJSON(url, function(d) {
       result = my.parseData(d);
       var fields = _.map(result.fields, function(fieldId) {
diff --git a/src/model.js b/src/model.js
index 765c14c1..ab0d47b5 100644
--- a/src/model.js
+++ b/src/model.js
@@ -79,7 +79,7 @@ my.Dataset = Backbone.Model.extend({
     var dfd = $.Deferred();
     // TODO: fail case;
     if (this.backend !== recline.Backend.Memory) {
-      this.backend.fetch(this).then(handleResults)
+      this.backend.fetch(this.toJSON()).then(handleResults)
     } else {
       // special case where we have been given data directly
       handleResults({