Project

ruby-quilt

0.0
No commit activity in last 3 years
No release in over 3 years
A file stitcher that maintains versions and can fetch additional versions from a server.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0.8.7, ~> 0.8
>= 0.2.3, ~> 0.2
>= 0.5.3, ~> 0.5

Runtime

>= 0.0.14, ~> 0.0
>= 0.8.1, ~> 0.8
>= 1.6.6, ~> 1.6
>= 0.1.2, ~> 0.1
 Project Readme

About Ruby Quilt

Ruby Quilt is a simple way to stitch files together. Ruby Quilt on github.

Installation

gem install ruby-quilt

Usage

require 'quilt'
config = {
  :local_path => "<local path for versions>", // Required
  :remote_host => "<remote host for fetching versions>", // Optional
  :remote_port => "<remote port for fetching versions>", // Optional
  :remote_path => "<base remote path for fetching versions>", // Optional
}
quilt = Quilt.new(config)
# selector = array of module names or selector proc that takes a module name and returns true or
#            false depending on whether or not to include the module
quilt.stitch(selector, "<version number>");

Path Structure

local_path

local_path should point to a directory contains the following directory structure for each version:

<version name>/
<version name>/manifest.json

manifest.json has the following format:

{
  "header" : "<header file>",
  "footer" : "<footer file>",
  "common" : [
    "<module file>",
    ...
  ],
  "optional" : {
    "<module file>" : [ "<dependancy module name>", ... ],
    ...
  }
}

Where each <module file> will point to a module to stitch. The filename should be <module name>

The modules will be stitched in the following order:

header
common (in the order they were present in the array)
optional (the only ordering that is guarenteed is: dependancies will be before their dependant modules)
footer

Circular dependancies will be shortcircuited and an error message will be sent to console.error.


remote_path

Note: This is optional.

remote_host, remote_port, and remote_path together should point to a server which contains version tarballs to download at the following path:

http://remote_host:remote_portremote_path/<version name>.tgz

Note that remote_path must contain the leading slash and the version archive should be a gzipped tarball. The archive should contain the same directory structure as specified in the local_path section (without the base <version name> directory).