distil 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -1
 - data/VERSION +1 -1
 - data/assets/distil.js +359 -0
 - data/bin/distil +33 -10
 - data/distil.gemspec +35 -24
 - data/lib/distil/configurable/file-set.rb +86 -0
 - data/lib/distil/configurable/interpolated.rb +36 -0
 - data/lib/distil/configurable/output-path.rb +25 -0
 - data/lib/distil/configurable/project-path.rb +25 -0
 - data/lib/distil/configurable.rb +164 -0
 - data/lib/distil/error-reporter.rb +63 -0
 - data/lib/distil/product/concatenated.rb +85 -0
 - data/lib/distil/product/css-product.rb +37 -0
 - data/lib/distil/product/debug.rb +34 -0
 - data/lib/distil/product/javascript-base-product.rb +35 -0
 - data/lib/distil/product/javascript-doc-product.rb +61 -0
 - data/lib/distil/product/javascript-product.rb +131 -0
 - data/lib/distil/product/minified.rb +32 -0
 - data/lib/distil/product.rb +97 -0
 - data/lib/distil/project/distil-project.rb +99 -0
 - data/lib/distil/project/external-project.rb +53 -0
 - data/lib/distil/project.rb +78 -0
 - data/lib/distil/source-file/css-file.rb +14 -0
 - data/lib/distil/source-file/html-file.rb +14 -0
 - data/lib/distil/source-file/javascript-file.rb +17 -0
 - data/lib/distil/source-file/json-file.rb +16 -0
 - data/lib/distil/source-file.rb +172 -0
 - data/lib/distil/target.rb +235 -0
 - data/lib/distil/task/css-dependency-task.rb +64 -0
 - data/lib/distil/task/jsl-dependency-task.rb +49 -0
 - data/lib/distil/task/nib-task.rb +72 -0
 - data/lib/distil/task/validate-js-task.rb +75 -0
 - data/lib/distil/task.rb +50 -0
 - data/lib/distil.rb +72 -0
 - data/lib/jsl.conf +4 -0
 - data/vendor/jsl-0.3.0/src/Makefile.ref +16 -6
 - data/vendor/jsl-0.3.0/src/config.mk +32 -2
 - data/vendor/jsl-0.3.0/src/fdlibm/Makefile.ref +1 -2
 - data/vendor/jsl-0.3.0/src/jsl.c +124 -13
 - data/vendor/jsl-0.3.0/src/rules.mk +2 -1
 - metadata +49 -28
 - data/lib/bootstrap-template.js +0 -58
 - data/lib/configurable.rb +0 -161
 - data/lib/file-set.rb +0 -49
 - data/lib/file-types/css-file.rb +0 -12
 - data/lib/file-types/html-file.rb +0 -11
 - data/lib/file-types/javascript-file.rb +0 -24
 - data/lib/file-types/json-file.rb +0 -17
 - data/lib/filter.rb +0 -41
 - data/lib/filters/css-filter.rb +0 -58
 - data/lib/filters/file-reference-filter.rb +0 -30
 - data/lib/filters/jsl-dependency-filter.rb +0 -44
 - data/lib/project.rb +0 -174
 - data/lib/source-file.rb +0 -197
 - data/lib/target.rb +0 -102
 - data/lib/task.rb +0 -212
 - data/lib/tasks/copy-task.rb +0 -17
 - data/lib/tasks/css-task.rb +0 -12
 - data/lib/tasks/javascript-task.rb +0 -206
 - data/lib/tasks/multiple-output-task.rb +0 -140
 - data/lib/tasks/output-task.rb +0 -76
 - data/lib/tasks/single-output-task.rb +0 -104
 - data/lib/tasks/test-task.rb +0 -280
 
| 
         @@ -84,6 +84,11 @@ endif 
     | 
|
| 
       84 
84 
     | 
    
         
             
            ifeq ($(OS_ARCH), CYGWIN32_NT)
         
     | 
| 
       85 
85 
     | 
    
         
             
            	OS_ARCH    := WINNT
         
     | 
| 
       86 
86 
     | 
    
         
             
            endif
         
     | 
| 
      
 87 
     | 
    
         
            +
            ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH)))
         
     | 
| 
      
 88 
     | 
    
         
            +
            	OS_RELEASE          := $(patsubst MINGW32_NT-%,%,$(OS_ARCH))
         
     | 
| 
      
 89 
     | 
    
         
            +
            	OS_ARCH_ENVIRONMENT := MINGW32_NT
         
     | 
| 
      
 90 
     | 
    
         
            +
            	OS_ARCH             := WINNT
         
     | 
| 
      
 91 
     | 
    
         
            +
            endif
         
     | 
| 
       87 
92 
     | 
    
         | 
| 
       88 
93 
     | 
    
         
             
            # Virtually all Linux versions are identical.
         
     | 
| 
       89 
94 
     | 
    
         
             
            # Any distinctions are handled in linux.h
         
     | 
| 
         @@ -96,10 +101,14 @@ else 
     | 
|
| 
       96 
101 
     | 
    
         
             
            ifeq ($(OS_ARCH),Darwin)
         
     | 
| 
       97 
102 
     | 
    
         
             
            OS_CONFIG      := Darwin
         
     | 
| 
       98 
103 
     | 
    
         
             
            else
         
     | 
| 
      
 104 
     | 
    
         
            +
            ifeq ($(OS_ARCH_ENVIRONMENT),MINGW32_NT)
         
     | 
| 
      
 105 
     | 
    
         
            +
            OS_CONFIG      := MinGW$(OS_RELEASE)
         
     | 
| 
      
 106 
     | 
    
         
            +
            else
         
     | 
| 
       99 
107 
     | 
    
         
             
            OS_CONFIG       := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
         
     | 
| 
       100 
108 
     | 
    
         
             
            endif
         
     | 
| 
       101 
109 
     | 
    
         
             
            endif
         
     | 
| 
       102 
110 
     | 
    
         
             
            endif
         
     | 
| 
      
 111 
     | 
    
         
            +
            endif
         
     | 
| 
       103 
112 
     | 
    
         | 
| 
       104 
113 
     | 
    
         
             
            ASFLAGS         =
         
     | 
| 
       105 
114 
     | 
    
         
             
            DEFINES         =
         
     | 
| 
         @@ -114,7 +123,7 @@ endif 
     | 
|
| 
       114 
123 
     | 
    
         | 
| 
       115 
124 
     | 
    
         
             
            ifdef BUILD_OPT
         
     | 
| 
       116 
125 
     | 
    
         
             
            OPTIMIZER  = -O
         
     | 
