43 lines
887 B
Factor
43 lines
887 B
Factor
! Copyright (C) 2008 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors classes sequences splitting kernel namespaces
|
|
make words math math.parser io.styles prettyprint assocs ;
|
|
IN: summary
|
|
|
|
GENERIC: summary ( object -- string )
|
|
|
|
: object-summary ( object -- string )
|
|
class name>> " instance" append ;
|
|
|
|
M: object summary object-summary ;
|
|
|
|
M: input summary
|
|
[
|
|
"Input: " %
|
|
string>> "\n" split1 swap %
|
|
"..." "" ? %
|
|
] "" make ;
|
|
|
|
M: word summary synopsis ;
|
|
|
|
M: sequence summary
|
|
[
|
|
dup class name>> %
|
|
" with " %
|
|
length #
|
|
" elements" %
|
|
] "" make ;
|
|
|
|
M: assoc summary
|
|
[
|
|
dup class name>> %
|
|
" with " %
|
|
assoc-size #
|
|
" entries" %
|
|
] "" make ;
|
|
|
|
! Override sequence => integer instance
|
|
M: f summary object-summary ;
|
|
|
|
M: integer summary object-summary ;
|