Sha256: 76d7dfbcd8aa279646575e41e3d362c511e8e5ca8f2777a05e4e76af9f7486b6

Contents?: true

Size: 870 Bytes

Versions: 7

Compression:

Stored size: 870 Bytes

Contents

/*
---
 
script: Resource.Parser.js
 
description: A base class to convert any object to model properties
 
license: Public domain (http://unlicense.org).

authors: Yaroslaff Fedin
  
requires:
  - Resource
  
provides:
  - Resource.Parser
 
...
*/


Resource.Parser = new Class({
  
  integer: function(value) {
    var parsed = parseInt(value);
    return (isNaN(parsed)) ? value : parsed
  },
  
  datetime: function(value) {
    return new Date(Date.parse(value))
  },
  
  'boolean': function(value) {
    return value == 'true'
  },

  array: function(children) {
    return children.map(function(c) { return this.parse(c) }.bind(this))
  }, 
  
  object: function(value) {
    var obj = {}
    Object.each(value, function(val, key) {
      obj[key] = this.parse(val, key)
    }, this)
    return obj
  }
});

Resource.prototype.options.parsers = Resource.Parser;

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lsd_rails-0.1.6 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1.5 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1.4 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1.3 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1.2 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1.1 Packages/mootools-resource/Source/Resource.Parser.js
lsd_rails-0.1 Packages/mootools-resource/Source/Resource.Parser.js