Sha256: 396fa2b67478e7ef2fa06be4acba81c13fc6230ea289f52ea5d65032d791db34

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

//Load the requirejs optimizer
var requirejs = require('<%= rjs_path %>'),
    //Set up basic config, include config that is
    //common to all the optimize() calls.
    basConfig = <%= JSON.pretty_generate(build_config) %>;

// Function used to mix in baseConfig to a new config target
function mix(target) {
    for (var prop in basConfig) {
        if (basConfig.hasOwnProperty(prop)) {
            target[prop] = basConfig[prop];
        }
    }
    return target;
}

var module_specs = [
<% build_config['modules'].each do |m| %>
  {
    name: "<%= m['name'] %>",
    <% if m['include'] %>
    include: [<%= m['include'].map {|i| "'#{i}'" }.join(", ") %>],
    <% end %>
    <% if m['exclude'] %>
    exclude: [<%= m['exclude'].map {|i| "'#{i}'" }.join(", ") %>],
    <% end %>

    out: '<%= module_path_for m['name'] %>'
  },
<% end %>
];

// Do a series of builds of individual files, using the args suggested by:
// http://requirejs.org/docs/optimization.html#onejs
//
// r.js will eventually need a nested call idiom to handle async 
// builds.  Anticipating that need.
var async_runner = module_specs.reduceRight(function(prev, curr) {
  return function (buildReportText) { 
    requirejs.optimize(mix(curr), prev);
  };
}, function(buildReportText) {} );

async_runner();

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
requirejs-rails-0.5.5 lib/requirejs/rails/rjs_driver.js.erb
requirejs-rails-0.5.4 lib/requirejs/rails/rjs_driver.js.erb