| 
       117 
     | 
    
         
            -
            DEFINES    += -UDEBUG -DNDEBUG -UDEBUG_$( 
     | 
| 
      
 126 
     | 
    
         
            +
            DEFINES    += -UDEBUG -DNDEBUG -UDEBUG_$(USER)
         
     | 
| 
       118 
127 
     | 
    
         
             
            OBJDIR_TAG = _OPT
         
     | 
| 
       119 
128 
     | 
    
         
             
            else
         
     | 
| 
       120 
129 
     | 
    
         
             
            ifdef USE_MSVC
         
     | 
| 
         @@ -122,11 +131,16 @@ OPTIMIZER  = -Zi 
     | 
|
| 
       122 
131 
     | 
    
         
             
            else
         
     | 
| 
       123 
132 
     | 
    
         
             
            OPTIMIZER  = -g
         
     | 
| 
       124 
133 
     | 
    
         
             
            endif
         
     | 
| 
       125 
     | 
    
         
            -
            DEFINES    += -DDEBUG -DDEBUG_$( 
     | 
| 
      
 134 
     | 
    
         
            +
            DEFINES    += -DDEBUG -DDEBUG_$(USER)
         
     | 
| 
       126 
135 
     | 
    
         
             
            OBJDIR_TAG = _DBG
         
     | 
| 
       127 
136 
     | 
    
         
             
            endif
         
     | 
| 
       128 
137 
     | 
    
         | 
| 
      
 138 
     | 
    
         
            +
            ifeq ($(OS_ARCH), WINNT)
         
     | 
| 
      
 139 
     | 
    
         
            +
            SO_SUFFIX = dll
         
     | 
| 
      
 140 
     | 
    
         
            +
            EXE_DOTSUFFIX = .exe
         
     | 
| 
      
 141 
     | 
    
         
            +
            else
         
     | 
| 
       129 
142 
     | 
    
         
             
            SO_SUFFIX = so
         
     | 
| 
      
 143 
     | 
    
         
            +
            endif
         
     | 
| 
       130 
144 
     | 
    
         | 
| 
       131 
145 
     | 
    
         
             
            NS_USE_NATIVE = 1
         
     | 
| 
       132 
146 
     | 
    
         | 
| 
         @@ -145,6 +159,22 @@ CLASSPATH    = $(JDK)/lib/classes.zip$(SEP)$(CLASSDIR)/$(OBJDIR) 
     | 
|
| 
       145 
159 
     | 
    
         | 
| 
       146 
160 
     | 
    
         
             
            include $(DEPTH)/config/$(OS_CONFIG).mk
         
     | 
| 
       147 
161 
     | 
    
         | 
| 
      
 162 
     | 
    
         
            +
            ifndef OBJ_SUFFIX
         
     | 
| 
      
 163 
     | 
    
         
            +
            ifdef USE_MSVC
         
     | 
| 
      
 164 
     | 
    
         
            +
            OBJ_SUFFIX = obj
         
     | 
| 
      
 165 
     | 
    
         
            +
            else
         
     | 
| 
      
 166 
     | 
    
         
            +
            OBJ_SUFFIX = o
         
     | 
| 
      
 167 
     | 
    
         
            +
            endif
         
     | 
| 
      
 168 
     | 
    
         
            +
            endif
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
            ifndef HOST_BIN_SUFFIX
         
     | 
| 
      
 171 
     | 
    
         
            +
            ifeq ($(OS_ARCH),WINNT)
         
     | 
| 
      
 172 
     | 
    
         
            +
            HOST_BIN_SUFFIX = .exe
         
     | 
| 
      
 173 
     | 
    
         
            +
            else
         
     | 
| 
      
 174 
     | 
    
         
            +
            HOST_BIN_SUFFIX =
         
     | 
| 
      
 175 
     | 
    
         
            +
            endif
         
     | 
| 
      
 176 
     | 
    
         
            +
            endif
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
       148 
178 
     | 
    
         
             
            # Name of the binary code directories
         
     | 
| 
       149 
179 
     | 
    
         
             
            ifdef BUILD_IDG
         
     | 
| 
       150 
180 
     | 
    
         
             
            OBJDIR          = $(OS_CONFIG)$(OBJDIR_TAG).OBJD
         
     | 
| 
         @@ -91,8 +91,7 @@ include $(DEPTH)/config.mk 
     | 
|
| 
       91 
91 
     | 
    
         
             
            #
         
     | 
| 
       92 
92 
     | 
    
         
             
            # Default IEEE libm
         
     | 
| 
       93 
93 
     | 
    
         
             
            #
         
     | 
| 
       94 
     | 
    
         
            -
            CFLAGS          +=  
     | 
| 
       95 
     | 
    
         
            -
            		  -DJSFILE $(XCFLAGS) -D_IEEE_LIBM
         
     | 
| 
      
 94 
     | 
    
         
            +
            CFLAGS          += $(OPTIMIZER) $(OS_CFLAGS) $(DEFINES) $(INCLUDES) -DJSFILE $(XCFLAGS) -D_IEEE_LIBM
         
     | 
| 
       96 
95 
     | 
    
         | 
| 
       97 
96 
     | 
    
         
             
            # Need for jstypes.h and friends
         
     | 
| 
       98 
97 
     | 
    
         
             
            INCLUDES += -I..
         
     | 
    
        data/vendor/jsl-0.3.0/src/jsl.c
    CHANGED
    
    | 
         @@ -63,11 +63,13 @@ 
     | 
|
| 
       63 
63 
     | 
    
         
             
            #include "jsscript.h"
         
     | 
| 
       64 
64 
     | 
    
         
             
            #include "jsstr.h"
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
            # 
     | 
| 
      
 66 
     | 
    
         
            +
            #if defined(XP_UNIX) || defined(_MINGW)
         
     | 
| 
       67 
67 
     | 
    
         
             
            #include <unistd.h>
         
     | 
| 
       68 
68 
     | 
    
         
             
            #include <sys/types.h>
         
     | 
| 
       69 
69 
     | 
    
         
             
            #include <dirent.h>
         
     | 
| 
      
 70 
     | 
    
         
            +
            #ifndef _MINGW
         
     | 
| 
       70 
71 
     | 
    
         
             
            #include <sys/wait.h>
         
     | 
| 
      
 72 
     | 
    
         
            +
            #endif
         
     | 
| 
       71 
73 
     | 
    
         
             
            #include <sys/stat.h>
         
     | 
| 
       72 
74 
     | 
    
         
             
            #endif
         
     | 
| 
       73 
75 
     | 
    
         | 
| 
         @@ -180,6 +182,12 @@ typedef struct JSLPathList { 
     | 
|
| 
       180 
182 
     | 
    
         
             
                char path[MAXPATHLEN+1];
         
     | 
| 
       181 
183 
     | 
    
         
             
            } JSLPathList;
         
     | 
| 
       182 
184 
     | 
    
         | 
| 
      
 185 
     | 
    
         
            +
            typedef struct JSLAliasList {
         
     | 
| 
      
 186 
     | 
    
         
            +
                JSCList links;
         
     | 
| 
      
 187 
     | 
    
         
            +
                char path[MAXPATHLEN+1];
         
     | 
| 
      
 188 
     | 
    
         
            +
                char alias[MAXPATHLEN+1];
         
     | 
| 
      
 189 
     | 
    
         
            +
            } JSLAliasList;
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
       183 
191 
     | 
    
         
             
            typedef struct JSLScriptList {
         
     | 
| 
       184 
192 
     | 
    
         
             
                JSCList links;
         
     | 
| 
       185 
193 
     | 
    
         | 
| 
         @@ -189,6 +197,7 @@ typedef struct JSLScriptList { 
     | 
|
| 
       189 
197 
     | 
    
         
             
            } JSLScriptList;
         
     | 
| 
       190 
198 
     | 
    
         | 
| 
       191 
199 
     | 
    
         
             
            JSLScriptList gScriptList;
         
     | 
| 
      
 200 
     | 
    
         
            +
            JSLAliasList gScriptAliasList;
         
     | 
| 
       192 
201 
     | 
    
         
             
            JSLPathList gIncludePathList;
         
     | 
| 
       193 
202 
     | 
    
         | 
| 
       194 
203 
     | 
    
         | 
| 
         @@ -305,8 +314,9 @@ IsDir(char *filename) 
     | 
|
| 
       305 
314 
     | 
    
         | 
| 
       306 
315 
     | 
    
         | 
| 
       307 
316 
     | 
    
         | 
| 
       308 
     | 
    
         
            -
            # 
     | 
| 
      
 317 
     | 
    
         
            +
            #if defined(WIN32)
         
     | 
| 
       309 
318 
     | 
    
         | 
| 
      
 319 
     | 
    
         
            +
            #ifndef _MINGW
         
     | 
| 
       310 
320 
     | 
    
         
             
            struct dirent {
         
     | 
| 
       311 
321 
     | 
    
         
             
                char d_name[MAXPATHLEN];
         
     | 
| 
       312 
322 
     | 
    
         
             
            };
         
     | 
| 
         @@ -371,6 +381,7 @@ closedir(DIR *dir) 
     | 
|
| 
       371 
381 
     | 
    
         
             
                }
         
     | 
| 
       372 
382 
     | 
    
         
             
                return 0;
         
     | 
| 
       373 
383 
     | 
    
         
             
            }
         
     | 
| 
      
 384 
     | 
    
         
            +
            #endif
         
     | 
| 
       374 
385 
     | 
    
         | 
| 
       375 
386 
     | 
    
         
             
            /* caller should allocate MAXPATHLEN; does not set errno; returns null on failure */
         
     | 
| 
       376 
387 
     | 
    
         
             
            static char *
         
     | 
| 
         @@ -603,6 +614,36 @@ OutputErrorMessage(const char *path, int lineno, int colno, const char *errName, 
     | 
|
| 
       603 
614 
     | 
    
         
             
                }
         
     | 
| 
       604 
615 
     | 
    
         
             
            }
         
     | 
