# File lib/innate/helper/aspect.rb, line 81 def wrap_action_call(action, &block) return yield if action.options[:is_layout] wrap = SortedSet.new action.node.ancestral_trait_values(:wrap).each{|sset| wrap.merge(sset) } head, *tail = wrap.map{|k,v| v } tail.reverse! combined = tail.inject(block){|s,v| lambda{ __send__(v, action, &s) } } __send__(head, action, &combined) end