While working on a branch related to #370 I've noticed that the implemented equality checks are good but not enough ;)
Currently the checks are making some assumptions on the state of certain attributes:
"It is built via Spec.build so we're ignoring it", but it is on the public interface so users might just modify it
fully skipping the check around resources and operations due to recursive Spec references
not considering that in the case of internally_dereference_refs: true the check (as it was implemented) would have had an unbounded recursion
The goal of this PR is to address those issues (still the checks are not perfect, but they should be more accurate) as well as providing a sort of method documentation.
Coverage increased (+0.5%) to 99.006% when pulling 7701eb2cfabff681c21d38222bf15bb0e6d368dd on macisamuele:maci-enhance-equality-checks into 768479985a6d76b85c3649c24c7bb1ccc4dce74c on Yelp:master.
While working on a branch related to #370 I've noticed that the implemented equality checks are good but not enough ;)
Currently the checks are making some assumptions on the state of certain attributes:
internally_dereference_refs: true
the check (as it was implemented) would have had an unbounded recursionThe goal of this PR is to address those issues (still the checks are not perfect, but they should be more accurate) as well as providing a sort of method documentation.