| 
       605 
616 
     | 
    
         | 
| 
      
 617 
     | 
    
         
            +
            static JSLAliasList*
         
     | 
| 
      
 618 
     | 
    
         
            +
            AllocAliasListItem(const char *alias, const char *path)
         
     | 
| 
      
 619 
     | 
    
         
            +
            {
         
     | 
| 
      
 620 
     | 
    
         
            +
                JSLAliasList *aliasItem= malloc(sizeof(JSLAliasList));
         
     | 
| 
      
 621 
     | 
    
         
            +
                memset(aliasItem, 0, sizeof(JSLAliasList));
         
     | 
| 
      
 622 
     | 
    
         
            +
                
         
     | 
| 
      
 623 
     | 
    
         
            +
                JS_INIT_CLIST(&aliasItem->links);
         
     | 
| 
      
 624 
     | 
    
         
            +
                strncpy(aliasItem->path, path, MAXPATHLEN);
         
     | 
| 
      
 625 
     | 
    
         
            +
                strncpy(aliasItem->alias, alias, MAXPATHLEN);
         
     | 
| 
      
 626 
     | 
    
         
            +
                
         
     | 
| 
      
 627 
     | 
    
         
            +
                return aliasItem;
         
     | 
| 
      
 628 
     | 
    
         
            +
            }
         
     | 
| 
      
 629 
     | 
    
         
            +
             
     | 
| 
      
 630 
     | 
    
         
            +
            static void
         
     | 
| 
      
 631 
     | 
    
         
            +
            AddAliasToList(JSLAliasList *aliasList, const char *alias, const char *path)
         
     | 
| 
      
 632 
     | 
    
         
            +
            {
         
     | 
| 
      
 633 
     | 
    
         
            +
                JSLAliasList *aliasItem= AllocAliasListItem(alias, path);
         
     | 
| 
      
 634 
     | 
    
         
            +
                JS_APPEND_LINK(&aliasItem->links, &aliasList->links);
         
     | 
| 
      
 635 
     | 
    
         
            +
            }
         
     | 
| 
      
 636 
     | 
    
         
            +
             
     | 
| 
      
 637 
     | 
    
         
            +
            static void
         
     | 
| 
      
 638 
     | 
    
         
            +
            FreeAliasList(JSContext *cx, JSLAliasList *aliasList)
         
     | 
| 
      
 639 
     | 
    
         
            +
            {
         
     | 
| 
      
 640 
     | 
    
         
            +
                while (!JS_CLIST_IS_EMPTY(&aliasList->links)) {
         
     | 
| 
      
 641 
     | 
    
         
            +
                    JSLAliasList *item = (JSLAliasList*)JS_LIST_HEAD(&aliasList->links);
         
     | 
| 
      
 642 
     | 
    
         
            +
                    JS_REMOVE_LINK(&item->links);
         
     | 
| 
      
 643 
     | 
    
         
            +
                    JS_free(cx, item);
         
     | 
| 
      
 644 
     | 
    
         
            +
                }
         
     | 
| 
      
 645 
     | 
    
         
            +
            }
         
     | 
| 
      
 646 
     | 
    
         
            +
             
     | 
| 
       606 
647 
     | 
    
         
             
            static JSLPathList*
         
     | 
| 
       607 
648 
     | 
    
         
             
            AllocPathListItem(const char *path)
         
     | 
| 
       608 
649 
     | 
    
         
             
            {
         
     | 
| 
         @@ -804,6 +845,7 @@ ResolveScriptPath(const char *relpath, char *path, JSLScriptList *parentScript) 
     | 
|
| 
       804 
845 
     | 
    
         
             
                JSBool result;
         
     | 
| 
       805 
846 
     | 
    
         
             
                struct stat _stat;
         
     | 
| 
       806 
847 
     | 
    
         
             
                JSLPathList *inc;
         
     | 
| 
      
 848 
     | 
    
         
            +
                JSLAliasList *alias;
         
     | 
| 
       807 
849 
     | 
    
         | 
| 
       808 
850 
     | 
    
         
             
                char workingDir[MAXPATHLEN+1];
         
     | 
| 
       809 
851 
     | 
    
         
             
                workingDir[0] = 0;
         
     | 
| 
         @@ -832,6 +874,22 @@ ResolveScriptPath(const char *relpath, char *path, JSLScriptList *parentScript) 
     | 
|
| 
       832 
874 
     | 
    
         
             
                if (result && -1!=stat(path, &_stat))
         
     | 
| 
       833 
875 
     | 
    
         
             
                    return JS_TRUE;
         
     | 
| 
       834 
876 
     | 
    
         | 
| 
      
 877 
     | 
    
         
            +
                //  Check for an alias match. Aliased files still must exist or the search
         
     | 
| 
      
 878 
     | 
    
         
            +
                //  will continue.
         
     | 
| 
      
 879 
     | 
    
         
            +
                for (alias= (JSLAliasList*)JS_LIST_HEAD(&gScriptAliasList.links);
         
     | 
| 
      
 880 
     | 
    
         
            +
                     alias!=&gScriptAliasList;
         
     | 
| 
      
 881 
     | 
    
         
            +
                     alias= (JSLAliasList*)JS_NEXT_LINK(&alias->links))
         
     | 
| 
      
 882 
     | 
    
         
            +
                {
         
     | 
| 
      
 883 
     | 
    
         
            +
                    if (0==strcmp(relpath, alias->alias))
         
     | 
| 
      
 884 
     | 
    
         
            +
                    {
         
     | 
| 
      
 885 
     | 
    
         
            +
                        if (-1==stat(alias->path, &_stat))
         
     | 
| 
      
 886 
     | 
    
         
            +
                            continue;
         
     | 
| 
      
 887 
     | 
    
         
            +
                        strcpy(path, alias->path);
         
     | 
| 
      
 888 
     | 
    
         
            +
                        return JS_TRUE;
         
     | 
| 
      
 889 
     | 
    
         
            +
                    }
         
     | 
| 
      
 890 
     | 
    
         
            +
                }
         
     | 
| 
      
 891 
     | 
    
         
            +
             
     | 
| 
      
 892 
     | 
    
         
            +
                //  Nothing matches, so look in include folders...
         
     | 
| 
       835 
893 
     | 
    
         
             
                for (inc= (JSLPathList*)JS_LIST_HEAD(&gIncludePathList.links);
         
     | 
| 
       836 
894 
     | 
    
         
             
                     inc!=&gIncludePathList;
         
     | 
| 
       837 
895 
     | 
    
         
             
                     inc= (JSLPathList*)JS_NEXT_LINK(&inc->links))
         
     | 
| 
         @@ -1800,20 +1858,72 @@ ProcessSettingErr_Garbage: 
     | 
|
| 
       1800 
1858 
     | 
    
         
             
                            *linepos = 0;
         
     | 
| 
       1801 
1859 
     | 
    
         | 
| 
       1802 
1860 
     | 
    
         
             
                            AddPathToList(&gIncludePathList, path);
         
     | 
| 
       1803 
     | 
    
         
            -
             
     | 
| 
       1804 
     | 
    
         
            -
             
     | 
| 
       1805 
     | 
    
         
            -
             
     | 
| 
       1806 
     | 
    
         
            -
             
     | 
| 
       1807 
     | 
    
         
            -
             
     | 
| 
       1808 
     | 
    
         
            -
             
     | 
| 
       1809 
     | 
    
         
            -
             
     | 
| 
       1810 
     | 
    
         
            -
                                return LintConfError(cx, path, lineno, "invalid include setting: missing or mismatched quote");
         
     | 
| 
       1811 
     | 
    
         
            -
            ProcessSettingErr_Garbage:
         
     | 
| 
      
 1861 
     | 
    
         
            +
                        }
         
     | 
