joosy 1.2.0.alpha.67 → 1.2.0.alpha.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gruntfile.coffee +1 -1
- data/bower.json +1 -1
- data/build/joosy.js +27 -20
- data/build/joosy/extensions/resources.js +25 -7
- data/package.json +1 -1
- data/source/joosy/application.coffee +1 -1
- data/source/joosy/extensions/resources/base.coffee +34 -11
- data/source/joosy/extensions/resources/rest.coffee +0 -1
- data/source/joosy/modules/dom.coffee +21 -18
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 007fa5ba359b8c5f4c5e52a53b483a285149c575
         | 
| 4 | 
            +
              data.tar.gz: 15ac5b0c7eaf9eb93b08b487b0e493fcd8ec7075
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b33c07dd76c9a907ff66ce830a55f321b3ae54f9d9e5598e0d5c48aeab9d98c9a4ddfbe11a766fbff3c6b80173c22b90716bbabbdcf6fa1b8328361989a8148f
         | 
| 7 | 
            +
              data.tar.gz: 9548d59875b23556613071537c1c09893ac777a7782dfb1fa2284e5de26c0ab3ceffb88f8b60aac3564c76eca419e992ab35529f96a7dce4cd6208782959deb2
         | 
    
        data/Gruntfile.coffee
    CHANGED
    
    | @@ -101,7 +101,7 @@ module.exports = (grunt) -> | |
| 101 101 | 
             
              #
         | 
| 102 102 | 
             
              grunt.registerTask 'default', 'testem'
         | 
| 103 103 |  | 
| 104 | 
            -
              grunt.registerTask 'build', 'grill:compile'
         | 
| 104 | 
            +
              grunt.registerTask 'build', ['bowerize', 'grill:compile']
         | 
| 105 105 |  | 
| 106 106 | 
             
              grunt.registerTask 'test', ->
         | 
| 107 107 | 
             
                grunt.task.run 'coffeelint'
         | 
    
        data/bower.json
    CHANGED
    
    
    
        data/build/joosy.js
    CHANGED
    
    | @@ -511,26 +511,33 @@ | |
| 511 511 | 
             
                  if (!events) {
         | 
| 512 512 | 
             
                    return;
         | 
| 513 513 | 
             
                  }
         | 
| 514 | 
            -
                  return Object.each(events, function( | 
| 515 | 
            -
                    var callback, eventName, match, selector;
         | 
| 516 | 
            -
                     | 
| 517 | 
            -
             | 
| 518 | 
            -
                     | 
| 519 | 
            -
             | 
| 520 | 
            -
                       | 
| 521 | 
            -
             | 
| 522 | 
            -
             | 
| 523 | 
            -
             | 
| 524 | 
            -
             | 
| 525 | 
            -
             | 
| 526 | 
            -
                       | 
| 527 | 
            -
                       | 
| 528 | 
            -
             | 
| 529 | 
            -
                       | 
| 530 | 
            -
             | 
| 531 | 
            -
             | 
| 532 | 
            -
             | 
| 514 | 
            +
                  return Object.each(events, function(keys, method) {
         | 
| 515 | 
            +
                    var callback, eventName, key, match, selector, _i, _len, _ref, _results;
         | 
| 516 | 
            +
                    _ref = keys.split(',');
         | 
| 517 | 
            +
                    _results = [];
         | 
| 518 | 
            +
                    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
         | 
| 519 | 
            +
                      key = _ref[_i];
         | 
| 520 | 
            +
                      key = key.replace(/^\s+/, '');
         | 
| 521 | 
            +
                      if (!Object.isFunction(method)) {
         | 
| 522 | 
            +
                        method = _this[method];
         | 
| 523 | 
            +
                      }
         | 
| 524 | 
            +
                      callback = function(event) {
         | 
| 525 | 
            +
                        return method.call(module, $(this), event);
         | 
| 526 | 
            +
                      };
         | 
| 527 | 
            +
                      match = key.match(_this.eventSplitter);
         | 
| 528 | 
            +
                      eventName = match[1];
         | 
| 529 | 
            +
                      selector = _this.__extractSelector(match[2]);
         | 
| 530 | 
            +
                      if (selector === "") {
         | 
| 531 | 
            +
                        _this.$container.bind(eventName, callback);
         | 
| 532 | 
            +
                        _results.push(Joosy.Modules.Log.debugAs(_this, "" + eventName + " binded on container"));
         | 
| 533 | 
            +
                      } else if (selector === void 0) {
         | 
| 534 | 
            +
                        throw new Error("Unknown element " + match[2] + " in " + (Joosy.Module.__className(_this.constructor)) + " (maybe typo?)");
         | 
| 535 | 
            +
                      } else {
         | 
| 536 | 
            +
                        _this.$container.on(eventName, selector, callback);
         | 
| 537 | 
            +
                        _results.push(Joosy.Modules.Log.debugAs(_this, "" + eventName + " binded on " + selector));
         | 
| 538 | 
            +
                      }
         | 
| 533 539 | 
             
                    }
         | 
| 540 | 
            +
                    return _results;
         | 
| 534 541 | 
             
                  });
         | 
| 535 542 | 
             
                },
         | 
