Sha256: 574b444a3276d3ddb034c73f6a38d6a92f1d74ef0a751e1cfffde5217d0b1e60
Contents?: true
Size: 774 Bytes
Versions: 1
Compression:
Stored size: 774 Bytes
Contents
# frozen_string_literal: true module MiniDefender::ValidatesInput extend ActiveSupport::Concern def validate!(rules, coerced = false) data = cleanse_data(params.to_unsafe_hash.deep_stringify_keys) validator = MiniDefender::Validator.new(rules, data) validator.validate! coerced ? validator.coerced : validator.data end private def cleanse_data(data, depth = 1) return data if depth > 16 case data when Array data.map{ |v| cleanse_data(v, depth + 1) }.reject(&:nil?) when Hash data.to_h{ |k, v| [k, cleanse_data(v, depth + 1)] }.compact when Numeric, TrueClass, FalseClass, NilClass data else data = data.to_s.strip data = nil if data == '' data end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mini_defender-0.3.2 | lib/mini_defender/validates_input.rb |