Changeset 101

Show
Ignore:
Timestamp:
08/03/06 03:42:43 (2 years ago)
Author:
robin
Message:

aggregation of js.json meta info

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • streamservice/trunk/scripts/json-provides.py

    r100 r101  
    1414outf=sys.stdout 
    1515all={} 
    16 for d in load(file(sys.argv[1])): 
    17     all.update(d) 
     16ordered=0 
     17for inf in sys.argv[1:]: 
     18    for d in load(file(inf)): 
     19        for k in d.keys(): 
     20            v=d[k] 
     21            del d[k] 
     22            d[(ordered,k)]=v 
     23        all.update(d) 
     24        ordered+=1 
     25 
    1826print >> outf, "/* BEGIN: provides" 
    1927print >> outf, " * GENERATED BY: %s" % GENERATORID 
    2028print >> outf, " */" 
    21 for namespace,meta in all.items(): 
     29haveprovided,haverequired={},{} 
     30ifdojo,ifjsan=[],[] 
     31for (ordered,namespace),meta in sorted(all.items()): 
    2232    provide,require=meta.get('provide',[]),meta.get('require',[]) 
     33    provide[:] = [p for p in provide if p not in haveprovided] 
     34    require[:] = [r for r in require  
     35                    if not (r in haverequired or r in haveprovided)] 
     36    if not (provide or require): 
     37        continue 
     38    for p in provide: 
     39        ifdojo.append(' ' * 4 + "dojo.provide('%s');" % p) 
     40    for r in require: 
     41        ifdojo.append(' ' * 4 + "dojo.require('%s');" % r) 
     42        ifjsan.append(' ' * 4 + "JSAN.use('%s');" % r) 
     43    for p in provide: 
     44        haveprovided[p] = True 
     45    for r in require: 
     46        haverequired[r] = True 
     47if ifdojo: 
    2348    print >> outf, "if (typeof(dojo) != 'undefined') {" 
    24     for p in provide: 
    25         print >> outf, ' ' * 4 + "dojo.provide('%s');" % p 
    26     for r in require: 
    27         print >> outf, ' ' * 4 + "dojo.require('%s');" % r 
    28     print >> outf, '}' 
     49    for line in ifdojo: 
     50        print >> outf, line 
     51    print >> outf, "}" 
     52if ifjsan: 
    2953    print >> outf, "if (typeof(JSAN) != 'undefined') {" 
    30     for r in require: 
    31         print >> outf, ' ' * 4 + "JSAN.use('%s');" % r 
    32     print >> outf, '}' 
    33 for namespace in all.keys(): 
     54    for line in ifjsan: 
     55        print >> outf, line 
     56    print >> outf, "}" 
     57havedefined={} 
     58for (ordered,namespace) in sorted(all.keys()): 
    3459    parts=namespace.split('.') 
    3560    for i, part in enumerate(parts): 
    3661        space='.'.join(parts[:i+1]) 
     62        if space in havedefined: 
     63            continue 
    3764        print >> outf, "if (typeof(%s) == 'undefined') {" % space 
    3865        print >> outf, ''.join([ 
    3966                ' ' * 4, space, ' = {};']) 
    4067        print >> outf, '}' 
     68        havedefined[space]=True 
    4169 
    4270print >> outf, "/* GENERATED BY: %s " % GENERATORID 
  • streamservice/trunk/tests/test-Dispatch.html

    r100 r101  
    88    src="../lib/SimpleTest/SimpleTest.js"></script> 
    99    <script type="text/javascript"  
    10     src="../lib/streamservice/Dispatch.include.js"></script> 
     10    src="../lib/streamservice/streamservice.include.js"></script> 
    1111    <script type="text/javascript"  
    1212    src="../lib/streamservice/Dispatch.js"></script> 
    13     <script type="text/javascript"  
    14     src="../lib/streamservice/Loopback.include.js"></script> 
    1513    <script type="text/javascript"  
    1614    src="../lib/streamservice/Loopback.js"></script>