Sha256: 0e6704891c2bdc0ddfa3ec64e6c9abe771619de9982cbdd55322005964c30e9e

Contents?: true

Size: 1.2 KB

Versions: 6

Compression:

Stored size: 1.2 KB

Contents

//= require zff/lib/jquery/core

var MODULE_PATH = '/assets';

// load module
// $.load(module_name, success_function)
// $.load(module_name, ajax_options)

(function($){
  
  var info = {};
  
  $.load = function(module, opts){
    opts = opts || {};
    
    if($.isFunction(opts)){
      opts = {
        success: opts
      };
    }
    
    if(typeof info[module] === 'undefined'){
      var defaults = {
        url: MODULE_PATH + '/' + module + '.js',
        dataType: 'script'
      };
      
      opts = $.extend(defaults, opts);
      
      var xhr = $.ajax(opts).success(function(){
        info[module].state = 200;
      }).error(function(){
        info[module].state = 500;
      });
      
      info[module] = {
        state: 202,
        xhr: xhr
      };
    }else{
      if(info[module].state === 200){
        if($.isFunction(opts.success)){
          opts.success();
        }
      }
      
      if(info[module].state === 202){
        $.each(['success', 'error', 'complete', 'statusCode'], function(i, type){
          if($.isFunction(opts[type])){
            info[module].xhr = info[module].xhr[type](opts[type]);
          }
        });
      }
    }
    return info[module].state;
  };
})($);

Version data entries

6 entries across 5 versions & 1 rubygems

Version Path
zfben_rails_assets-0.0.6 example/vendor/assets/javascripts/zff/core/core.js
zfben_rails_assets-0.0.5 example/vendor/assets/javascripts/zff/core/core.js
zfben_rails_assets-0.0.4 example/vendor/assets/javascripts/zff/core/core.js
zfben_rails_assets-0.0.3 example/vendor/assets/javascripts/zff/core/core.js
zfben_rails_assets-0.0.2 example/vendor/assets/javascripts/zff/core/core.js
zfben_rails_assets-0.0.2 lib/zfben_rails_assets/assets/javascripts/zff/core/core.js