Mercurial > hg > MakeItSo
annotate makeitso/template.py @ 58:112bf081148c
make a full CLI class for a single API template
| author | Jeff Hammel <jhammel@mozilla.com> | 
|---|---|
| date | Thu, 06 Jan 2011 15:54:55 -0800 | 
| parents | 728cae02a6ed | 
| children | 30100690ad3f | 
| rev | line source | 
|---|---|
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
1 """ | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
2 basic API template class | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
3 """ | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
4 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
5 import os | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
6 import sys | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
7 from makeitso import ContentTemplate | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
8 from makeitso import PolyTemplate | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
9 | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
10 class Undefined(object): | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
11 """marker class for variables""" | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
12 Undefined = Undefined() # singleton | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
13 | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
14 class Variable(object): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
15 """variable object for MakeItSo templates""" | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
16 | 
| 
58
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
17 def __init__(self, name, description=None, default=Undefined, | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
18 cast=None): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
19 self.name = name | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
20 self.default = default | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
21 self.description = description | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
22 | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
23 # TODO (maybe): get cast from default variable type if not None | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
24 self.cast = cast | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
25 | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
26 self._set = False | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
27 | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
28 def set(self, value): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
29 if self.cast: | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
30 self.value = self.cast(value) | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
31 else: | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
32 self.value = value | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
33 self._set = True | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
34 | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
35 def read(self, fd=sys.stdout): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
36 """prompt and read the variable from stdin""" | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
37 fd.write(self.display()) | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
38 self.set(raw_input()) | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
39 | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
40 def display(self): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
41 description = self.description or self.name | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
42 if self.default: | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
43 return 'Enter %s [DEFAULT: %s]:' % (description, repr(self.default)) | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
44 else: | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
45 return 'Enter %s:' % description | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
46 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
47 class MakeItSoTemplate(ContentTemplate): | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
48 """API template for MakeItSo""" | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
49 | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
50 # name of the template | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
51 name = '' | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
52 | 
| 
56
 
728cae02a6ed
* fix another variable-related bug
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
44 
diff
changeset
 | 
53 # description of the template | 
| 
 
728cae02a6ed
* fix another variable-related bug
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
44 
diff
changeset
 | 
54 description = '' | 
| 
 
728cae02a6ed
* fix another variable-related bug
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
44 
diff
changeset
 | 
55 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
56 # templates to interpolate | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
57 # paths are relative to __file__ unless absolute or URIs | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
58 templates = [] | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
59 | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
60 # variables | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
61 vars = [] | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
62 | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
63 # inspect the templates for more variables | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
64 look = False | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
65 | 
| 
58
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
66 def __init__(self, output=None, interactive=True, usedefaults=True, | 
| 
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
67 variables=None): | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
68 """ | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
69 - output : output file or directory | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
70 - interactive : whether tointeractively get variables | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
71 - usedefaults : try to use the default values if not specified | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
72 """ | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
73 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
74 assert self.templates | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
75 self.output = output | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
76 self.interactive = interactive | 
| 
58
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
77 self.location = os.path.dirname(os.path.abspath(__file__)) | 
| 
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
78 self.defaults = variables.copy() | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
79 | 
| 
58
 
112bf081148c
make a full CLI class for a single API template
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
56 
diff
changeset
 | 
80 # make a dictionary of the variables for lookup convenience | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
81 self.vardict = {} | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
82 for i in self.vars: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
83 self.vardict[i.name] = i | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
84 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
85 # ensure all of these templates exist | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
86 for template in self.templates: | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
87 if template.startswith('http://') or template.startswith('https://'): | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
88 continue | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
89 if os.path.isabs(template): | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
90 path = template | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
91 else: | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
92 path = os.path.join(self.location, template) | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
93 assert os.path.exists(template) | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
94 | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
95 def missing(self, **variables): | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
96 if self.look: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
97 pass | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
98 else: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
99 if self.usedefaults: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
100 pass | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
101 | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
102 def pre(self, **variables): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
103 """do stuff before interpolation""" | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
104 | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
105 def substitute(self, **variables): | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
106 """do the substitution""" | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
107 vars = self.get_variables(**variables) | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
108 self.pre(**variables) | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
109 self.check_missing(vars) | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
110 self.post(**variables) | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
111 | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
112 def post(self, **variables): | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
113 """do stuff after interpolation""" | 
| 
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
114 | 
| 
44
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
115 def read_variables(self, variables): | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
116 """read variables from stdin""" | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
117 retval = {} | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
118 for i in variables: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
119 if i in self.vardict: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
120 self.vardict[i].read() | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
121 else: | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
122 retval.update(ContentTemplate.read_variables(self, (i,))) | 
| 
 
6e08cca7d656
do API variable reading and stubbing a bit for control flow
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
42 
diff
changeset
 | 
123 return retval | 
| 
41
 
9956e13558dd
stub out what API templates will look like; put these in a separate file as theres no reason to clutter up the command line entry point any further
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
124 | 
| 
42
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
125 class PasteScriptTemplate(MakeItSoTemplate): | 
| 
 
73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
 
Jeff Hammel <jhammel@mozilla.com> 
parents: 
41 
diff
changeset
 | 
126 """template for backwards compatability with PasteScript""" | 
