@@ -35,14 +35,12 @@ def analyze!
35
35
36
36
# There is one optimal solution for two-fer which needs
37
37
# no comments and can just be approved. If we have it, then
38
- # let's just acknowledge it and get out of here.
39
- check_for_optimal_solution!
40
-
41
- # We often see solutions that are correct but use different
42
- # string concatenation options (e.g. string#+, String.format, etc)
43
- # We'll approve these but want to leave a comment that introduces
44
- # them to string interpolation in case they don't know about it.
45
- check_for_correct_solution_without_string_interpolaton!
38
+ # let's just acknowledge it and get out of here. We also often see
39
+ # solutions that are correct but use different # string concatenation
40
+ # options (e.g. string#+, String.format, etc). We'll approve these but
41
+ # want to leave a comment that introduces them to string interpolation
42
+ # in case they don't know about it.
43
+ check_for_single_line_solution!
46
44
47
45
# The most common error in twofer is people using conditionals
48
46
# to check where the value passed in is nil, rather than using a default
@@ -87,7 +85,10 @@ def check_method_signature!
87
85
disapprove! ( :missing_default_param ) unless solution . first_paramater_has_default_value?
88
86
end
89
87
90
- def check_for_optimal_solution!
88
+ def check_for_single_line_solution!
89
+ return unless solution . default_argument_is_optimal?
90
+ return unless solution . one_line_solution?
91
+
91
92
# The optional solution looks like this:
92
93
#
93
94
# def self.two_fer(name="you")
@@ -97,23 +98,13 @@ def check_for_optimal_solution!
97
98
# The default argument must be 'you', and it must just be a single
98
99
# statement using interpolation. Other solutions might be approved
99
100
# but this is the only one that we would approve without comment.
100
-
101
- return unless solution . default_argument_is_optimal?
102
- return unless solution . one_line_solution?
103
- return unless solution . uses_string_interpolation?
104
-
105
- # If the interpolation does not follow this pattern then the student has
106
- # done something weird, so let's get a mentor to look at it
107
- refer_to_mentor! unless solution . string_interpolation_is_correct?
108
-
109
- approve_if_implicit_return!
110
- end
111
-
112
- def check_for_correct_solution_without_string_interpolaton!
113
- # If we don't have a correct default argument or a one line
114
- # solution then let's just get out of here.
115
- return unless solution . default_argument_is_optimal?
116
- return unless solution . one_line_solution?
101
+ if solution . uses_string_interpolation?
102
+ if solution . string_interpolation_is_correct?
103
+ approve_if_implicit_return!
104
+ else
105
+ refer_to_mentor!
106
+ end
107
+ end
117
108
118
109
# In the case of:
119
110
# "One for " + name + ", one for me."
0 commit comments