Arthur Axel "fREW" Schmidt > JavaScript-Dependency-Manager > JavaScript::Dependency::Manager

Download:
JavaScript-Dependency-Manager-0.001002.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.001002   Source  

NAME ^

JavaScript::Dependency::Manager - Manage your JavaScript dependencies

VERSION ^

version 0.001002

SYNOPSIS ^

First, annotate your javascript files with provides and/or requires:

 // provides: Ack
 // requires: underscore
 var Ack = _.throttle(function(foo) {
   alert('ACK! ' + foo)
 }, 100)

 // etc, etc

Now you can use JavaScript::Dependency::Manager to automatically create a list of files needed for a given "provision".

 use JavaScript::Dependency::Manager;

 my $mgr = JavaScript::Dependency::Manager->new(
   lib_dir => ['root/js/lib'],
   provisions => {
     underscore => ['root/js/lib/underscore/underscore.js'],
   },
 );

 my @files = $mgr->file_list_for_provisions(['Lynx.ui.form.MWHY']);

Note that I manually set a provision above. That's because underscore is an external library, so I shouldn't edit it's source to set it's provisions.

DESCRIPTION ^

This module simply helps you automatically create a list of necessary files based on a list of "modules", which are merely your way of identifying functions, objects, classes, or whatever else that you would like to load. It will correctly order the list of files to load based on your defined requirements.

TERMS ^

requirement

A requirement is simply a module that a given file needs to run.

provision

A provision is simply a module that a given file has within it.

METHODS ^

file_list_for_provisions

 my @files = $mgr->file_list_for_provisions(['Foo', 'Bar'])

This method returns a list of files needed to load a list of provisions.

ATTRIBUTES ^

lib_dir

required. An ArrayRef of directories to scan to create the list of "requirement"s and "provision"s.

recurse

False by default. Set to true if you want the tool to recurse into subdirectories of the "lib_dir".

scan_files

True by default. Set to false if you want the tool not to scan files at all, but instead use a provided list of "requirement"s and "provision"s.

DEDICATION ^

JavaScript::Dependency::Manager module is dedicated to my namesake, Arthur Dale Schmidt. He was my grandfather as well as the inventor of a chemical called Sand Control 60 (SC60,) which was used in oil fields to reduce the need to redrill entire wells due to sand clogging.

AUTHOR ^

Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Arthur Axel "fREW" Schmidt.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: