class SealinkParamValidation::Helper

Public Class Methods

generate_error_message(result) click to toggle source
# File lib/sealink_param_validation/helper.rb, line 5
def self.generate_error_message(result)
  result.errors(full: true).to_h.values.map { |v|
    v.is_a?(Hash) ? v.values : v
  }.flatten.join(', ')
end
generate_humanized_error_message(result) click to toggle source
# File lib/sealink_param_validation/helper.rb, line 11
def self.generate_humanized_error_message(result)
  build_humanized_errors(result.errors.to_h).to_sentence
end

Private Class Methods

build_humanized_errors(errors, parent = nil) click to toggle source
# File lib/sealink_param_validation/helper.rb, line 15
def self.build_humanized_errors(errors, parent = nil)
  errors.to_h.flat_map { |field, messages|
    if messages.is_a?(Hash)
      build_humanized_errors(messages, field)
    else
      generate_humanized_error(parent, field, messages)
    end
  }
end
generate_humanized_error(parent, field, messages) click to toggle source
# File lib/sealink_param_validation/helper.rb, line 26
def self.generate_humanized_error(parent, field, messages)
  return "#{parent.to_s.humanize}.#{field.to_s.humanize} #{messages.join}" if parent.present?
  "#{field.to_s.humanize} #{messages.join}"
end