[kupfer: 22/38] commatrick: Run (Take Result) takes all content as a MultipleLeaf



commit f993a7eb30fa6301785cca8e9a479383af2a8da0
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Fri Jan 15 19:54:15 2010 +0100

    commatrick: Run (Take Result) takes all content as a MultipleLeaf
    
    This makes the Run (Take Result) action take the full contents of a
    returned source as a multiple leaf, so that a subequent action will be
    on all of the contents at the same time. Not intended to be used on
    large catalogs, of course.

 kupfer/plugin/higherorder.py |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/kupfer/plugin/higherorder.py b/kupfer/plugin/higherorder.py
index a90f45b..22928f9 100644
--- a/kupfer/plugin/higherorder.py
+++ b/kupfer/plugin/higherorder.py
@@ -1,5 +1,5 @@
 from kupfer.objects import Action, Leaf
-from kupfer.obj.compose import ComposedLeaf
+from kupfer.obj.compose import ComposedLeaf, MultipleLeaf
 from kupfer import commandexec
 from kupfer import pretty
 
@@ -33,10 +33,13 @@ def _exec_no_show_result(composedleaf):
 	if result_type == commandexec.RESULT_OBJECT:
 		return ret
 	if result_type == commandexec.RESULT_SOURCE:
-		try:
-			return iter(ret.get_leaves()).next()
-		except StopIteration:
-			pass
+		leaves = list(ret.get_leaves())
+		if not leaves:
+			return
+		if len(leaves) == 1:
+			return leaves[0]
+		else:
+			return MultipleLeaf(leaves)
 
 
 def _save_result(cleaf):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]