Difference between revisions of "Cane"
From IokeWiki
					
										
					
					m (→Implementation Ideas)  | 
				 (→Implementation Ideas)  | 
				||
| Line 15: | Line 15: | ||
* when directory is found cane adds it to load path and explicitly use()s library init.ik file  | * when directory is found cane adds it to load path and explicitly use()s library init.ik file  | ||
* init.ik file may add directories from library to load path  | * init.ik file may add directories from library to load path  | ||
| + | * on installing a new library cane should automatically run the library's specs provide a status report (this should be presented as to encourage good test coverage)  | ||
| + | * on installing a new library cane should run dokgen to generate documentation for that library  | ||
From library developer's perspective this means that creating new library is as simple as:  | From library developer's perspective this means that creating new library is as simple as:  | ||
| Line 25: | Line 27: | ||
* adding cane('library_name') to main file  | * adding cane('library_name') to main file  | ||
* use()ing any needed files from library  | * use()ing any needed files from library  | ||
| + | |||
| + | Wish list for future iterations of cane  | ||
| + | * A cane server to serve library documentation  | ||
Revision as of 14:48, 22 March 2009
Cane
Cane is a library/application packaging and sharing system.
Implementation Ideas
First iteration - for sharing libraries between early adopters only.
Let's start assume that Ioke and Ioke-related libraries live in the same directory on developer's desktop, be it ~/projects or ~/Projects/IokeRelated.
Implementation:
- Ioke should provide method to add load paths (addLoadPath) to current runtime (absolute or relative to file from which was called)
 - Ioke should provide method called cane that accepts name of library
 - when cane() is invoked it tries to find directory with name of library in starting with parent directory and going up
 - when directory is found cane adds it to load path and explicitly use()s library init.ik file
 - init.ik file may add directories from library to load path
 - on installing a new library cane should automatically run the library's specs provide a status report (this should be presented as to encourage good test coverage)
 - on installing a new library cane should run dokgen to generate documentation for that library
 
From library developer's perspective this means that creating new library is as simple as:
- creating new directory parallel to Ioke checkout
 - adding library files in structure they like
 - adding init.ik to specify which directories make the library
 
From library user's perspective using library means:
- checking out source code in parallel to Ioke directory (and project's directory as well)
 - adding cane('library_name') to main file
 - use()ing any needed files from library
 
Wish list for future iterations of cane
- A cane server to serve library documentation