Class: HakumiComponents::Rails::ValidationMapper
- Inherits:
-
Object
- Object
- HakumiComponents::Rails::ValidationMapper
- Extended by:
- T::Sig
- Defined in:
- lib/hakumi_components/rails/validation_mapper.rb
Class Method Summary collapse
Class Method Details
.merge_rules(manual_rules, auto_rules) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/hakumi_components/rails/validation_mapper.rb', line 32 def merge_rules(manual_rules, auto_rules) return auto_rules if manual_rules.nil? || manual_rules.empty? return manual_rules if auto_rules.empty? manual_types = manual_rules.map { |rule| extract_rule_type(rule) }.compact merged = manual_rules.dup auto_rules.each do |auto_rule| type = extract_rule_type(auto_rule) merged << auto_rule unless type && manual_types.include?(type) end merged end |
.to_frontend_rules(object, attribute) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/hakumi_components/rails/validation_mapper.rb', line 11 def to_frontend_rules(object, attribute) reflection = ModelReflection.for(object) validators = reflection.validators_for(attribute) return [] if validators.empty? rules = T.let([], T::Array[Types::ValidationRule]) validators.each do |validator| mapped_rules = map_validator(validator, object, attribute) rules.concat(mapped_rules) if mapped_rules end rules.compact end |