value_to_boolean(value), does not always return a boolean value, only
when true.
150: def value_to_boolean(value)
151: if value.is_a?(String) && value.blank?
152: nil
153: else
154: TRUE_VALUES.include?(value)
155: end
156: end
If value is contained in TRUE_VALUES then it returns true(TrueClass).
But if value is anything else it returns nil(NilClass) instead of
false(FalseClass)
This does not seem consistent or expected to me since false <> nil.
Since we have TRUE_VALUES and FALSE_VALUES, I think it should be
something like this.
150 def value_to_boolean(value)
151 if TRUE_VALUES.include?(value)
152 true
153 elsif FALSE_VALUES.include?(value)
154 false
155 else
156 nil
157 end
158 end