Metadata-Version: 1.0
Name: pwt.recipe.closurebuilder
Version: 0.9.2
Summary: zc.buildout recipe for closurebuilder
Home-page: https://github.com/mkerrin/pwt.recipe.closurebuilder
Author: Michael Kerrin
Author-email: michael.kerrin@gmail.com
License: UNKNOWN
Description: ==================================
        Closure builder zc.buildout recipe
        ==================================
        
        This is a simple wrapper around the closurebuilder tools from the
        Closure project from Google.
        
        Dependencies
        ============
        
        Setup some JavaScript files.
        
          >>> import os.path
        
          >>> os.mkdir(os.path.join(sample_buildout, 'js'))
          >>> write('js/a.js', '''
          ... goog.provide('pwt.provideA');
          ... 
          ... goog.require('pwt.provideB');
          ... ''')
        
          >>> write('js/b.js', '''
          ... goog.provide('pwt.provideB');
          ... ''')
        
          >>> mkdir('js/goog')
          >>> write('js/goog/base.js', open(os.path.join(os.path.dirname(__file__), "goog/base.js")).read())
        
        roots
        -----
        
        Generate a dependency file specifing where all your JavaScript files are
        located within your project.
        
          >>> write('buildout.cfg', '''
          ... [buildout]
          ... parts = deps.js
          ...
          ... [deps.js]
          ... recipe = pwt.recipe.closurebuilder:dependency
          ... output = %(dir)s/deps.js
          ... roots = %(dir)s/js
          ... ''' %{'dir': sample_buildout})
        
          >>> print system(buildout)
          Installing deps.js.
          <BLANKLINE>
        
          >>> cat('deps.js')
          // This file was autogenerated by buildout[deps.js].
          // Please do not edit.
          goog.addDependency('a.js', ['pwt.provideA'], ['pwt.provideB']);
          goog.addDependency('b.js', ['pwt.provideB'], []);
          goog.addDependency('goog/base.js', [], []);
        
        
        roots with prefix
        -----------------
        
        Generate a dependency file specifing where all your JavaScript files are
        located within your project. Sometimes files are served under different
        namespaces, then we use the root_with_prefix option.
        
          >>> write('buildout.cfg', '''
          ... [buildout]
          ... parts = deps.js
          ...
          ... [deps.js]
          ... recipe = pwt.recipe.closurebuilder:dependency
          ... output = %(dir)s/deps.js
          ... root_with_prefix = %(dir)s/js /media
          ... ''' %{'dir': sample_buildout})
        
          >>> print system(buildout)
          Uninstalling deps.js.
          Installing deps.js.
          <BLANKLINE>
        
          >>> cat('deps.js')
          // This file was autogenerated by buildout[deps.js].
          // Please do not edit.
          goog.addDependency('/media/a.js', ['pwt.provideA'], ['pwt.provideB']);
          goog.addDependency('/media/b.js', ['pwt.provideB'], []);
          goog.addDependency('/media/goog/base.js', [], []);
        
        
        Compile
        =======
        
        Using the information above, generate a small minimized version of your
        JavaScript application.
        
          >>> write('buildout.cfg', '''
          ... [buildout]
          ... parts = deps.js compiled.js
          ...
          ... [deps.js]
          ... recipe = pwt.recipe.closurebuilder:dependency
          ... output = %(dir)s/d1.js
          ... roots = %(dir)s/js
          ...
          ... [compiled.js]
          ... recipe = pwt.recipe.closurebuilder:compile
          ... dependency = deps.js
          ... output = %(dir)s
          ... inputs = %(dir)s/js/a.js
          ... ''' %{'dir': sample_buildout})
        
          >>> print system(buildout) #doctest:+ELLIPSIS
          Uninstalling deps.js.
          Installing deps.js.
          Installing compiled.js.
          root: Compiling with the following command: java -jar ...
          <BLANKLINE>
        
          >>> ls(sample_buildout)
          -  .installed.cfg
          d  bin
          -  buildout.cfg
          -  d1.js
          -  db5293d69c7cf152489f73b7221b146d.js
          d  develop-eggs
          d  eggs
          d  js
          d  parts
        
Platform: UNKNOWN
