Changeset 1163

Show
Ignore:
Timestamp:
2008-09-18 15:32:47 (4 months ago)
Author:
gaspard
Message:

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

Fixed a bug preventing the use of test conditions with nil values.
To test a nil value you must use the empty string: <r:if test='custom_a eq ""'>...</r:if>

Files:

Legend:

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

    r1162 r1163  
    25702570              else 
    25712571                if node_attr = node_attribute(part, :node => node) 
    2572                   toi ? "#{node_attr}.to_i" : node_attr 
     2572                  toi ? "#{node_attr}.to_i" : "#{node_attr}.to_s" 
    25732573                else 
    25742574                  nil 
  • trunk/test/fixtures/files/Node-test.zafu

    r1161 r1163  
    9696 
    9797<hr/> 
     98 
     99<h2>swap</h2> 
     100<style> 
     101.orange { background:orange;} 
     102.green  { background:green;} 
     103</style> 
     104<div id='swap' class='orange' do='block' green_if='custom_a eq 100'> 
     105  <span do='swap' states=',100' attr='custom_a' publish='true'><r:if test='custom_a eq 100'><r:t>done</r:t><r:else do='t'>open</r:else></r:if></span> custom_a: <b do='[custom_a]'/> 
     106</div> 
    98107 
    99108<h2>drag & drop</h2> 
  • trunk/test/helpers/zena_parser/basic.yml

    r1157 r1163  
    531531  tem: "<% if params[:f].to_i == 3 -%>three<% end -%> / <% if !params[:f].blank? -%>exist<% end -%>" 
    532532 
     533if_in_if: 
     534  src: "<r:if test='id eq 22'><r:if test='1 eq 2'>strange...<r:else>wrong!</r:else></r:if><r:else>other node</r:else></r:if>" 
     535  tem: "<% if @node.zip.to_i == 22 -%><% if 1 == 2 -%>strange...<% elsif true -%>wrong!<% end -%><% elsif true -%>other node<% end -%>" 
     536  res: "wrong!" 
     537 
    533538do_if: 
    534539  src: "<b do='if' test='1 eq 2'>it's true<r:else>it's false</r:else></b>" 
     
    550555  src: "<r:root><r:pages><li do='each' on_if_node='ancestor' class='hello' join=', '><r:show attr='name'/></li></r:pages></r:root>" 
    551556  res: "<li class='hello'>collections</li>, <li class='hello'>nature</li>, <li class='hello'>people</li>, <li class='on'>projects</li>, <li class='hello'>skins</li>" 
     557 
     558on_if_empty: 
     559  src: "<li do='void' on_if='custom_a eq \"\"'>hello</li>" 
     560  tem: "<li<%= @node.custom_a.to_s == \"\" ? \" class='on'\" : \"\" %>>hello</li>" 
     561  res: "<li class='on'>hello</li>" 
    552562 
    553563# var1 = stored 'papa'