def process(self, broker):
        """
        Ensures dependencies have been met before delegating to `self.invoke`.
        """
        if any(i in broker for i in dr.IGNORE.get(self.component, [])):
            raise dr.SkipComponent()
        missing = self.get_missing_dependencies(broker)
        if missing:
            return _make_skip(dr.get_name(self.component), missing)
        r = self.invoke(broker)
        if r is None:
            raise dr.SkipComponent()
        if not isinstance(r, Response):
            raise Exception("rules must return Response objects.")
        return r
Ensures dependencies have been met before delegating to `self.invoke`.