changeset 164:78ba371ea1e9

merge Os.File into Io.File and remove Os git-svn-id: https://luan-java.googlecode.com/svn/trunk@165 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 20 Jun 2014 23:23:16 +0000
parents 3c95a2291d64
children 94bbc4cbc106
files src/luan/lib/IoLib.java src/luan/lib/OsLib.java src/luan/lib/init.luan
diffstat 3 files changed, 53 insertions(+), 114 deletions(-) [+]
line wrap: on
line diff
--- a/src/luan/lib/IoLib.java	Fri Jun 20 09:32:36 2014 +0000
+++ b/src/luan/lib/IoLib.java	Fri Jun 20 23:23:16 2014 +0000
@@ -349,15 +349,57 @@
 			return file.toString();
 		}
 
-		public LuanTable os_file() {
-			return new OsLib.LuanFile(file).table();
+		public LuanTable child(String name) {
+			return new LuanFile(new File(file,name)).table();
+		}
+
+		public LuanTable children() {
+			File[] files = file.listFiles();
+			if( files==null )
+				return null;
+			LuanTable list = new LuanTable();
+			for( File f : files ) {
+				list.add(new LuanFile(f).table());
+			}
+			return list;
+		}
+
+		public boolean exists() {
+			return Utils.exists(file);
 		}
 
 		@Override LuanTable table() {
 			LuanTable tbl = super.table();
 			try {
-				tbl.put( "os_file", new LuanJavaFunction(
-					LuanFile.class.getMethod( "os_file" ), this
+				tbl.put( "name", new LuanJavaFunction(
+					File.class.getMethod( "getName" ), file
+				) );
+				tbl.put( "exists", new LuanJavaFunction(
+					LuanFile.class.getMethod( "exists" ), this
+				) );
+				tbl.put( "is_directory", new LuanJavaFunction(
+					File.class.getMethod( "isDirectory" ), file
+				) );
+				tbl.put( "is_file", new LuanJavaFunction(
+					File.class.getMethod( "isFile" ), file
+				) );
+				tbl.put( "delete", new LuanJavaFunction(
+					File.class.getMethod( "delete" ), file
+				) );
+				tbl.put( "mkdir", new LuanJavaFunction(
+					File.class.getMethod( "mkdir" ), file
+				) );
+				tbl.put( "mkdirs", new LuanJavaFunction(
+					File.class.getMethod( "mkdirs" ), file
+				) );
+				tbl.put( "last_modified", new LuanJavaFunction(
+					File.class.getMethod( "lastModified" ), file
+				) );
+				tbl.put( "child", new LuanJavaFunction(
+					LuanFile.class.getMethod( "child", String.class ), this
+				) );
+				tbl.put( "children", new LuanJavaFunction(
+					LuanFile.class.getMethod( "children" ), this
 				) );
 			} catch(NoSuchMethodException e) {
 				throw new RuntimeException(e);
@@ -370,13 +412,14 @@
 		if( Utils.isFile(name) )
 			return new LuanFile(name);
 		String url = Utils.toUrl(name);
-		if( url == null )
-			throw luan.exception( "file '"+name+"' not found" );
-		try {
-			return new LuanUrl(url);
-		} catch(MalformedURLException e) {
-			throw new RuntimeException(e);
+		if( url != null ) {
+			try {
+				return new LuanUrl(url);
+			} catch(MalformedURLException e) {
+				throw new RuntimeException(e);
+			}
 		}
+		throw luan.exception( "file '"+name+"' not found" );
 	}
 
 	public static LuanTable File(LuanState luan,String name) throws LuanException {
--- a/src/luan/lib/OsLib.java	Fri Jun 20 09:32:36 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-package luan.lib;
-
-import java.io.File;
-import luan.LuanState;
-import luan.LuanTable;
-import luan.LuanFunction;
-import luan.LuanJavaFunction;
-import luan.LuanException;
-
-
-public final class OsLib {
-
-	public static final LuanFunction LOADER = new LuanFunction() {
-		@Override public Object call(LuanState luan,Object[] args) {
-			LuanTable module = new LuanTable();
-			try {
-				add( module, "File", String.class );
-			} catch(NoSuchMethodException e) {
-				throw new RuntimeException(e);
-			}
-			return module;
-		}
-	};
-
-	private static void add(LuanTable t,String method,Class<?>... parameterTypes) throws NoSuchMethodException {
-		t.put( method, new LuanJavaFunction(OsLib.class.getMethod(method,parameterTypes),null) );
-	}
-
-	public static class LuanFile {
-		private final File file;
-
-		public LuanFile(String name) {
-			this(new File(name));
-		}
-
-		public LuanFile(File file) {
-			this.file = file;
-		}
-
-		public LuanTable child(String name) {
-			return new LuanFile(new File(file,name)).table();
-		}
-
-		public LuanTable children() {
-			File[] files = file.listFiles();
-			if( files==null )
-				return null;
-			LuanTable list = new LuanTable();
-			for( File f : files ) {
-				list.add(new LuanFile(f).table());
-			}
-			return list;
-		}
-
-		public boolean exists() {
-			return Utils.exists(file);
-		}
-
-		LuanTable table() {
-			LuanTable tbl = new IoLib.LuanFile(file).table();
-			try {
-				tbl.put( "name", new LuanJavaFunction(
-					File.class.getMethod( "getName" ), file
-				) );
-				tbl.put( "exists", new LuanJavaFunction(
-					LuanFile.class.getMethod( "exists" ), this
-				) );
-				tbl.put( "is_directory", new LuanJavaFunction(
-					File.class.getMethod( "isDirectory" ), file
-				) );
-				tbl.put( "is_file", new LuanJavaFunction(
-					File.class.getMethod( "isFile" ), file
-				) );
-				tbl.put( "delete", new LuanJavaFunction(
-					File.class.getMethod( "delete" ), file
-				) );
-				tbl.put( "mkdir", new LuanJavaFunction(
-					File.class.getMethod( "mkdir" ), file
-				) );
-				tbl.put( "mkdirs", new LuanJavaFunction(
-					File.class.getMethod( "mkdirs" ), file
-				) );
-				tbl.put( "last_modified", new LuanJavaFunction(
-					File.class.getMethod( "lastModified" ), file
-				) );
-				tbl.put( "child", new LuanJavaFunction(
-					LuanFile.class.getMethod( "child", String.class ), this
-				) );
-				tbl.put( "children", new LuanJavaFunction(
-					LuanFile.class.getMethod( "children" ), this
-				) );
-			} catch(NoSuchMethodException e) {
-				throw new RuntimeException(e);
-			}
-			return tbl;
-		}
-	}
-
-	public static LuanTable File(String name) throws LuanException {
-		return new LuanFile(name).table();
-	}
-
-}
--- a/src/luan/lib/init.luan	Fri Jun 20 09:32:36 2014 +0000
+++ b/src/luan/lib/init.luan	Fri Jun 20 23:23:16 2014 +0000
@@ -55,7 +55,6 @@
 Package.global_import("Html","luan.lib.HtmlLib.LOADER")
 Package.global_import("Thread","luan.lib.ThreadLib.LOADER")
 Package.global_import("Binary","luan.lib.BinaryLib.LOADER")
-Package.global_import("Os","luan.lib.OsLib.LOADER")
 
 
 function Io.print_to(out,...)