| 536 543 | 
             
                __clearContainer: function() {
         | 
| @@ -2370,7 +2377,7 @@ | |
| 2370 2377 | 
             
                    } else if (Object.isFunction(action)) {
         | 
| 2371 2378 | 
             
                      return action(params);
         | 
| 2372 2379 | 
             
                    } else {
         | 
| 2373 | 
            -
                      throw new "Unknown kind of route action";
         | 
| 2380 | 
            +
                      throw new Error("Unknown kind of route action: " + action);
         | 
| 2374 2381 | 
             
                    }
         | 
| 2375 2382 | 
             
                  });
         | 
| 2376 2383 | 
             
                  return this.initialized = true;
         | 
| @@ -9,18 +9,15 @@ | |
| 9 9 |  | 
| 10 10 | 
             
                Base.include(Joosy.Modules.Events);
         | 
| 11 11 |  | 
| 12 | 
            +
                Base.include(Joosy.Modules.Filters);
         | 
| 13 | 
            +
             | 
| 12 14 | 
             
                Base.prototype.__primaryKey = 'id';
         | 
| 13 15 |  | 
| 14 16 | 
             
                Base.resetIdentity = function() {
         | 
| 15 17 | 
             
                  return Joosy.Resources.Base.identity = {};
         | 
| 16 18 | 
             
                };
         | 
| 17 19 |  | 
| 18 | 
            -
                Base.beforeLoad | 
| 19 | 
            -
                  if (!this.prototype.hasOwnProperty('__beforeLoads')) {
         | 
| 20 | 
            -
                    this.prototype.__beforeLoads = [].concat(this.__super__.__beforeLoads || []);
         | 
| 21 | 
            -
                  }
         | 
| 22 | 
            -
                  return this.prototype.__beforeLoads.push(action);
         | 
| 23 | 
            -
                };
         | 
| 20 | 
            +
                Base.registerPlainFilters('beforeLoad');
         | 
| 24 21 |  | 
| 25 22 | 
             
                Base.primaryKey = function(primaryKey) {
         | 
| 26 23 | 
             
                  return this.prototype.__primaryKey = primaryKey;
         | 
| @@ -93,6 +90,10 @@ | |
| 93 90 | 
             
                  return shim;
         | 
| 94 91 | 
             
                };
         | 
| 95 92 |  | 
| 93 | 
            +
                Base.grab = function(form) {
         | 
| 94 | 
            +
                  return this.build({}).grab(form);
         | 
| 95 | 
            +
                };
         | 
| 96 | 
            +
             | 
| 96 97 | 
             
                Base.__makeShim = function(proto) {
         | 
| 97 98 | 
             
                  var key, shim, value;
         | 
| 98 99 | 
             
                  shim = function() {
         | 
| @@ -137,6 +138,24 @@ | |
| 137 138 | 
             
                  return this;
         | 
| 138 139 | 
             
                };
         | 
| 139 140 |  | 
| 141 | 
            +
                Base.prototype.grab = function(form) {
         | 
| 142 | 
            +
                  var data, field, _i, _len, _ref;
         | 
| 143 | 
            +
                  data = {};
         | 
| 144 | 
            +
                  _ref = $(form).serializeArray();
         | 
| 145 | 
            +
                  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
         | 
| 146 | 
            +
                    field = _ref[_i];
         | 
| 147 | 
            +
                    if (!data[field.name]) {
         | 
| 148 | 
            +
                      data[field.name] = field.value;
         | 
| 149 | 
            +
                    } else {
         | 
| 150 | 
            +
                      if (!(data[field.name] instanceof Array)) {
         | 
| 151 | 
            +
                        data[field.name] = [data[field.name]];
         | 
| 152 | 
            +
                      }
         | 
| 153 | 
            +
                      data[field.name].push(field.value);
         | 
| 154 | 
            +
                    }
         | 
| 155 | 
            +
                  }
         | 
| 156 | 
            +
                  return this.load(data);
         | 
| 157 | 
            +
                };
         | 