| 
      
 1862 
     | 
    
         
            +
                        else if (strncasecmp(linepos, "alias", strlen("alias")) == 0) {
         
     | 
| 
      
 1863 
     | 
    
         
            +
                            char delimiter;
         
     | 
| 
      
 1864 
     | 
    
         
            +
                            char *path;
         
     | 
| 
      
 1865 
     | 
    
         
            +
                            char *alias;
         
     | 
| 
      
 1866 
     | 
    
         
            +
                            
         
     | 
| 
      
 1867 
     | 
    
         
            +
                            if (!enable) {
         
     | 
| 
       1812 
1868 
     | 
    
         
             
                                fclose(file);
         
     | 
| 
       1813 
     | 
    
         
            -
                                return LintConfError(cx, path, lineno, " 
     | 
| 
      
 1869 
     | 
    
         
            +
                                return LintConfError(cx, path, lineno, "-alias is an invalid setting");
         
     | 
| 
       1814 
1870 
     | 
    
         
             
                            }
         
     | 
| 
       1815 
     | 
    
         
            -
             
     | 
| 
      
 1871 
     | 
    
         
            +
             
     | 
| 
      
 1872 
     | 
    
         
            +
                            linepos += strlen("alias");
         
     | 
| 
      
 1873 
     | 
    
         
            +
             
     | 
| 
      
 1874 
     | 
    
         
            +
                            /* require (but skip) whitespace */
         
     | 
| 
      
 1875 
     | 
    
         
            +
                            if (!*linepos || !isspace(*linepos)) goto ProcessSettingErr_MissingPath;
         
     | 
| 
      
 1876 
     | 
    
         
            +
                            while (*linepos && isspace(*linepos))
         
     | 
| 
      
 1877 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
      
 1878 
     | 
    
         
            +
                            if (!*linepos) goto ProcessSettingErr_MissingPath;
         
     | 
| 
      
 1879 
     | 
    
         
            +
             
     | 
| 
      
 1880 
     | 
    
         
            +
                            /* allow quote */
         
     | 
| 
      
 1881 
     | 
    
         
            +
                            if (*linepos == '\'') {
         
     | 
| 
      
 1882 
     | 
    
         
            +
                                delimiter = *linepos;
         
     | 
| 
      
 1883 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
      
 1884 
     | 
    
         
            +
                            }
         
     | 
| 
      
 1885 
     | 
    
         
            +
                            else if (*linepos == '"') {
         
     | 
| 
      
 1886 
     | 
    
         
            +
                                delimiter = *linepos;
         
     | 
| 
      
 1887 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
      
 1888 
     | 
    
         
            +
                            }
         
     | 
| 
      
 1889 
     | 
    
         
            +
                            else
         
     | 
| 
      
 1890 
     | 
    
         
            +
                                delimiter = 0;
         
     | 
| 
      
 1891 
     | 
    
         
            +
             
     | 
| 
      
 1892 
     | 
    
         
            +
                            /* read alias */
         
     | 
| 
      
 1893 
     | 
    
         
            +
                            if (!*linepos) goto ProcessSettingErr_MissingQuote;
         
     | 
| 
      
 1894 
     | 
    
         
            +
                            alias = linepos;
         
     | 
| 
      
 1895 
     | 
    
         
            +
                            while (*linepos)
         
     | 
| 
      
 1896 
     | 
    
         
            +
                            {
         
     | 
| 
      
 1897 
     | 
    
         
            +
                                if (delimiter && *linepos==delimiter)
         
     | 
| 
      
 1898 
     | 
    
         
            +
                                    break;
         
     | 
| 
      
 1899 
     | 
    
         
            +
                                if (!delimiter && isspace(*linepos))
         
     | 
| 
      
 1900 
     | 
    
         
            +
                                    break;
         
     | 
| 
      
 1901 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
       1816 
1902 
     | 
    
         
             
                            }
         
     | 
| 
      
 1903 
     | 
    
         
            +
                            if (delimiter && *linepos!=delimiter) goto ProcessSettingErr_MissingQuote;
         
     | 
| 
      
 1904 
     | 
    
         
            +
                            if (!delimiter && !isspace(*linepos)) goto ProcessSettingErr_MissingPath;
         
     | 
| 
      
 1905 
     | 
    
         
            +
             
     | 
| 
      
 1906 
     | 
    
         
            +
                            /* terminate path */
         
     | 
| 
      
 1907 
     | 
    
         
            +
                            *linepos++= 0;
         
     | 
| 
      
 1908 
     | 
    
         
            +
                            
         
     | 
| 
      
 1909 
     | 
    
         
            +
                            /* require (but skip) whitespace */
         
     | 
| 
      
 1910 
     | 
    
         
            +
                            while (*linepos && isspace(*linepos))
         
     | 
| 
      
 1911 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
      
 1912 
     | 
    
         
            +
                            if (!*linepos) goto ProcessSettingErr_MissingPath;
         
     | 
| 
      
 1913 
     | 
    
         
            +
             
     | 
| 
      
 1914 
     | 
    
         
            +
                            /* read path */
         
     | 
| 
      
 1915 
     | 
    
         
            +
                            if (!*linepos) goto ProcessSettingErr_MissingQuote;
         
     | 
| 
      
 1916 
     | 
    
         
            +
                            path = linepos;
         
     | 
| 
      
 1917 
     | 
    
         
            +
                            while (*linepos && *linepos != delimiter)
         
     | 
| 
      
 1918 
     | 
    
         
            +
                                linepos++;
         
     | 
| 
      
 1919 
     | 
    
         
            +
                            if (delimiter && !*linepos) goto ProcessSettingErr_MissingQuote;
         
     | 
| 
      
 1920 
     | 
    
         
            +
             
     | 
| 
      
 1921 
     | 
    
         
            +
                            /* yank ending quote */
         
     | 
| 
      
 1922 
     | 
    
         
            +
                            if (linepos[0] && linepos[1]) goto ProcessSettingErr_Garbage;
         
     | 
| 
      
 1923 
     | 
    
         
            +
                            *linepos = 0;
         
     | 
| 
      
 1924 
     | 
    
         
            +
             
     | 
| 
      
 1925 
     | 
    
         
            +
                            AddAliasToList(&gScriptAliasList, alias, path);
         
     | 
| 
      
 1926 
     | 
    
         
            +
                        }
         
     | 
| 
       1817 
1927 
     | 
    
         
             
                        else if (strncasecmp(linepos, "output-format", strlen("output-format")) == 0) {
         
     | 
| 
       1818 
1928 
     | 
    
         
             
                            linepos += strlen("output-format");
         
     | 
| 
       1819 
1929 
     | 
    
         | 
| 
         @@ -2304,6 +2414,7 @@ main(int argc, char **argv, char **envp) 
     | 
|
| 
       2304 
2414 
     | 
    
         
             
                argv++;
         
     | 
| 
       2305 
2415 
     | 
    
         | 
| 
       2306 
2416 
     | 
    
         
             
                JS_INIT_CLIST(&gScriptList.links);
         
     | 
| 
      
 2417 
     | 
    
         
            +
                JS_INIT_CLIST(&gScriptAliasList.links);
         
     | 
| 
       2307 
2418 
     | 
    
         
             
                JS_INIT_CLIST(&gIncludePathList.links);
         
     | 
| 
       2308 
2419 
     | 
    
         
             
                JS_ASSERT(sizeof(placeholders) / sizeof(placeholders[0]) == JSLPlaceholder_Limit);
         
     | 
| 
       2309 
2420 
     | 
    
         | 
| 
         @@ -58,7 +58,8 @@ ifdef USE_MSVC 
     | 
|
| 
       58 
58 
     | 
    
         
             
            # TARGETS = $(LIBRARY)   # $(PROGRAM) not supported for MSVC yet
         
     | 
| 
       59 
59 
     | 
    
         
             
            TARGETS += $(SHARED_LIBRARY) $(PROGRAM)  # it is now
         
     | 
| 
       60 
60 
     | 
    
         
             
            else
         
     | 
| 
       61 
     | 
    
         
            -
            TARGETS += $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM) 
         
     | 
| 
      
 61 
     | 
    
         
            +
            # TARGETS += $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM) 
         
     | 
| 
      
 62 
     | 
    
         
            +
            TARGETS += $(LIBRARY) $(PROGRAM) 
         
     | 
| 
       62 
63 
     | 
    
         
             
            endif
         
     | 
| 
       63 
64 
     | 
    
         | 
| 
       64 
65 
     | 
    
         
             
            all:
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version 
     | 
|
| 
       4 
4 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       5 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              - 0
         
     | 
| 
       7 
     | 
    
         
            -
              -  
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 7 
     | 
    
         
            +
              - 11
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 0.11.0
         
     | 
| 
       10 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       11 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            - Jeff Watkins
         
     | 
| 
         @@ -14,10 +14,23 @@ autorequire: 
     | 
|
| 
       14 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       15 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2010-06-06 00:00:00 -07:00
         
     | 
| 
       18 
18 
     | 
    
         
             
            default_executable: distil
         
     | 
| 
       19 
     | 
    
         
            -
            dependencies:  
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
            dependencies: 
         
     | 
| 
      
 20 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 21 
     | 
    
         
            +
              name: json
         
     | 
| 
      
 22 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 23 
     | 
    
         
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 24 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 25 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 26 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 27 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 28 
     | 
    
         
            +
                    - 1
         
     | 
| 
      
 29 
     | 
    
         
            +
                    - 4
         
     | 
| 
      
 30 
     | 
    
         
            +
                    - 3
         
     | 
| 
      
 31 
     | 
    
         
            +
                    version: 1.4.3
         
     | 
| 
      
 32 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 33 
     | 
    
         
            +
              version_requirements: *id001
         
     | 
| 
       21 
34 
     | 
    
         
             
            description: A build tool for Javascript and CSS that takes advantage of best-of-breed helper applications Javascript Lint and JSDoc Toolkit
         
     | 
| 
       22 
35 
     | 
    
         
             
            email: 
         
     | 
| 
       23 
36 
     | 
    
         
             
            executables: 
         
     | 
| 
         @@ -29,32 +42,40 @@ extra_rdoc_files: [] 
     | 
|
| 
       29 
42 
     | 
    
         
             
            files: 
         
     | 
| 
       30 
43 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       31 
44 
     | 
    
         
             
            - VERSION
         
     | 
| 
      
 45 
     | 
    
         
            +
            - assets/distil.js
         
     | 
| 
       32 
46 
     | 
    
         
             
            - bin/distil
         
     | 
| 
       33 
47 
     | 
    
         
             
            - distil.gemspec
         
     | 
| 
       34 
     | 
    
         
            -
            - lib/ 
     | 
| 
       35 
     | 
    
         
            -
            - lib/configurable.rb
         
     | 
| 
       36 
     | 
    
         
            -
            - lib/file-set.rb
         
     | 
| 
       37 
     | 
    
         
            -
            - lib/ 
     | 
| 
       38 
     | 
    
         
            -
            - lib/ 
     | 
| 
       39 
     | 
    
         
            -
            - lib/ 
     | 
| 
       40 
     | 
    
         
            -
            - lib/ 
     | 
| 
       41 
     | 
    
         
            -
            - lib/ 
     | 
| 
       42 
     | 
    
         
            -
            - lib/ 
     | 
| 
       43 
     | 
    
         
            -
            - lib/ 
     | 
| 
       44 
     | 
    
         
            -
            - lib/ 
     | 
| 
      
 48 
     | 
    
         
            +
            - lib/distil.rb
         
     | 
| 
      
 49 
     | 
    
         
            +
            - lib/distil/configurable.rb
         
     | 
| 
      
 50 
     | 
    
         
            +
            - lib/distil/configurable/file-set.rb
         
     | 
| 
      
 51 
     | 
    
         
            +
            - lib/distil/configurable/interpolated.rb
         
     | 
| 
      
 52 
     | 
    
         
            +
            - lib/distil/configurable/output-path.rb
         
     | 
| 
      
 53 
     | 
    
         
            +
            - lib/distil/configurable/project-path.rb
         
     | 
| 
      
 54 
     | 
    
         
            +
            - lib/distil/error-reporter.rb
         
     | 
| 
      
 55 
     | 
    
         
            +
            - lib/distil/product.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            - lib/distil/product/concatenated.rb
         
     | 
| 
      
 57 
     | 
    
         
            +
            - lib/distil/product/css-product.rb
         
     | 
| 
      
 58 
     | 
    
         
            +
            - lib/distil/product/debug.rb
         
     | 
| 
      
 59 
     | 
    
         
            +
            - lib/distil/product/javascript-base-product.rb
         
     | 
| 
      
 60 
     | 
    
         
            +
            - lib/distil/product/javascript-doc-product.rb
         
     | 
| 
      
 61 
     | 
    
         
            +
            - lib/distil/product/javascript-product.rb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - lib/distil/product/minified.rb
         
     | 
| 
      
 63 
     | 
    
         
            +
            - lib/distil/project.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
            - lib/distil/project/distil-project.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
            - lib/distil/project/external-project.rb
         
     | 
| 
      
 66 
     | 
    
         
            +
            - lib/distil/source-file.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            - lib/distil/source-file/css-file.rb
         
     | 
| 
      
 68 
     | 
    
         
            +
            - lib/distil/source-file/html-file.rb
         
     | 
| 
      
 69 
     | 
    
         
            +
            - lib/distil/source-file/javascript-file.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - lib/distil/source-file/json-file.rb
         
     | 
| 
      
 71 
     | 
    
         
            +
            - lib/distil/target.rb
         
     | 
| 
      
 72 
     | 
    
         
            +
            - lib/distil/task.rb
         
     | 
| 
      
 73 
     | 
    
         
            +
            - lib/distil/task/css-dependency-task.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
            - lib/distil/task/jsl-dependency-task.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
            - lib/distil/task/nib-task.rb
         
     | 
| 
      
 76 
     | 
    
         
            +
            - lib/distil/task/validate-js-task.rb
         
     | 
| 
       45 
77 
     | 
    
         
             
            - lib/jsdoc.conf
         
     | 
| 
       46 
78 
     | 
    
         
             
            - lib/jsl.conf
         
     | 
| 
       47 
     | 
    
         
            -
            - lib/project.rb
         
     | 
| 
       48 
     | 
    
         
            -
            - lib/source-file.rb
         
     | 
| 
       49 
     | 
    
         
            -
            - lib/target.rb
         
     | 
| 
       50 
     | 
    
         
            -
            - lib/task.rb
         
     | 
| 
       51 
     | 
    
         
            -
            - lib/tasks/copy-task.rb
         
     | 
| 
       52 
     | 
    
         
            -
            - lib/tasks/css-task.rb
         
     | 
| 
       53 
     | 
    
         
            -
            - lib/tasks/javascript-task.rb
         
     | 
| 
       54 
     | 
    
         
            -
            - lib/tasks/multiple-output-task.rb
         
     | 
| 
       55 
     | 
    
         
            -
            - lib/tasks/output-task.rb
         
     | 
| 
       56 
     | 
    
         
            -
            - lib/tasks/single-output-task.rb
         
     | 
| 
       57 
     | 
    
         
            -
            - lib/tasks/test-task.rb
         
     | 
| 
       58 
79 
     | 
    
         
             
            - lib/test/HtmlTestReporter.js
         
     | 
| 
       59 
80 
     | 
    
         
             
            - lib/test/Test.js
         
     | 
| 
       60 
81 
     | 
    
         
             
            - lib/test/TestReporter.js
         
     | 
    
        data/lib/bootstrap-template.js
    DELETED
    
    | 
         @@ -1,58 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            /*jsl:ignore*/ /**#nocode+*/
         
     | 
| 
       2 
     | 
    
         
            -
            (function() {
         
     | 
| 
       3 
     | 
    
         
            -
                var baseUrl= findScriptBaseName();
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
                function findScriptBaseName()
         
     | 
| 
       6 
     | 
    
         
            -
                {
         
     | 
| 
       7 
     | 
    
         
            -
                    var scripts= document.getElementsByTagName("script");
         
     | 
| 
       8 
     | 
    
         
            -
                    if (!scripts || !scripts.length)
         
     | 
| 
       9 
     | 
    
         
            -
                        throw new Error("Could not find script");
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                    var l= scripts.length;
         
     | 
| 
       12 
     | 
    
         
            -
                    var s;
         
     | 
| 
       13 
     | 
    
         
            -
                    
         
     | 
| 
       14 
     | 
    
         
            -
                    for (--l; l>=0; --l)
         
     | 
| 
       15 
     | 
    
         
            -
                    {
         
     | 
| 
       16 
     | 
    
         
            -
                        s= scripts[l];
         
     | 
| 
       17 
     | 
    
         
            -
                        if (s.src)
         
     | 
| 
       18 
     | 
    
         
            -
                        {
         
     | 
| 
       19 
     | 
    
         
            -
                            var src= s.src;
         
     | 
| 
       20 
     | 
    
         
            -
                            var lastSlash= src.lastIndexOf('/');
         
     | 
| 
       21 
     | 
    
         
            -
                    
         
     | 
| 
       22 
     | 
    
         
            -
                            if (-1===lastSlash)
         
     | 
| 
       23 
     | 
    
         
            -
                                throw new Error("Couldn't determine path from src: " + src);
         
     | 
| 
       24 
     | 
    
         
            -
                        
         
     | 
| 
       25 
     | 
    
         
            -
                            return src.substring(0, lastSlash+1);
         
     | 
| 
       26 
     | 
    
         
            -
                        }
         
     | 
| 
       27 
     | 
    
         
            -
                    }
         
     | 
| 
       28 
     | 
    
         
            -
                    
         
     | 
| 
       29 
     | 
    
         
            -
                    throw new Error("No script tags with src attribute.");
         
     | 
| 
       30 
     | 
    
         
            -
                }
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                window.__bootstrap_nextScript= function()
         
     | 
| 
       33 
     | 
    
         
            -
                {
         
     | 
| 
       34 
     | 
    
         
            -
                    if (!scripts.length)
         
     | 
| 
       35 
     | 
    
         
            -
                        window.__filename__= null;
         
     | 
| 
       36 
     | 
    
         
            -
                    else
         
     | 
| 
       37 
     | 
    
         
            -
                        window.__filename__= scripts.shift();
         
     | 
| 
       38 
     | 
    
         
            -
                }
         
     | 
| 
       39 
     | 
    
         
            -
                
         
     | 
| 
       40 
     | 
    
         
            -
                var scripts= [];
         
     | 
| 
       41 
     | 
    
         
            -
                
         
     | 
| 
       42 
     | 
    
         
            -
                function loadScript(script)
         
     | 
| 
       43 
     | 
    
         
            -
                {
         
     | 
| 
       44 
     | 
    
         
            -
                    script= baseUrl + script;
         
     | 
| 
       45 
     | 
    
         
            -
                    scripts.push(script);
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                    if (!window.__filename__)
         
     | 
| 
       48 
     | 
    
         
            -
                        window.__bootstrap_nextScript();
         
     | 
| 
       49 
     | 
    
         
            -
                    
         
     | 
| 
       50 
     | 
    
         
            -
                    document.write( ['<', 'script type="text/javascript"',
         
     | 
| 
       51 
     | 
    
         
            -
                                     ' onload="window.__bootstrap_nextScript()"',
         
     | 
| 
       52 
     | 
    
         
            -
                                     ' src="', script, '"></script>'].join("") );
         
     | 
| 
       53 
     | 
    
         
            -
                }
         
     | 
| 
       54 
     | 
    
         
            -
                
         
     | 
| 
       55 
     | 
    
         
            -
                @LOAD_SCRIPTS@
         
     | 
| 
       56 
     | 
    
         
            -
                
         
     | 
| 
       57 
     | 
    
         
            -
            })();
         
     | 
| 
       58 
     | 
    
         
            -
            /**#nocode-*/ /*jsl:end*/
         
     | 
    
        data/lib/configurable.rb
    DELETED
    
    | 
         @@ -1,161 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Kernel
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              def Boolean(string)
         
     | 
| 
       4 
     | 
    
         
            -
                return true if string == true || string =~ /^true$/i
         
     | 
| 
       5 
     | 
    
         
            -
                return false if string == false || string.nil? || string =~ /^false$/i
         
     | 
| 
       6 
     | 
    
         
            -
                raise ArgumentError.new("invalid value for Boolean: \"#{string}\"")
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            end
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            class Configurable
         
     | 
| 
       14 
     | 
    
         
            -
              attr_reader :options
         
     | 
| 
       15 
     | 
    
         
            -
              
         
     | 
| 
       16 
     | 
    
         
            -
              @@options= {}
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              def get_options(settings=nil, parent=nil)
         
     | 
| 
       19 
     | 
    
         
            -
                keys= @@options.keys
         
     | 
| 
       20 
     | 
    
         
            -
                values= @@options.map { |k,v| v[:value] }
         
     | 
| 
       21 
     | 
    
         
            -
              
         
     | 
| 
       22 
     | 
    
         
            -
                s= Struct.new(*keys).new(*values)
         
     | 
| 
       23 
     | 
    
         
            -
                return s if !settings
         
     | 
| 
       24 
     | 
    
         
            -
              
         
     | 
| 
       25 
     | 
    
         
            -
                setting_keys= settings.keys.map { |key| key.to_s }
         
     | 
| 
       26 
     | 
    
         
            -
              
         
     | 
| 
       27 
     | 
    
         
            -
                @@options.each { |key, value|
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                  intersect= value[:aliases] & setting_keys
         
     | 
| 
       30 
     | 
    
         
            -
                  next if !parent && intersect.empty?
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                  if (intersect.empty?)
         
     | 
| 
       33 
     | 
    
         
            -
                    s[key]= parent[key]
         
     | 
| 
       34 
     | 
    
         
            -
                    next
         
     | 
| 
       35 
     | 
    
         
            -
                  end
         
     | 
| 
       36 
     | 
    
         
            -
                
         
     | 
| 
       37 
     | 
    
         
            -
                  if (intersect.length>1)
         
     | 
| 
       38 
     | 
    
         
            -
                    raise ArgumentError, "Multiple variants for #{key.to_s} defined: #{intersect.join(", ")}"
         
     | 
| 
       39 
     | 
    
         
            -
                  end
         
     | 
| 
       40 
     | 
    
         
            -
                      
         
     | 
| 
       41 
     | 
    
         
            -
                  setting_key= intersect[0]
         
     | 
| 
       42 
     | 
    
         
            -
                  setting_value= settings[setting_key]
         
     | 
| 
       43 
     | 
    
         
            -
                  settings.delete(setting_key)
         
     | 
| 
       44 
     | 
    
         
            -
                
         
     | 
| 
       45 
     | 
    
         
            -
                  # decide if any type conversions are needed...
         
     | 
| 
       46 
     | 
    
         
            -
                  type= value[:type]
         
     | 
| 
       47 
     | 
    
         
            -
                  setting_value= case
         
     | 
| 
       48 
     | 
    
         
            -
                    when FalseClass==type || TrueClass==type
         
     | 
| 
       49 
     | 
    
         
            -
                      Boolean(setting_value)
         
     | 
| 
       50 
     | 
    
         
            -
                    when Array==type
         
     | 
| 
       51 
     | 
    
         
            -
                      setting_value.is_a?(String) ? setting_value.split(/\s*,\s*/) : setting_value
         
     | 
| 
       52 
     | 
    
         
            -
                    when Fixnum==type
         
     | 
| 
       53 
     | 
    
         
            -
                      setting_value.to_i
         
     | 
| 
       54 
     | 
    
         
            -
                    when NilClass==type
         
     | 
| 
       55 
     | 
    
         
            -
                      setting_value
         
     | 
| 
       56 
     | 
    
         
            -
                    when String==type
         
     | 
| 
       57 
     | 
    
         
            -
                      setting_value.to_s
         
     | 
| 
       58 
     | 
    
         
            -
                    else
         
     | 
| 
       59 
     | 
    
         
            -
                      type.new(setting_value)
         
     | 
| 
       60 
     | 
    
         
            -
                    end
         
     | 
| 
       61 
     | 
    
         
            -
                
         
     | 
| 
       62 
     | 
    
         
            -
                  s[key]= setting_value
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                }
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                s
         
     | 
| 
       67 
     | 
    
         
            -
              end
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
              def self.class_attr(name)
         
     | 
| 
       70 
     | 
    
         
            -
                if (@class_attributes.nil?)
         
     | 
| 
       71 
     | 
    
         
            -
                  @class_attributes=[name]
         
     | 
| 
       72 
     | 
    
         
            -
                else
         
     | 
| 
       73 
     | 
    
         
            -
                  @class_attributes<<name
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
                
         
     | 
| 
       76 
     | 
    
         
            -
                class_eval %(
         
     | 
| 
       77 
     | 
    
         
            -
                      def self.#{name}(*rest)
         
     | 
| 
       78 
     | 
    
         
            -
                        if (rest.length>0)
         
     | 
| 
       79 
     | 
    
         
            -
                          @#{name}= rest[0]
         
     | 
| 
       80 
     | 
    
         
            -
                        else
         
     | 
| 
       81 
     | 
    
         
            -
                          @#{name}
         
     | 
| 
       82 
     | 
    
         
            -
                        end
         
     | 
| 
       83 
     | 
    
         
            -
                      end
         
     | 
| 
       84 
     | 
    
         
            -
                      def self.#{name}=(value)
         
     | 
| 
       85 
     | 
    
         
            -
                        @#{name}= value
         
     | 
| 
       86 
     | 
    
         
            -
                      end
         
     | 
| 
       87 
     | 
    
         
            -
                      def #{name}
         
     | 
| 
       88 
     | 
    
         
            -
                        @#{name} || self.class.#{name}
         
     | 
| 
       89 
     | 
    
         
            -
                      end
         
     | 
| 
       90 
     | 
    
         
            -
                      def #{name}=(value)
         
     | 
| 
       91 
     | 
    
         
            -
                        @#{name}=value
         
     | 
| 
       92 
     | 
    
         
            -
                      end
         
     | 
| 
       93 
     | 
    
         
            -
                    )
         
     | 
| 
       94 
     | 
    
         
            -
                    
         
     | 
| 
       95 
     | 
    
         
            -
              end
         
     | 
| 
       96 
     | 
    
         
            -
              
         
     | 
| 
       97 
     | 
    
         
            -
              def self.inherited(subclass)
         
     | 
| 
       98 
     | 
    
         
            -
                super(subclass)
         
     | 
| 
       99 
     | 
    
         
            -
                (@class_attributes||[]).each { |a|
         
     | 
| 
       100 
     | 
    
         
            -
                    instance_var = "@#{a}"
         
     | 
| 
       101 
     | 
    
         
            -
                    subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
         
     | 
| 
       102 
     | 
    
         
            -
                  }
         
     | 
| 
       103 
     | 
    
         
            -
              end
         
     | 
| 
       104 
     | 
    
         
            -
              
         
     | 
| 
       105 
     | 
    
         
            -
              # option name, [type], [default], [options]
         
     | 
| 
       106 
     | 
    
         
            -
              def self.option(name, *rest)
         
     | 
| 
       107 
     | 
    
         
            -
              
         
     | 
| 
       108 
     | 
    
         
            -
                name_string= name.to_s
         
     | 
| 
       109 
     | 
    
         
            -
              
         
     | 
| 
       110 
     | 
    
         
            -
                info= {
         
     | 
| 
       111 
     | 
    
         
            -
                  :aliases=>[name_string, name_string.gsub('_', '-'), name_string.gsub('_', ' ')].uniq
         
     | 
| 
       112 
     | 
    
         
            -
                }
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
                arg= rest.shift
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
                if (arg.is_a?(Class))
         
     | 
| 
       117 
     | 
    
         
            -
                  info[:type]= arg
         
     | 
| 
       118 
     | 
    
         
            -
                  info[:value]= nil #arg.new
         
     | 
| 
       119 
     | 
    
         
            -
                  arg= rest.shift
         
     | 
| 
       120 
     | 
    
         
            -
                end
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                if (!arg.is_a?(Hash))
         
     | 
| 
       123 
     | 
    
         
            -
                  info[:value]= arg
         
     | 
| 
       124 
     | 
    
         
            -
                  info[:type]= arg.class if !info.key?(:type)
         
     | 
| 
       125 
     | 
    
         
            -
                  arg= rest.shift
         
     | 
| 
       126 
     | 
    
         
            -
                end
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                # handle named arguments
         
     | 
| 
       129 
     | 
    
         
            -
                if (arg.is_a?(Hash))
         
     | 
| 
       130 
     | 
    
         
            -
                  info.merge!(arg)
         
     | 
| 
       131 
     | 
    
         
            -
                end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                @@options[name]= info
         
     | 
| 
       134 
     | 
    
         
            -
              
         
     | 
| 
       135 
     | 
    
         
            -
                Configurable.send :define_method, name do
         
     | 
| 
       136 
     | 
    
         
            -
                  @options[name]
         
     | 
| 
       137 
     | 
    
         
            -
                end
         
     | 
| 
       138 
     | 
    
         
            -
              
         
     | 
| 
       139 
     | 
    
         
            -
              end
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
              def self.option_alias(name, name_alias)
         
     | 
| 
       142 
     | 
    
         
            -
                if (!@@options.key?(name))
         
     | 
| 
       143 
     | 
    
         
            -
                  raise ArgumentError, "No such option: #{name}"
         
     | 
| 
       144 
     | 
    
         
            -
                end
         
     | 
| 
       145 
     | 
    
         
            -
              
         
     | 
| 
       146 
     | 
    
         
            -
                name_alias= name_alias.to_s
         
     | 
| 
       147 
     | 
    
         
            -
              
         
     | 
| 
       148 
     | 
    
         
            -
                @@options[name][:aliases].concat([name_alias,
         
     | 
| 
       149 
     | 
    
         
            -
                                                  name_alias.to_s.gsub('_', '-'),
         
     | 
| 
       150 
     | 
    
         
            -
                                                  name_alias.to_s.gsub('_', ' ')].uniq)
         
     | 
| 
       151 
     | 
    
         
            -
              end
         
     | 
| 
       152 
     | 
    
         
            -
              
         
     | 
| 
       153 
     | 
    
         
            -
              def initialize(options={}, parent=nil)
         
     | 
| 
       154 
     | 
    
         
            -
                if (parent.is_a?(Configurable))
         
     | 
| 
       155 
     | 
    
         
            -
                  parent_options= parent.options
         
     | 
| 
       156 
     | 
    
         
            -
                end
         
     | 
| 
       157 
     | 
    
         
            -
                @options= get_options(options, parent_options)
         
     | 
| 
       158 
     | 
    
         
            -
                @extras= options
         
     | 
| 
       159 
     | 
    
         
            -
              end
         
     | 
| 
       160 
     | 
    
         
            -
              
         
     | 
| 
       161 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/file-set.rb
    DELETED
    
    | 
         @@ -1,49 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require "#{$script_dir}/source-file"
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class FileSet
         
     | 
| 
       4 
     | 
    
         
            -
              include Enumerable
         
     | 
| 
       5 
     | 
    
         
            -
              attr_reader :files
         
     | 
| 
       6 
     | 
    
         
            -
              
         
     | 
| 
       7 
     | 
    
         
            -
              def initialize(set)
         
     | 
| 
       8 
     | 
    
         
            -
               @files= []
         
     | 
| 
       9 
     | 
    
         
            -
               case
         
     | 
| 
       10 
     | 
    
         
            -
                 when (set.is_a?(String))
         
     | 
| 
       11 
     | 
    
         
            -
                   include_file(set)
         
     | 
| 
       12 
     | 
    
         
            -
                 when (set.is_a?(Array))
         
     | 
| 
       13 
     | 
    
         
            -
                   set.each { |f| include_file(f) }
         
     | 
| 
       14 
     | 
    
         
            -
                end
         
     | 
| 
       15 
     | 
    
         
            -
              end
         
     | 
| 
       16 
     | 
    
         
            -
              
         
     | 
| 
       17 
     | 
    
         
            -
              def include_file(file)
         
     | 
| 
       18 
     | 
    
         
            -
                full_path= File.expand_path(file)
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                if File.directory?(full_path)
         
     | 
| 
       21 
     | 
    
         
            -
                  Dir.foreach(full_path) { |f|
         
     | 
| 
       22 
     | 
    
         
            -
                      next if ('.'==f[/^\./])
         
     | 
| 
       23 
     | 
    
         
            -
                      include_file(File.join(full_path, f))
         
     | 
| 
       24 
     | 
    
         
            -
                  }
         
     | 
| 
       25 
     | 
    
         
            -
                  return
         
     | 
| 
       26 
     | 
    
         
            -
                end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                files= Dir.glob(full_path)
         
     | 
| 
       29 
     | 
    
         
            -
                if (files.length>0)
         
     | 
| 
       30 
     | 
    
         
            -
                  files.each { |f|
         
     | 
| 
       31 
     | 
    
         
            -
                    source_file= SourceFile.from_path(f)
         
     | 
| 
       32 
     | 
    
         
            -
                    next if (@files.include?(source_file))
         
     | 
| 
       33 
     | 
    
         
            -
                    @files << source_file
         
     | 
| 
       34 
     | 
    
         
            -
                  }
         
     | 
| 
       35 
     | 
    
         
            -
                  return
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
                
         
     | 
| 
       38 
     | 
    
         
            -
                # file not found by globbing (would also find explicit reference)
         
     | 
| 
       39 
     | 
    
         
            -
                source_file= Project.current.find_file(file)
         
     | 
| 
       40 
     | 
    
         
            -
                return if (!source_file)
         
     | 
| 
       41 
     | 
    
         
            -
                return if (@files.include?(source_file))
         
     | 
| 
       42 
     | 
    
         
            -
                @files << source_file
         
     | 
| 
       43 
     | 
    
         
            -
              end
         
     | 
| 
       44 
     | 
    
         
            -
              
         
     | 
| 
       45 
     | 
    
         
            -
              def each
         
     | 
| 
       46 
     | 
    
         
            -
                @files.each { |f| yield f }
         
     | 
| 
       47 
     | 
    
         
            -
              end
         
     | 
| 
       48 
     | 
    
         
            -
              
         
     | 
| 
       49 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/file-types/css-file.rb
    DELETED