{"id":17222820,"url":"https://github.com/cheind/rlayout","last_synced_at":"2025-03-25T16:22:01.959Z","repository":{"id":28814935,"uuid":"32338136","full_name":"cheind/rlayout","owner":"cheind","description":"Automatically exported from code.google.com/p/rlayout","archived":false,"fork":false,"pushed_at":"2015-03-31T18:53:55.000Z","size":392,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-30T14:24:44.785Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-16T16:29:29.000Z","updated_at":"2015-03-31T18:53:55.000Z","dependencies_parsed_at":"2022-09-05T02:21:52.211Z","dependency_job_id":null,"html_url":"https://github.com/cheind/rlayout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheind%2Frlayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheind%2Frlayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheind%2Frlayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheind%2Frlayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheind","download_url":"https://codeload.github.com/cheind/rlayout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245496217,"owners_count":20624855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T04:06:26.247Z","updated_at":"2025-03-25T16:22:01.927Z","avatar_url":"https://github.com/cheind.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"RLayout is motivated by the fact that packaging software for distribution can be a tedious tasks. Often files from various sources need to be copied and filtered, including but not limited to documentation, binaries and source code. Additional external information needs to be downloaded such as the latest test results or the latest wording of the license agreement. Hours later, after zipping everything up, your software is ready to be released.\r\n\r\nRLayout originates in the idea relieve the developer of performing these tasks manually. RLayout is, of course, not limited to process of the packaging of software releases.\r\n\r\nRLayout offers the following features\r\n  * Import from your local file system using flexible globbing expressions.\r\n  * Import from ftp sources.\r\n  * Import from http sources.\r\n  * Export packages to the local file system.\r\n  * Export packages as compressed zip files.\r\n  * Simple extension API to provide custom importers and exporters.\r\n\r\n## Example ##\r\nHere is an example that shows importers and exporters work together\r\n\r\n```\r\n# Bundling a RLayout release.\r\n\r\nrequire 'rlayout'\r\nrequire 'rlayout/exporters/lfs_zipfile'\r\n\r\ninclude RLayout\r\n\r\npackage = RLayout.vfs_group(\"RLayout-#{Time.now.strftime(\"%Y-%m-%d\")}\")\r\npackage.lib       \u003c\u003c Importers.lfs_glob('rlayout/**/*.rb')\r\npackage.etc       \u003c\u003c Importers.http_file('http://rlayout.googlecode.com/svn/trunk/source/License')\r\npackage.etc.data  \u003c\u003c Importers.ftp_file('ftp://build.server.org/testdata.zip')\r\npackage           \u003c\u003c Importers.mem_text('readme', 'RLayout - Release ... ')\r\npackage           \u003c\u003c Importers.os_exec('changelog', \r\n                                       'svn log', \r\n                                       :args =\u003e ['http://rlayout.googlecode.com/svn/trunk'])\r\n\r\n# No data has been read until this point.\r\n\r\nruntime = Runtime.new\r\nruntime.exporters \u003c\u003c Exporters.lfs_directory('c:/temp/')\r\nruntime.exporters \u003c\u003c Exporters.lfs_zipfile('c:/temp/myzip.zip')\r\nruntime.run(package, :dry_run =\u003e false)\r\n```\r\n\r\n## Documentation ##\r\nEither generate it from the source yourself by typing\r\n```\r\nrake rdoc\r\n```\r\n\r\n## Design Overview ##\r\nRLayout uses importers to accumulate content from various sources. These RLayout.Importers provide information nodes (VFSNode) for RLayouts virtual file system (VFSGroup). These nodes contain information on the content and methods to read the content in chunks. Once the importing step is completed, RLayout uses exporters (RLayout.Exporters) to package the content of the virtual file system physically.\r\n\r\n## Requirements ##\r\nNon except Ruby. This distribution was tested on Ruby 1.8.6 and Ruby 1.9.1.\r\n\r\n## License ##\r\nRLayout is Copyright (c) 2010 Christoph Heindl. It is free software, and may be redistributed under the terms specified in the License file.\r\n\r\n## Support ##\r\nThe RLayout homepage is http://code.google.com/p/rlayout/. There you will find links to report [issues](http://code.google.com/p/rlayout/issues/list) and the latest source code.\r\nYou might find additional help on the author's homepage http://cheind.wordpress.com. For general questions contact the author via email at christoph.heindl@gmail.com\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheind%2Frlayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheind%2Frlayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheind%2Frlayout/lists"}