| 158 | 
            +
             | 
| 140 159 | 
             
                Base.prototype.__get = function(path) {
         | 
| 141 160 | 
             
                  var target;
         | 
| 142 161 | 
             
                  target = this.__callTarget(path, true);
         | 
| @@ -696,7 +715,6 @@ | |
| 696 715 | 
             
                    this.prototype.__requestOptions(options);
         | 
| 697 716 | 
             
                  } else if (this.prototype.__requestOptions) {
         | 
| 698 717 | 
             
                    Joosy.Module.merge(options, this.prototype.__requestOptions);
         | 
| 699 | 
            -
                    console.log(this.prototype.__requestOptions);
         | 
| 700 718 | 
             
                  }
         | 
| 701 719 | 
             
                  return $.ajax(options);
         | 
| 702 720 | 
             
                };
         | 
    
        data/package.json
    CHANGED
    
    
| @@ -17,10 +17,18 @@ | |
| 17 17 | 
             
            #
         | 
| 18 18 | 
             
            # @include Joosy.Modules.Log
         | 
| 19 19 | 
             
            # @include Joosy.Modules.Events
         | 
| 20 | 
            +
            # @include Joosy.Modules.Filters
         | 
| 21 | 
            +
            #
         | 
| 22 | 
            +
            # @method .beforeLoad(callback)
         | 
| 23 | 
            +
            #   Allows to modify data before it gets stored.
         | 
| 24 | 
            +
            #   You can define several beforeLoad filters that will be chained.
         | 
| 25 | 
            +
            #   @param [Function] action    `(Object) -> Object` to call
         | 
| 26 | 
            +
            #
         | 
| 20 27 | 
             
            #
         | 
| 21 28 | 
             
            class Joosy.Resources.Base extends Joosy.Module
         | 
| 22 29 | 
             
              @include Joosy.Modules.Log
         | 
| 23 30 | 
             
              @include Joosy.Modules.Events
         | 
| 31 | 
            +
              @include Joosy.Modules.Filters
         | 
| 24 32 |  | 
| 25 33 | 
             
              #
         | 
| 26 34 | 
             
              # Default primary key field 'id'
         | 
| @@ -34,16 +42,7 @@ class Joosy.Resources.Base extends Joosy.Module | |
| 34 42 | 
             
              @resetIdentity: ->
         | 
| 35 43 | 
             
                Joosy.Resources.Base.identity = {}
         | 
| 36 44 |  | 
| 37 | 
            -
               | 
| 38 | 
            -
              # Allows to modify data before it gets stored.
         | 
| 39 | 
            -
              # You can define several beforeLoad filters that will be chained.
         | 
| 40 | 
            -
              #
         | 
| 41 | 
            -
              # @param [Function] action    `(Object) -> Object` to call
         | 
| 42 | 
            -
              #
         | 
| 43 | 
            -
              @beforeLoad: (action) ->
         | 
| 44 | 
            -
                unless @::hasOwnProperty '__beforeLoads'
         | 
| 45 | 
            -
                  @::__beforeLoads = [].concat @.__super__.__beforeLoads || []
         | 
| 46 | 
            -
                @::__beforeLoads.push action
         | 
| 45 | 
            +
              @registerPlainFilters 'beforeLoad'
         | 
| 47 46 |  | 
| 48 47 | 
             
              #
         | 
| 49 48 | 
             
              # Sets the field containing primary key.
         | 
| @@ -149,6 +148,14 @@ class Joosy.Resources.Base extends Joosy.Module | |
| 149 148 |  | 
| 150 149 | 
             
                shim
         | 
| 151 150 |  | 
| 151 | 
            +
              #
         | 
| 152 | 
            +
              # Creates new instance of Resource using values from form
         | 
| 153 | 
            +
              #
         | 
