Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Unit/s

 [1/1] from: al::bri::xtra::co::nz at: 24-Nov-2000 19:49


Here's %Units.r. It acts a bit like C's #include function. Andrew Martin ICQ: 26227169 http://members.nbci.com/AndrewMartin/ -><- [ Rebol [ Name: 'Units Title: "Units" File: %Units.r Author: "Andrew Martin" eMail: [Al--Bri--xtra--co--nz] Date: 5/November/2000 Home: http://members.nbci.com/AndrewMartin/Rebol/Units/Units.r Version: 1.1.0 History: [ 1.1.0 "Allowed 'Unit to take blocks of filenames." 1.0.0 "Original" ] ] Unit!: make object! [ Units: make block! 0 Do-Once: func [Filename [file!]] [ throw-on-error [ Filename: clean-path Filename all [ not found? find Units Filename ( do Filename append Units Filename true ) ] ] ] set 'Unit func [[catch] Filename [file! block!]] [ throw-on-error [ either block? Filename [ foreach File Filename [ Do-Once File ] ][ Do-Once Filename ] ] ] ] Units: function [ Directory [file!] Units [word!] Filter [block!] ][ Unit Original-Directory Headers Files Script Header ][ Unit: none Original-Directory: what-dir Headers: make block! 0 error? try [ change-dir Directory Unit: make object! compose [ Directory: what-dir (to set-word! Units) make block! 0 ] Files: read %. foreach File Files [ if all [ not dir? File any [ found? find/tail File ".r" found? find/tail File ".rip" ] ][ Script: load/header File Header: first Script if all bind bind Filter 'Header 'File [ do Script append Headers reduce [to set-word! Header/Name Header] ] ] ] set in Unit Units make object! Headers ] change-dir Original-Directory Unit ] Patches: Units %../Patches/ 'Patch [ not none? in Header 'File Header/File = File not none? in Header 'Patch Header/Patch = Header/Name ] Enhancements: Units %../Enhancements/ 'Enhancement [ not none? in Header 'File Header/File = File not none? in Header 'Enhancement Header/Enhancement = Header/Name ] ]