{ "info": { "author": "Michael Kerrin", "author_email": "michael.kerrin@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "==================================\nClosure builder zc.buildout recipe\n==================================\n\nThis is a simple wrapper around the closurebuilder tools from the\nClosure project from Google.\n\nDependencies\n============\n\nSetup some JavaScript files.\n\n >>> import os.path\n\n >>> os.mkdir(os.path.join(sample_buildout, 'js'))\n >>> write('js/a.js', '''\n ... goog.provide('pwt.provideA');\n ... \n ... goog.require('pwt.provideB');\n ... ''')\n\n >>> write('js/b.js', '''\n ... goog.provide('pwt.provideB');\n ... ''')\n\n >>> mkdir('js/goog')\n >>> write('js/goog/base.js', open(os.path.join(os.path.dirname(__file__), \"goog/base.js\")).read())\n\nroots\n-----\n\nGenerate a dependency file specifing where all your JavaScript files are\nlocated within your project.\n\n >>> write('buildout.cfg', '''\n ... [buildout]\n ... parts = deps.js\n ...\n ... [deps.js]\n ... recipe = pwt.recipe.closurebuilder:dependency\n ... output = %(dir)s/deps.js\n ... roots = %(dir)s/js\n ... ''' %{'dir': sample_buildout})\n\n >>> print system(buildout)\n Installing deps.js.\n \n\n >>> cat('deps.js')\n // This file was autogenerated by buildout[deps.js].\n // Please do not edit.\n goog.addDependency('a.js', ['pwt.provideA'], ['pwt.provideB']);\n goog.addDependency('b.js', ['pwt.provideB'], []);\n goog.addDependency('goog/base.js', ['goog'], []);\n\n\nroots with prefix\n-----------------\n\nGenerate a dependency file specifing where all your JavaScript files are\nlocated within your project. Sometimes files are served under different\nnamespaces, then we use the root_with_prefix option.\n\n >>> write('buildout.cfg', '''\n ... [buildout]\n ... parts = deps.js\n ...\n ... [deps.js]\n ... recipe = pwt.recipe.closurebuilder:dependency\n ... output = %(dir)s/deps.js\n ... root_with_prefix = %(dir)s/js /media\n ... ''' %{'dir': sample_buildout})\n\n >>> print system(buildout)\n Uninstalling deps.js.\n Installing deps.js.\n \n\n >>> cat('deps.js')\n // This file was autogenerated by buildout[deps.js].\n // Please do not edit.\n goog.addDependency('/media/a.js', ['pwt.provideA'], ['pwt.provideB']);\n goog.addDependency('/media/b.js', ['pwt.provideB'], []);\n goog.addDependency('/media/goog/base.js', ['goog'], []);\n\n\nCompile\n=======\n\nUsing the information above, generate a small minimized version of your\nJavaScript application.\n\n >>> write('buildout.cfg', '''\n ... [buildout]\n ... parts = deps.js compiled.js\n ...\n ... [deps.js]\n ... recipe = pwt.recipe.closurebuilder:dependency\n ... output = %(dir)s/d1.js\n ... roots = %(dir)s/js\n ...\n ... [compiled.js]\n ... recipe = pwt.recipe.closurebuilder:compile\n ... dependency = deps.js\n ... output = %(dir)s\n ... inputs = %(dir)s/js/a.js\n ... ''' %{'dir': sample_buildout})\n\n >>> output = system(buildout)\n >>> output == '''root: Compiling with the following command: java -jar %(jar)s --js %(dir)s/js/goog/base.js --js %(dir)s/js/b.js --js %(dir)s/js/a.js\n ... Uninstalling deps.js.\n ... Installing deps.js.\n ... Installing compiled.js.\n ... ''' %{'jar': os.path.join(os.path.dirname(__file__), 'compiler-1111.jar'),\n ... 'dir': sample_buildout}\n True\n\n >>> ls(sample_buildout)\n - .installed.cfg\n - 0fb0e24aea59f6281f3c615ffe650823.js\n d bin\n - buildout.cfg\n - d1.js\n d develop-eggs\n d eggs\n d js\n d parts\n\nWe can also specify extra files that might not have goog.provide declarations\nin them so won't be picked up by the depswriter recipe.\n\n >>> write('js/c.js', '''\n ... alert('c');\n ... ''')\n\n >>> write('buildout.cfg', '''\n ... [buildout]\n ... parts = deps.js compiled.js\n ...\n ... [deps.js]\n ... recipe = pwt.recipe.closurebuilder:dependency\n ... output = %(dir)s/d1.js\n ... roots = %(dir)s/js\n ...\n ... [compiled.js]\n ... recipe = pwt.recipe.closurebuilder:compile\n ... dependency = deps.js\n ... output = %(dir)s\n ... inputs = %(dir)s/js/a.js\n ... extra_js = js/c.js\n ... ''' %{'dir': sample_buildout})\n\n >>> output = system(buildout)\n >>> output == '''root: Compiling with the following command: java -jar %(jar)s --js js/c.js --js %(dir)s/js/goog/base.js --js %(dir)s/js/b.js --js %(dir)s/js/a.js\n ... Uninstalling compiled.js.\n ... Updating deps.js.\n ... Installing compiled.js.\n ... ''' %{'jar': os.path.join(os.path.dirname(__file__), 'compiler-1111.jar'),\n ... 'dir': sample_buildout}\n True\n\n >>> ls(sample_buildout)\n - .installed.cfg\n - b68ab8e7a5aa2b2787d35e9b762fb191.js\n d bin\n - buildout.cfg\n - d1.js\n d develop-eggs\n d eggs\n d js\n d parts", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mkerrin/pwt.recipe.closurebuilder", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pwt.recipe.closurebuilder", "package_url": "https://pypi.org/project/pwt.recipe.closurebuilder/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pwt.recipe.closurebuilder/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/mkerrin/pwt.recipe.closurebuilder" }, "release_url": "https://pypi.org/project/pwt.recipe.closurebuilder/0.9.8/", "requires_dist": null, "requires_python": null, "summary": "zc.buildout recipe for closurebuilder", "version": "0.9.8" }, "last_serial": 796825, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "f9ff81237c2983fa18c449ade1ee71f4", "sha256": "24b4aad54455b6495eeb590cec312c5c8da770499c6c288f5129123b60a4a07d" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.tar.gz", "has_sig": false, "md5_digest": "f9ff81237c2983fa18c449ade1ee71f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3791, "upload_time": "2011-02-21T19:26:17", "url": "https://files.pythonhosted.org/packages/48/e4/4cf06dbe076b5a219de7aa2caf3209d18902d0f20cf03557ed44011851d2/pwt.recipe.closurebuilder-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "e4f0e78c12787d01f46f58ba6849dabb", "sha256": "2a6834645070fd6a5777586d469e35e4d051874c3fa450b2c5f26228d290452e" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.1.tar.gz", "has_sig": false, "md5_digest": "e4f0e78c12787d01f46f58ba6849dabb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3811098, "upload_time": "2011-02-21T20:18:39", "url": "https://files.pythonhosted.org/packages/2b/7d/5f007ce9e14ebec207dbacd42582a48373b119b7b92a193c14b8ba1a57c4/pwt.recipe.closurebuilder-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "3f4d67fbb5285ae295995d0007152124", "sha256": "edbff6a13b95e186843a49b9b7a214f282ad24aa8be5a30b04d1f966d6724306" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.2.tar.gz", "has_sig": false, "md5_digest": "3f4d67fbb5285ae295995d0007152124", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3811286, "upload_time": "2011-02-22T15:29:36", "url": "https://files.pythonhosted.org/packages/a1/03/4fdd40eb28286cbfaf774ab094eafa5993985d3f9a8fd3720faf2ef1d0de/pwt.recipe.closurebuilder-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "793a59203dc188123708ffacb47fad88", "sha256": "ac7eb62573b60e2b552c4e877b00bdeaf936e94cc69664580ea10dc7d3ecbafd" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.3.tar.gz", "has_sig": false, "md5_digest": "793a59203dc188123708ffacb47fad88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27557, "upload_time": "2011-04-04T12:25:40", "url": "https://files.pythonhosted.org/packages/b8/23/a9c4a57b9af4193f56bab0070f39a6a9ad1d79f5bb3384bf9bdc27576162/pwt.recipe.closurebuilder-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "80480eed62e02fd2946988a7a0011bd7", "sha256": "c34839a9b7126ced40d55bb98e6b52594ecf871c05490ce1ac6cb0d9b548a599" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.4.tar.gz", "has_sig": false, "md5_digest": "80480eed62e02fd2946988a7a0011bd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3877671, "upload_time": "2011-05-18T14:34:37", "url": "https://files.pythonhosted.org/packages/7d/16/7376a4829ba4a2bb72ac41a3b952eadce60b6d846697759e6762676d6040/pwt.recipe.closurebuilder-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "e1a944bf497703bd288a5afcab0a5934", "sha256": "aecbc538dfad59b550c449b7260fb89244da893a155153a81aa7b75ad3383604" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.5.tar.gz", "has_sig": false, "md5_digest": "e1a944bf497703bd288a5afcab0a5934", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3959960, "upload_time": "2011-05-20T16:39:21", "url": "https://files.pythonhosted.org/packages/31/ba/eab8c9d938faf12e88f93a879ce6c05cb5983f6a271bc1aecaa57f5e8389/pwt.recipe.closurebuilder-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "66e950ecaf85e440fcf8d63e0e2aa165", "sha256": "f818030d1900bec80c77448f455f48d23e1583106692ba978c9d80767c4d72d3" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.6.tar.gz", "has_sig": false, "md5_digest": "66e950ecaf85e440fcf8d63e0e2aa165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3960209, "upload_time": "2011-07-11T18:15:43", "url": "https://files.pythonhosted.org/packages/f2/a6/1cd3c5f1b321b2c194dbe55c4ffe9124bc80f845371272bc7c3f1d3665b0/pwt.recipe.closurebuilder-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "b02e04df0b34abae584224ef94aa36c5", "sha256": "a443273b3f8d97f85378c1a4860a61e382a5e919eb37f873951a2cda82291f49" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.7.tar.gz", "has_sig": false, "md5_digest": "b02e04df0b34abae584224ef94aa36c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3960187, "upload_time": "2011-07-12T13:25:33", "url": "https://files.pythonhosted.org/packages/24/55/28bc59edd1a5f90d0d4d4810ab7c37ed0cb7906eb0afd47b4d6f8292fb8c/pwt.recipe.closurebuilder-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "1d40873bf6f698e002a0192ba1e262f8", "sha256": "9121c5a7e7042060383984c268a7a87db6eec370150a5dd9446e0d53708109b7" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.8.tar.gz", "has_sig": false, "md5_digest": "1d40873bf6f698e002a0192ba1e262f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3960299, "upload_time": "2011-10-25T15:22:33", "url": "https://files.pythonhosted.org/packages/eb/be/8be7d2eb2e860096c77cdd2c04c9a29ccd4dbbad2277e2694f3e6cc2e210/pwt.recipe.closurebuilder-0.9.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1d40873bf6f698e002a0192ba1e262f8", "sha256": "9121c5a7e7042060383984c268a7a87db6eec370150a5dd9446e0d53708109b7" }, "downloads": -1, "filename": "pwt.recipe.closurebuilder-0.9.8.tar.gz", "has_sig": false, "md5_digest": "1d40873bf6f698e002a0192ba1e262f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3960299, "upload_time": "2011-10-25T15:22:33", "url": "https://files.pythonhosted.org/packages/eb/be/8be7d2eb2e860096c77cdd2c04c9a29ccd4dbbad2277e2694f3e6cc2e210/pwt.recipe.closurebuilder-0.9.8.tar.gz" } ] }