From 7ec68e0aa7fce17bee0ea28fde27c0224c48ed8c Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 2 Apr 2008 16:32:34 -0500 Subject: [PATCH] singleton docs --- core/classes/classes-docs.factor | 1 + core/classes/singleton/singleton-docs.factor | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core/classes/classes-docs.factor b/core/classes/classes-docs.factor index 9573de8949..5cc815fc36 100755 --- a/core/classes/classes-docs.factor +++ b/core/classes/classes-docs.factor @@ -47,6 +47,7 @@ $nl "Other sorts of classes:" { $subsection "builtin-classes" } { $subsection "unions" } +{ $subsection "singletons" } { $subsection "mixins" } { $subsection "predicates" } "Classes can be inspected and operated upon:" diff --git a/core/classes/singleton/singleton-docs.factor b/core/classes/singleton/singleton-docs.factor index 95b5b6af18..8548f84a3a 100644 --- a/core/classes/singleton/singleton-docs.factor +++ b/core/classes/singleton/singleton-docs.factor @@ -1,6 +1,11 @@ USING: help.markup help.syntax kernel words ; IN: classes.singleton +ARTICLE: "singletons" "Singleton classes" +"A singleton is a class with only one instance and with no state. Methods may dispatch off of singleton classes." +{ $subsection POSTPONE: SINGLETON: } +{ $subsection define-singleton-class } ; + HELP: SINGLETON: { $syntax "SINGLETON: class" } { $values @@ -8,7 +13,16 @@ HELP: SINGLETON: } { $description "Defines a new predicate class whose superclass is " { $link word } ". Only one instance of a singleton may exist because classes are " { $link eq? } " to themselves. Methods may be defined on a singleton." } { $examples - { $example "USING: singleton kernel io ;" "SINGLETON: foo\nGENERIC: bar ( obj -- )\nM: foo bar drop \"a foo!\" print ;\nfoo bar" "a foo!" } + { $example "USING: classes.singleton kernel io ;" "SINGLETON: foo\nGENERIC: bar ( obj -- )\nM: foo bar drop \"a foo!\" print ;\nfoo bar" "a foo!" } } { $see-also POSTPONE: PREDICATE: } ; + +HELP: define-singleton-class +{ $values { "word" "a new word" } } +{ $description + "Defines a newly created word to be a singleton class." } ; + +{ POSTPONE: SINGLETON: define-singleton-class } related-words + +ABOUT: "singletons"