lib/zafu/process/context.rb in zafu-0.6.3 vs lib/zafu/process/context.rb in zafu-0.7.0
- old
+ new
@@ -9,32 +9,34 @@
if @params[:alt_class] || @params[:join]
out "<% #{var}_max_index = #{node}.size - 1 -%>" if @params[:alt_reverse]
out "<% #{node}.each_with_index do |#{var},#{var}_index| -%>"
if join = @params[:join]
- join = RubyLess.translate_string(join, self)
+ join = RubyLess.translate_string(self, join)
#if join_clause = @params[:join_if]
# set_stored(Node, 'prev', "#{var}_prev")
# cond = get_test_condition(var, :test=>join_clause)
# out "<%= #{var}_prev = #{node}[#{var}_index - 1]; (#{var}_index > 0 && #{cond}) ? #{join.inspect} : '' %>"
#else
out "<%= #{var}_index > 0 ? #{join} : '' %>"
#end
end
if alt_class = @params[:alt_class]
- alt_class = RubyLess.translate_string(alt_class, self)
+ alt_class = RubyLess.translate_string(self, alt_class)
alt_test = @params[:alt_reverse] == 'true' ? "(#{var}_max_index - #{var}_index) % 2 != 0" : "#{var}_index % 2 != 0"
@markup.append_dyn_param(:class, "<%= #{alt_test} ? #{alt_class} : '' %>")
@markup.tag ||= 'div'
end
else
out "<% #{node}.each do |#{var}| -%>"
end
- with_context(:node => node.move_to(var, node.klass.first)) do
+ with_context(:node => node.move_to(var, node.klass.first, :query => node.opts[:query])) do
+ # We pass the :query option for RubyLess resolution by using the QueryBuilder finder
+
# The id set here should be used as prefix for sub-nodes to ensure uniqueness of generated DOM ids
if node.list_context?
# we are still in a list (example: previous context was [[Node]], current is [Node])
else
node.propagate_dom_scope!
@@ -98,15 +100,15 @@
# Expand blocks in a new context.
# This method is partly overwriten in Ajax
def expand_with_finder(finder)
if finder[:nil]
open_node_context(finder, :form => nil) do # do not propagate :form
- expand_if("#{var} = #{finder[:method]}", node.move_to(var, finder[:class]))
+ expand_if("#{var} = #{finder[:method]}", node.move_to(var, finder[:class], finder.merge(:nil => false)))
end
else
res = ''
res << "<% #{var} = #{finder[:method]} -%>"
- open_node_context(finder, :node => node.move_to(var, finder[:class]), :form => nil) do
+ open_node_context(finder, :node => node.move_to(var, finder[:class], finder), :form => nil) do
res << wrap(expand_with)
end
res
end
end