Changeset 11

Show
Ignore:
Timestamp:
12/08/04 13:19:59 (4 years ago)
Author:
steve
Message:

set string vars

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/airspeed.py

    r10 r11  
    1616    EXPRESSION = '(' + NAME_OR_CALL + '(?:\.' + NAME_OR_CALL + ')*)' 
    1717    PLACEHOLDER_PATTERN = re.compile('^\$(!?)({?)' + EXPRESSION + '(}?)' + REST, re.IGNORECASE + re.DOTALL + re.MULTILINE) 
    18     SET_PATTERN = re.compile('^#set[ \t]*\([ \t]*\$(' + NAME + ')[ \t]*=[ \t]*(\d+)[ \t]*\)' + REST, re.IGNORECASE + re.DOTALL + re.MULTILINE) 
     18    SET_PATTERN = re.compile('^#set[ \t]*\([ \t]*\$(' + NAME + ')[ \t]*=[ \t]*(\d+|"[^"]+")[ \t]*\)' + REST, re.IGNORECASE + re.DOTALL + re.MULTILINE) 
    1919    BEGIN_IF_PATTERN = re.compile('^#if[ \t]*\([ \t]*\$' + EXPRESSION + '[ \t]*\)' + REST, re.IGNORECASE + re.DOTALL + re.MULTILINE) 
    2020    BEGIN_FOREACH_PATTERN = re.compile('^#foreach[ \t]*\([ \t]*\$(' + NAME + ')[ \t]+in[ \t]+\$' + EXPRESSION + '[ \t]*\)' + REST, re.IGNORECASE + re.DOTALL + re.MULTILINE) 
     
    188188 
    189189    def evaluate(self, output_stream, namespace): 
    190         namespace[self.var_name] = int(self.rvalue) 
     190        if self.rvalue.startswith('"'): 
     191            value = self.rvalue[1:-1] 
     192        else: 
     193            value = int(self.rvalue) 
     194        namespace[self.var_name] = value 
    191195 
    192196 
  • trunk/airspeed_test.py

    r10 r11  
    127127        self.assertEquals({}, namespace) 
    128128 
     129    def test_can_use_a_string_variable_defined_in_template(self): 
     130        template = airspeed.Template('#set ($value = "Steve")$value') 
     131        self.assertEquals("Steve", template.merge({})) 
     132 
    129133 
    130134if __name__ == '__main__':