]> gitweb.factorcode.org Git - factor.git/blob - basis/summary/summary.factor
Move make to its own vocabulary, remove fry _ feature
[factor.git] / basis / summary / summary.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors classes sequences splitting kernel namespaces
4 make words math math.parser io.styles prettyprint assocs ;
5 IN: summary
6
7 GENERIC: summary ( object -- string )
8
9 : object-summary ( object -- string )
10     class name>> " instance" append ;
11
12 M: object summary object-summary ;
13
14 M: input summary
15     [
16         "Input: " %
17         string>> "\n" split1 swap %
18         "..." "" ? %
19     ] "" make ;
20
21 M: word summary synopsis ;
22
23 M: sequence summary
24     [
25         dup class name>> %
26         " with " %
27         length #
28         " elements" %
29     ] "" make ;
30
31 M: assoc summary
32     [
33         dup class name>> %
34         " with " %
35         assoc-size #
36         " entries" %
37     ] "" make ;
38
39 ! Override sequence => integer instance
40 M: f summary object-summary ;
41
42 M: integer summary object-summary ;