DEV: stop mutating inputs as a side effect

We had quite a few cases in core where inputs are being mutated as a side
effect of calling a method.

This handles all the cases where specs caught this.

Mutating inputs makes code harder to reason about. Eg:

```
frog = "frog"
jump(frog)
puts frog
"fly" # ?????
```

This commit is part of a followup commit that adds # frozen_string_literal
to all our specs.
This commit is contained in:
Sam Saffron
2019-04-30 10:25:53 +10:00
parent 442111af91
commit 0a5a6dfded
10 changed files with 55 additions and 23 deletions

View File

@@ -1,15 +1,16 @@
# frozen_string_literal: true
class ReplyByEmailAddressValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(val)
val&.strip!
return true if val.blank?
return false if !val.include?("@")
value = val.dup
value.strip!
if SiteSetting.find_related_post_with_key
return false if !value.include?("%{reply_key}")