no block component/element in array of dependencies #1934
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Actuellement, en appelant la méthode
recursive_dependencies
, on ajoute dans le tableau final les blocs ainsi que leurs éléments.Cependant, ces "objets" n'étant pas exportable sur git, et n'étant pas utile dans le cas des connexions, ils n'ont aucune raison d'exister dans le tableau de dépendances.
Pour remédier à ça, il suffit de tester si la dépendance en cours est un descendant d'ActiveRecord::Base. Si c'est le cas, on l'ajoute au tableau et on continue la récursion. Si ce n'est pas le cas, on ne l'ajoute pas au tableau mais on continue quand même la récursion. Si la récursion repasse par le même bloc, un early return sera trigger car le bloc sera déjà dans le tableau de dépendances.
En prenant l'exemple d'un University::Person en production et en appelant la méthode
direct_sources_with_dependencies_for_website
utilisé dans la synchronisation des objets indirects, on passe de 3541 à 724 éléments.En détail :