factor/core/generic/hook/hook.factor

28 lines
819 B
Factor
Raw Normal View History

2009-04-24 21:43:01 -04:00
! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors definitions generic generic.single
generic.single.private kernel namespaces words kernel.private
quotations sequences ;
QUALIFIED-WITH: generic.single.private gsp
2009-04-24 21:43:01 -04:00
IN: generic.hook
TUPLE: hook-combination < single-combination var ;
C: <hook-combination> hook-combination
PREDICATE: hook-generic < generic
"combination" word-prop hook-combination? ;
M: hook-combination picker
combination get var>> [ get ] curry ;
M: hook-combination dispatch# drop 0 ;
M: hook-combination mega-cache-quot
1quotation picker [ gsp:lookup-method (execute) ] surround ;
2009-04-24 21:43:01 -04:00
M: hook-generic definer drop \ HOOK: f ;
M: hook-generic effective-method
[ "combination" word-prop var>> get ] keep method-for-object ;