src/js/data.js
author hamidouk
Fri, 18 Nov 2011 16:25:22 +0100
branchtweet-widget
changeset 278 ff20c80c6845
parent 248 fc01dc03f135
child 291 e942a49240f4
permissions -rw-r--r--
added a minimize functionality to the tweetwidget.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     1
/* data.js - this file deals with how the players gets and sends data */
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     2
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
     3
IriSP.DataLoader = function() {
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
     4
  this._cache = {};
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
     5
};
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
     6
247
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
     7
IriSP.DataLoader.prototype.get = function(url, callback) {
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
     8
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
     9
  var base_url = url.split("&")[0]
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    10
  if (this._cache.hasOwnProperty(url)) {
247
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    11
    callback(this._cache[base_url]);
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    12
  } else {
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    13
    /* we need a closure because this gets lost when it's called back */
247
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    14
    // uncomment you don't want to use caching.
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    15
    // IriSP.jQuery.get(url, callback);
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    16
    
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    17
    IriSP.jQuery.get(url, (function(obj) {      
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    18
                               return function(data) {
247
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    19
                                  obj._cache[base_url] = data;      
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    20
                                  callback(obj._cache[base_url]);
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    21
                                }; 
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    22
                              })(this));
247
69bc26f879e6 activated url caching.
hamidouk
parents: 184
diff changeset
    23
    
61
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    24
       
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    25
  }
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    26
}
dc7b5ed7b02b DataLoader, first draft.
hamidouk
parents: 44
diff changeset
    27
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    28
/* the base abstract "class" */
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    29
IriSP.Serializer = function(DataLoader, url) {
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    30
  this._DataLoader = DataLoader;
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    31
  this._url = url;
184
a4be54204b71 fixed subtle bug (fun.apply vs fun.call) in sync.
hamidouk
parents: 174
diff changeset
    32
  this._data = [];
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    33
};
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    34
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    35
IriSP.Serializer.prototype.serialize = function(data) { };
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    36
IriSP.Serializer.prototype.deserialize = function(data) {};
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    37
70
3f86d4126491 added some changes to IriSP.Serializer.
hamidouk
parents: 69
diff changeset
    38
IriSP.Serializer.prototype.currentMedia = function() {  
3f86d4126491 added some changes to IriSP.Serializer.
hamidouk
parents: 69
diff changeset
    39
};
3f86d4126491 added some changes to IriSP.Serializer.
hamidouk
parents: 69
diff changeset
    40
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    41
IriSP.Serializer.prototype.sync = function(callback) {  
184
a4be54204b71 fixed subtle bug (fun.apply vs fun.call) in sync.
hamidouk
parents: 174
diff changeset
    42
  callback.call(this, this._data);  
70
3f86d4126491 added some changes to IriSP.Serializer.
hamidouk
parents: 69
diff changeset
    43
};
3f86d4126491 added some changes to IriSP.Serializer.
hamidouk
parents: 69
diff changeset
    44
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    45
IriSP.SerializerFactory = function(DataLoader) {
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    46
  this._dataloader = DataLoader;
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    47
};
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    48
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    49
IriSP.SerializerFactory.prototype.getSerializer = function(metadataOptions) {
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    50
  /* This function returns serializer set-up with the correct
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    51
     configuration - takes a metadata struct describing the metadata source
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    52
  */
174
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    53
  
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    54
  if (metadataOptions === undefined)
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    55
    /* return an empty serializer */
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    56
    return IriSP.Serializer("", "");
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    57
            
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    58
  switch(metadataOptions.type) {
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    59
    case "json":
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    60
      return new IriSP.JSONSerializer(this._dataloader, metadataOptions.src);
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    61
      break;
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    62
    
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    63
    case "dummy": /* only used for unit testing - not defined in production */
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    64
      return new IriSP.MockSerializer(this._dataloader, metadataOptions.src);
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    65
      break;
174
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    66
    
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    67
    case "empty":
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    68
      return new IriSP.Serializer("", "empty");
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    69
      break;
128
f3fec80dd31c renames and inheritance bug fixes.
hamidouk
parents: 108
diff changeset
    70
      
174
7a6450d251fc added a new serializer - the "empty" serializer, for those widgets who don't
hamidouk
parents: 128
diff changeset
    71
    default:      
65
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    72
      return undefined;
6a8cae20f190 Added new unit tests and changes to the data classes.
hamidouk
parents: 61
diff changeset
    73
  }
248
fc01dc03f135 removed a bunch of dead code.
hamidouk
parents: 247
diff changeset
    74
};