| 154 | 
            +
              # @param [DOMElement] form      Form to grab
         | 
| 155 | 
            +
              #
         | 
| 156 | 
            +
              @grab: (form) ->
         | 
| 157 | 
            +
                @build({}).grab form
         | 
| 158 | 
            +
             | 
| 152 159 | 
             
              #
         | 
| 153 160 | 
             
              # Makes base shim-function for making instances through build or making instance clones
         | 
| 154 161 | 
             
              #
         | 
| @@ -193,7 +200,23 @@ class Joosy.Resources.Base extends Joosy.Module | |
| 193 200 | 
             
              load: (data, clear=false) ->
         | 
| 194 201 | 
             
                @data = {} if clear
         | 
| 195 202 | 
             
                @__fillData data
         | 
| 196 | 
            -
                return  | 
| 203 | 
            +
                return @
         | 
| 204 | 
            +
             | 
| 205 | 
            +
              #
         | 
| 206 | 
            +
              # Updates the Resource with a data from given form
         | 
| 207 | 
            +
              #
         | 
| 208 | 
            +
              # @param [DOMElement] form      Form to grab
         | 
| 209 | 
            +
              #
         | 
| 210 | 
            +
              grab: (form) ->
         | 
| 211 | 
            +
                data = {}
         | 
| 212 | 
            +
                for field in $(form).serializeArray()
         | 
| 213 | 
            +
                  unless data[field.name]
         | 
| 214 | 
            +
                    data[field.name] = field.value
         | 
| 215 | 
            +
                  else
         | 
| 216 | 
            +
                    data[field.name] = [data[field.name]] unless data[field.name] instanceof Array
         | 
| 217 | 
            +
                    data[field.name].push field.value
         | 
| 218 | 
            +
             | 
| 219 | 
            +
                @load data
         | 
| 197 220 |  | 
| 198 221 | 
             
              #
         | 
| 199 222 | 
             
              # Getter for wrapped data
         | 
| @@ -110,24 +110,27 @@ Joosy.Modules.DOM = | |
| 110 110 |  | 
| 111 111 | 
             
                return unless events
         | 
| 112 112 |  | 
| 113 | 
            -
                Object.each events, ( | 
| 114 | 
            -
                   | 
| 115 | 
            -
                     | 
| 116 | 
            -
             | 
| 117 | 
            -
                     | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
             | 
| 123 | 
            -
             | 
| 124 | 
            -
                     | 
| 125 | 
            -
             | 
| 126 | 
            -
             | 
| 127 | 
            -
             | 
| 128 | 
            -
             | 
| 129 | 
            -
                     | 
| 130 | 
            -
             | 
| 113 | 
            +
                Object.each events, (keys, method) =>
         | 
| 114 | 
            +
                  for key in keys.split(',')
         | 
| 115 | 
            +
                    key = key.replace(/^\s+/, '')
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                    unless Object.isFunction method
         | 
| 118 | 
            +
                      method = @[method]
         | 
| 119 | 
            +
                    callback = (event) ->
         | 
| 120 | 
            +
                      method.call module, $(this), event
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                    match      = key.match @eventSplitter
         | 
| 123 | 
            +
                    eventName  = match[1]
         | 
| 124 | 
            +
                    selector   = @__extractSelector match[2]
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                    if selector == ""
         | 
| 127 | 
            +
                      @$container.bind eventName, callback
         | 
| 128 | 
            +
                      Joosy.Modules.Log.debugAs @, "#{eventName} binded on container"
         | 
| 129 | 
            +
                    else if selector == undefined
         | 
| 130 | 
            +
                      throw new Error "Unknown element #{match[2]} in #{Joosy.Module.__className @constructor} (maybe typo?)"
         | 
| 131 | 
            +
                    else
         | 
| 132 | 
            +
                      @$container.on eventName, selector, callback
         | 
| 133 | 
            +
                      Joosy.Modules.Log.debugAs @, "#{eventName} binded on #{selector}"
         | 
| 131 134 |  | 
| 132 135 | 
             
              # @private
         | 
| 133 136 | 
             
              __clearContainer: ->
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: joosy
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2.0.alpha. | 
| 4 | 
            +
              version: 1.2.0.alpha.68
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Boris Staal
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2013-08- | 
| 13 | 
            +
            date: 2013-08-30 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: sprockets
         |