Mercurial Hosting > luan
diff core/src/luan/modules/IoLuan.java @ 462:2e79b47d02a2
remove all command line options;
add add_extension boolean arg to scheme fns;
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 06 May 2015 16:54:20 -0600 |
parents | 5b36f663a1b8 |
children | f1601a4ce1aa |
line wrap: on
line diff
--- a/core/src/luan/modules/IoLuan.java Wed May 06 14:51:23 2015 -0600 +++ b/core/src/luan/modules/IoLuan.java Wed May 06 16:54:20 2015 -0600 @@ -492,14 +492,18 @@ return new LuanString(s).table(); } - public static LuanTable file(LuanState luan,String name) throws LuanException { + public static LuanTable file(LuanState luan,String name,Boolean addExtension) throws LuanException { + if( addExtension != null && addExtension ) + name += ".luan"; File file = new File(name); return new LuanFile(file).table(); } - public static LuanTable classpath(LuanState luan,String name) throws LuanException { + public static LuanTable classpath(LuanState luan,String name,Boolean addExtension) throws LuanException { if( name.contains("//") ) return null; + if( addExtension != null && addExtension ) + name += ".luan"; String path = name; check(luan,"classpath:"+path); URL url; @@ -528,20 +532,22 @@ return null; } - private static LuanTable url(String url) throws IOException { + private static LuanTable url(String url,Boolean addExtension) throws IOException { + if( addExtension != null && addExtension ) + url += ".luan"; return new LuanUrl(new URL(url)).table(); } - public static LuanTable http(String path) throws IOException { - return url("http:"+path); + public static LuanTable http(String path,Boolean addExtension) throws IOException { + return url("http:"+path,addExtension); } - public static LuanTable https(String path) throws IOException { - return url("https:"+path); + public static LuanTable https(String path,Boolean addExtension) throws IOException { + return url("https:"+path,addExtension); } - public static LuanTable luan(LuanState luan,String path) throws LuanException { - return classpath( luan, "luan/modules/" + path ); + public static LuanTable luan(LuanState luan,String path,Boolean addExtension) throws LuanException { + return classpath( luan, "luan/modules/" + path, addExtension ); } public static LuanTable stdin(LuanState luan) throws LuanException { @@ -553,12 +559,12 @@ LuanTable schemes = new LuanTable(); try { add( schemes, "string", LuanState.class, String.class ); - add( schemes, "file", LuanState.class, String.class ); - add( schemes, "classpath", LuanState.class, String.class ); + add( schemes, "file", LuanState.class, String.class, Boolean.class ); + add( schemes, "classpath", LuanState.class, String.class, Boolean.class ); add( schemes, "socket", LuanState.class, String.class ); - add( schemes, "http", String.class ); - add( schemes, "https", String.class ); - add( schemes, "luan", LuanState.class, String.class ); + add( schemes, "http", String.class, Boolean.class ); + add( schemes, "https", String.class, Boolean.class ); + add( schemes, "luan", LuanState.class, String.class, Boolean.class ); add( schemes, "stdin", LuanState.class ); } catch(NoSuchMethodException e) { throw new RuntimeException(e); @@ -576,17 +582,17 @@ return t; } - public static LuanTable uri(LuanState luan,String name) throws LuanException { + public static LuanTable uri(LuanState luan,String name,Boolean addExtension) throws LuanException { int i = name.indexOf(':'); if( i == -1 ) - throw luan.exception( "invalid Io name '"+name+"', missing scheme" ); + throw luan.exception( "invalid Io.uri name '"+name+"', missing scheme" ); String scheme = name.substring(0,i); String location = name.substring(i+1); LuanTable schemes = schemes(luan); LuanFunction opener = (LuanFunction)schemes.get(luan,scheme); if( opener == null ) throw luan.exception( "invalid scheme '"+scheme+"' in '"+name+"'" ); - return (LuanTable)Luan.first(luan.call(opener,"<open \""+name+"\">",new Object[]{location})); + return (LuanTable)Luan.first(luan.call(opener,"<open \""+name+"\">",new Object[]{location,addExtension})); } public static final class LuanSocket extends LuanIO {