@@ -887,10 +887,8 class Issue < ActiveRecord::Base | |||
|
887 | 887 | issue_status[self] = ePROCESS_ALL |
|
888 | 888 | |
|
889 | 889 | while (!queue.empty?) do |
|
890 | ||
|
891 | 890 | current_issue = queue.shift |
|
892 | 891 | current_issue_status = issue_status[current_issue] |
|
893 | ||
|
894 | 892 | dependencies << current_issue |
|
895 | 893 | |
|
896 | 894 | # Add parent to queue, if not already in it. |
@@ -898,26 +896,20 class Issue < ActiveRecord::Base | |||
|
898 | 896 | parentStatus = issue_status[parent] |
|
899 | 897 | |
|
900 | 898 | if parent && (parentStatus == eNOT_DISCOVERED) && !except.include?(parent) |
|
901 | ||
|
902 | 899 | queue << parent |
|
903 | 900 | issue_status[parent] = ePROCESS_RELATIONS_ONLY |
|
904 | ||
|
905 | 901 | end |
|
906 | 902 | |
|
907 | 903 | # Add children to queue, but only if they are not already in it and |
|
908 | 904 | # the children of the current node need to be processed. |
|
909 | 905 | if current_issue.children && (current_issue_status == ePROCESS_CHILDREN_ONLY || current_issue_status == ePROCESS_ALL) |
|
910 | ||
|
911 | 906 | current_issue.children.each do |child| |
|
912 | ||
|
913 | 907 | if (issue_status[child] == eNOT_DISCOVERED) && !except.include?(child) |
|
914 | 908 | queue << child |
|
915 | 909 | issue_status[child] = ePROCESS_ALL |
|
916 | ||
|
917 | 910 | elsif (issue_status[child] == eRELATIONS_PROCESSED) && !except.include?(child) |
|
918 | 911 | queue << child |
|
919 | 912 | issue_status[child] = ePROCESS_CHILDREN_ONLY |
|
920 | ||
|
921 | 913 | elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) && !except.include?(child) |
|
922 | 914 | queue << child |
|
923 | 915 | issue_status[child] = ePROCESS_ALL |
@@ -927,15 +919,12 class Issue < ActiveRecord::Base | |||
|
927 | 919 | |
|
928 | 920 | # Add related issues to the queue, if they are not already in it. |
|
929 | 921 | current_issue.relations_from.map(&:issue_to).each do |relatedIssue| |
|
930 | ||
|
931 | 922 | if (issue_status[relatedIssue] == eNOT_DISCOVERED) && !except.include?(relatedIssue) |
|
932 | 923 | queue << relatedIssue |
|
933 | 924 | issue_status[relatedIssue] = ePROCESS_ALL |
|
934 | ||
|
935 | 925 | elsif (issue_status[relatedIssue] == eRELATIONS_PROCESSED) && !except.include?(relatedIssue) |
|
936 | 926 | queue << relatedIssue |
|
937 | 927 | issue_status[relatedIssue] = ePROCESS_CHILDREN_ONLY |
|
938 | ||
|
939 | 928 | elsif (issue_status[relatedIssue] == ePROCESS_RELATIONS_ONLY) && !except.include?(relatedIssue) |
|
940 | 929 | queue << relatedIssue |
|
941 | 930 | issue_status[relatedIssue] = ePROCESS_ALL |
@@ -945,11 +934,9 class Issue < ActiveRecord::Base | |||
|
945 | 934 | # Set new status for current issue |
|
946 | 935 | if (current_issue_status == ePROCESS_ALL) || (current_issue_status == ePROCESS_CHILDREN_ONLY) |
|
947 | 936 | issue_status[current_issue] = eALL_PROCESSED |
|
948 | ||
|
949 | 937 | elsif (current_issue_status == ePROCESS_RELATIONS_ONLY) |
|
950 | 938 | issue_status[current_issue] = eRELATIONS_PROCESSED |
|
951 | 939 | end |
|
952 | ||
|
953 | 940 | end # while |
|
954 | 941 | |
|
955 | 942 | # Remove the issues from the "except" parameter from the result array |
General Comments 0
You need to be logged in to leave comments.
Login now