summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index b43e0af9..baae83e4 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -35,9 +35,7 @@ def rule(obj):
return obj
def is_rule(obj):
- return getattr(obj, RULE_FLAG, False) is True
-
-
+ return callable(obj) and getattr(obj, RULE_FLAG, False) is True
class opt(plugable.ReadOnly):
@@ -65,7 +63,12 @@ class opt(plugable.ReadOnly):
rules = property(__get_rules)
def __rules_iter(self):
- pass
+ for name in dir(self):
+ if name.startswith('_'):
+ continue
+ attr = getattr(self, name)
+ if is_rule(attr):
+ yield attr
def validate(self, value):
pass