changeset 748:de2418d11786

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 14 Jul 2016 21:09:55 -0600
parents d3a1e9a48a94
children 85f5444fb7d4
files core/src/luan/modules/IoLuan.java lucene/src/luan/modules/lucene/Lucene.luan
diffstat 2 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
diff -r d3a1e9a48a94 -r de2418d11786 core/src/luan/modules/IoLuan.java
--- a/core/src/luan/modules/IoLuan.java	Thu Jul 14 20:03:01 2016 -0600
+++ b/core/src/luan/modules/IoLuan.java	Thu Jul 14 21:09:55 2016 -0600
@@ -30,6 +30,7 @@
 import java.net.MalformedURLException;
 import java.net.UnknownHostException;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -331,11 +332,21 @@
 			return binaryWriter(new BufferedOutputStream(outputStream()));
 		}
 
-		public void zip(LuanState luan,String basePath,String... filePaths) throws LuanException, IOException {
-			if( filePaths.length == 0 ) {
+		public void zip(LuanState luan,String basePath,LuanTable filePathList) throws LuanException, IOException {
+			String[] filePaths;
+			if( filePathList==null ) {
 				File file = new File(basePath).getCanonicalFile();
 				filePaths = new String[]{file.toString()};
 				basePath = file.getParent();
+			} else {
+				List list = filePathList.asList();
+				filePaths = new String[list.size()];
+				for( int i=0; i<filePaths.length; i++ ) {
+					Object obj = list.get(i);
+					if( !(obj instanceof String) )
+						throw new LuanException("file paths must be strings");
+					filePaths[i] = (String)obj;
+				}
 			}
 			if( !basePath.endsWith("/") )
 				basePath += '/';
@@ -379,7 +390,7 @@
 					LuanIO.class.getMethod( "binary_writer" ), this
 				) );
 				tbl.rawPut( "zip", new LuanJavaFunction(
-					LuanIO.class.getMethod( "zip", LuanState.class, String.class, new String[0].getClass() ), this
+					LuanIO.class.getMethod( "zip", LuanState.class, String.class, LuanTable.class ), this
 				) );
 			} catch(NoSuchMethodException e) {
 				throw new RuntimeException(e);
diff -r d3a1e9a48a94 -r de2418d11786 lucene/src/luan/modules/lucene/Lucene.luan
--- a/lucene/src/luan/modules/lucene/Lucene.luan	Thu Jul 14 20:03:01 2016 -0600
+++ b/lucene/src/luan/modules/lucene/Lucene.luan	Thu Jul 14 21:09:55 2016 -0600
@@ -8,7 +8,6 @@
 local uri = Io.uri or error()
 local String = require "luan:String.luan"
 local matches = String.matches or error()
-local Table = require "luan:Table.luan"
 local LuceneIndex = require "java:luan.modules.lucene.LuceneIndex"
 local NumberFieldParser = require "java:luan.modules.lucene.queryparser.NumberFieldParser"
 local StringFieldParser = require "java:luan.modules.lucene.queryparser.StringFieldParser"
@@ -110,7 +109,7 @@
 				t[#t+1] = dir.."/"..file_name
 			end
 			local base = uri("file:"..dir).parent().to_string()
-			uri(zip_file).zip(base,Table.unpack(t))
+			uri(zip_file).zip(base,t)
 		end )
 	end