Changeset 1132
- Timestamp:
- 2008-08-14 21:18:56 (5 months ago)
- Files:
-
- trunk/lib/parser/lib/rules/zena.rb (modified) (4 diffs)
- trunk/test/helpers/zena_parser/ajax.yml (modified) (1 diff)
- trunk/test/helpers/zena_parser/basic.yml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/parser/lib/rules/zena.rb
r1131 r1132 1429 1429 1430 1430 @params[:alt_class] ||= @html_tag_params.delete(:alt_class) 1431 raise # TODO: add alt_reverse='true' to start counting from bottom (if order last on top...)1431 # FIXME: add alt_reverse='true' to start counting from bottom (if order last on top...) 1432 1432 if @params[:alt_class] || @params[:join] 1433 1433 join = @params[:join] || '' 1434 1434 join = join.gsub(/<([^%])/, '<\1').gsub(/([^%])>/, '\1>') 1435 out "<% #{var}_max_index = #{list}.size - 1 -%>" if @params[:alt_reverse] 1435 1436 out "<% #{list}.each_with_index do |#{var},#{var}_index| -%>" 1436 1437 out "<%= #{var}_index > 0 ? #{join.inspect} : '' %>" 1437 1438 1438 1439 if alt_class = @params[:alt_class] 1440 alt_test = @params[:alt_reverse] == 'true' ? "(#{var}_max_index - #{var}_index) % 2 != 0" : "#{var}_index % 2 != 0" 1439 1441 if html_class = @html_tag_params.delete(:class) 1440 html_append = " class='#{html_class}<%= #{ var}_index % 2 != 0? #{(' ' + alt_class).inspect} : '' %>'"1442 html_append = " class='#{html_class}<%= #{alt_test} ? #{(' ' + alt_class).inspect} : '' %>'" 1441 1443 else 1442 html_append = "<%= #{ var}_index % 2 != 0? ' class=#{alt_class.inspect}' : '' %>"1444 html_append = "<%= #{alt_test} ? ' class=#{alt_class.inspect}' : '' %>" 1443 1445 end 1444 1446 else … … 2578 2580 "#{node}[:id] == #{node_name}[:id]" 2579 2581 when 'start' 2580 "#{node}[:zip] == (params[:s] || #{node_name}[:zip]).to_i"2582 "#{node}[:zip] == (params[:s] || @node[:zip]).to_i" 2581 2583 when 'parent' 2582 2584 "#{node}[:id] == #{node_name}[:parent_id]" … … 2699 2701 2700 2702 def node_attribute(str, opts={}) 2703 return "(params[:s] || @node[:zip]).to_i" if str == 'start.id' 2701 2704 attribute, att_node, klass = get_attribute_and_node(str) 2702 2705 return 'nil' unless attribute … … 2926 2929 else 2927 2930 attribute = res[:name] 2928 if @context[:in_filter] 2931 if @context[:in_filter] || attribute == 's' 2929 2932 res[:name] = attribute 2930 2933 else trunk/test/helpers/zena_parser/ajax.yml
r1131 r1132 180 180 start_id: 181 181 src: "<r:form><input type='hidden' name='s' set_value='[start.id]'/></r:form>" 182 res: " ."182 res: "/<input name='s' type='hidden' value='22'/>/" trunk/test/helpers/zena_parser/basic.yml
r1128 r1132 448 448 src: "<ol do='pages'><li do='each' alt_class='blue' do='[name]'/></ol>" 449 449 res: "<ol><li>status</li><li class=\"blue\">track</li></ol>" 450 451 each_alternate_class_reverse: 452 context: 453 node: 'cleanWater' 454 src: "<ol do='pages'><li do='each' alt_class='blue' alt_reverse='true' do='[name]'/></ol>" 455 res: "<ol><li class=\"blue\">status</li><li>track</li></ol>" 450 456 451 457 each_alternate_class_two:
