Sha256: 0f4beb601140aec57253fc65010ff525a3488e542873c39c8f749aaf31768de7
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
# frozen_string_literal: true module Phlexi module Form module FieldOptions module Errors def custom_error(error) options[:error] = error self end def error error_text if has_errors? end def full_error full_error_text if has_errors? end def has_errors? object_with_errors? || !object && has_custom_error? end def show_errors? options[:error] != false end def valid? !has_errors? && has_value? end protected def error_text text = has_custom_error? ? options[:error] : errors.send(error_method) "#{options[:error_prefix]} #{text}".lstrip end def full_error_text has_custom_error? ? options[:error] : full_errors.send(error_method) end def object_with_errors? object&.respond_to?(:errors) && errors.present? end def error_method options[:error_method] || :first end def errors @errors ||= (errors_on_attribute + errors_on_association).compact end def full_errors @full_errors ||= (full_errors_on_attribute + full_errors_on_association).compact end def errors_on_attribute object.errors[key] || [] end def full_errors_on_attribute object.errors.full_messages_for(key) end def errors_on_association reflection ? object.errors[reflection.name] : [] end def full_errors_on_association reflection ? object.errors.full_messages_for(reflection.name) : [] end def has_custom_error? options[:error].is_a?(String) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
phlexi-form-0.2.0 | lib/phlexi/form/field_options/errors.rb |