Changeset 1187

Show
Ignore:
Timestamp:
2008-09-23 16:27:36 (4 months ago)
Author:
gaspard
Message:

commit b9b31762052b0cef2a98b665ad04ac197bf1fa55
Author: Gaspard Bucher <gaspard@teti.ch>

Enabled variables defined by [set] in test conditions.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/parser/lib/rules/zena.rb

    r1186 r1187  
    141141        # do='[text] 
    142142        @method = 'show' 
    143         @params[:var_or_attr] = $1 
     143        @params[:attr_or_date] = $1 
    144144      elsif @method =~ /^\{(.*)\}$/ 
    145145        # do='{v_text}' 
     
    258258 
    259259    def r_show 
    260       if var_or_attr = @params[:var_or_attr] 
    261         # using [var] shortcut. Can be either a var or an attribute 
    262         if @context[:vars] && @context[:vars].include?(var_or_attr) 
    263           @params[:var] = var_or_attr  
    264         elsif var_or_attr == 'current_date' || var_or_attr =~ /_at$/ 
    265           @params[:date] = var_or_attr 
    266         else 
    267           @params[:attr] = var_or_attr 
     260      if attr_or_date = @params[:attr_or_date] 
     261        # using [var] shortcut. Can be either a date or an attribute/var 
     262        if attr_or_date == 'current_date' || attr_or_date =~ /_at$/ 
     263          @params[:date] = attr_or_date 
     264        else 
     265          @params[:attr] = attr_or_date 
    268266        end 
    269267      end 
     
    27292727     
    27302728    def node_attribute(str, opts={}) 
     2729      if @context[:vars] && @context[:vars].include?(str) 
     2730        return "set_#{str}" 
     2731      end 
     2732       
    27312733      return "(params[:s] || @node[:zip]).to_i" if str == 'start.id' 
    27322734      attribute, att_node, klass = get_attribute_and_node(str) 
     
    27342736      return "params[:#{$1}]" if attribute =~ /^param:(\w+)$/ 
    27352737      return current_date if attribute == 'current_date' 
     2738       
    27362739       
    27372740      att_node  ||= opts[:node]       || node 
  • trunk/test/helpers/zena_parser/eval.yml

    r1072 r1187  
    4646  src: "<r:set var='name'>12345</r:set><b do='[name]'/>" 
    4747  res: "<b>12345</b>" 
     48 
     49test_var: 
     50  src: "<r:set var='hours'>3</r:set><r:if test='hours gt 0'>you have: <r:show attr='hours'/></r:if>" 
     51  res: "you have: 3"