]> gitweb.factorcode.org Git - factor.git/commitdiff
io.encodings.blackhole initial
authorYun, Jonghyouk <ageldama@gmail.com>
Sat, 28 Feb 2009 16:16:13 +0000 (01:16 +0900)
committerYun, Jonghyouk <ageldama@gmail.com>
Sat, 28 Feb 2009 16:16:13 +0000 (01:16 +0900)
basis/io/encodings/blackhole/authors.txt [new file with mode: 0644]
basis/io/encodings/blackhole/blackhole-docs.factor [new file with mode: 0644]
basis/io/encodings/blackhole/blackhole-tests.factor [new file with mode: 0644]
basis/io/encodings/blackhole/blackhole.factor [new file with mode: 0644]

diff --git a/basis/io/encodings/blackhole/authors.txt b/basis/io/encodings/blackhole/authors.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/basis/io/encodings/blackhole/blackhole-docs.factor b/basis/io/encodings/blackhole/blackhole-docs.factor
new file mode 100644 (file)
index 0000000..f0aeb9f
--- /dev/null
@@ -0,0 +1,22 @@
+! Copyright (C) 2009 Yun, Jonghyouk.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.syntax help.markup ;
+IN: io.encodings.blackhole
+
+ARTICLE: "io.encodings.blackhole" "yet another /dev/null in Factor encodings"
+"The " { $vocab-link "io.encodings.blackhole" } " vocab is yet another port of Un*x /dev/null special device file."
+{ $subsection blackhole }
+{
+    $see-also
+    "encodings-introduction"
+    "encode"  "decode"
+    "file-reader"  "file-writer"
+    "ascii" "binary"
+}
+;
+
+ABOUT: "io.encodings.blackhole"
+
+HELP: blackhole
+{ $class-description "blackhole encoding class specified to input/output encoding, it consume everything and produce nothing." }
+;
\ No newline at end of file
diff --git a/basis/io/encodings/blackhole/blackhole-tests.factor b/basis/io/encodings/blackhole/blackhole-tests.factor
new file mode 100644 (file)
index 0000000..8289aba
--- /dev/null
@@ -0,0 +1,7 @@
+! Copyright (C) 2009 Yun, Jonghyouk.
+! See http://factorcode.org/license.txt for BSD license.
+USING: io.encodings.blackhole io.encodings.string kernel tools.test ;
+IN: io.encodings.blackhole.tests
+
+[ t ] [ "foobar" blackhole encode B{ } = ] unit-test
+[ t ] [ "foobar" blackhole decode f = ] unit-test
diff --git a/basis/io/encodings/blackhole/blackhole.factor b/basis/io/encodings/blackhole/blackhole.factor
new file mode 100644 (file)
index 0000000..d8d669b
--- /dev/null
@@ -0,0 +1,22 @@
+! Copyright (C) 2009 Yun, Jonghyouk.
+! See http://factorcode.org/license.txt for BSD license.
+USING: byte-arrays combinators io io.encodings kernel multiline ;
+IN: io.encodings.blackhole
+
+
+SINGLETON: blackhole
+
+<PRIVATE
+
+M: blackhole encode-char ( char stream encoding -- )
+    drop swap drop { } >byte-array swap stream-write ;
+
+M: blackhole decode-char ( stream encoding -- char/f )
+    drop stream-read1
+    {
+        { [ dup not ] [ drop f ] }
+        [ drop replacement-char ]
+    } cond ;
+
+
+PRIVATE>
\ No newline at end of file