Ejemplo n.º 1
0
Archivo: Manager.py Proyecto: Val9/jasy
 def __compileFilterExpr(self, classes):
     """Returns the regular expression object to use for filtering"""
     
     # Merge asset hints from all classes and remove duplicates
     hints = set()
     for classObj in classes:
         hints.update(classObj.getMetaData(getPermutation()).assets)
     
     # Compile filter expressions
     matcher = "^%s$" % "|".join(["(%s)" % fnmatch.translate(hint) for hint in hints])
     debug("Compiled asset matcher: %s" % matcher)
     
     return re.compile(matcher)
Ejemplo n.º 2
0
Archivo: Sorter.py Proyecto: Val9/jasy
    def __init__(self, resolver):
        # Keep classes/permutation reference
        # Classes is set(classObj, ...)
        self.__resolver = resolver
        self.__permutation = getPermutation()
        
        classes = self.__resolver.getIncludedClasses()

        # Build class name dict
        self.__names = dict([(classObj.getId(), classObj) for classObj in classes])
        
        # Initialize fields
        self.__loadDeps = {}
        self.__circularDeps = {}
        self.__sortedClasses = []
Ejemplo n.º 3
0
    def __init__(self):
        # Keep permutation reference
        self.__permutation = getPermutation()

        # Required classes by the user
        self.__required = []

        # Hard excluded classes (used for filtering previously included classes etc.)
        self.__excluded = []
        
        # Included classes after dependency calculation
        self.__included = []

        # Collecting all available classes
        self.__classes = {}
        for project in session.getProjects():
            self.__classes.update(project.getClasses())
Ejemplo n.º 4
0
def storeCompressed(classes, fileName, bootCode=""):
    """
    Combines the compressed result of the stored class list
    
    - classes: List of sorted classes to compress
    - fileName: Filename to write result to
    - bootCode: Code to execute once all the classes are loaded
    """
    
    info("Merging compressed output of %s classes...", len(classes))
    indent()
    result = []
    
    try:
        # FIXME
        translation = None 
        
        for classObj in classes:
            #debug("Adding class %s", classObj.id)
            #indent()
            result.append(classObj.getCompressed(getPermutation(), translation, jsOptimization, jsFormatting))
            #outdent()
            
    except ClassError as error:
        raise JasyError("Error during class compression! %s" % error)

    outdent()

    assetData = assetManager.export(classes)
    if assetData:
        assetCode = 'core.io.Asset.addData(%s);' % assetData
        result.append(packCode(assetCode))

    if bootCode:
        wrappedBootCode = "(function(){%s})();" % bootCode
        result.append(packCode(wrappedBootCode))

    writeFile(fileName, "".join(result))