class ViewModel::AbstractErrorCollection
Abstract collection of errors
Attributes
causes[R]
Public Class Methods
for_errors(errors)
click to toggle source
# File lib/view_model/error.rb, line 145 def self.for_errors(errors) if errors.size == 1 errors.first else self.new(errors) end end
new(causes)
click to toggle source
Calls superclass method
ViewModel::AbstractError::new
# File lib/view_model/error.rb, line 118 def initialize(causes) @causes = Array.wrap(causes) unless @causes.present? raise ArgumentError.new('A collection must have at least one cause') end super() end
Public Instance Methods
aggregation?()
click to toggle source
# File lib/view_model/error.rb, line 141 def aggregation? true end
detail()
click to toggle source
# File lib/view_model/error.rb, line 137 def detail "ViewModel::AbstractErrors: #{cause_details}" end
status()
click to toggle source
# File lib/view_model/error.rb, line 127 def status causes.inject(causes.first.status) do |status, cause| if status == cause.status status else 400 end end end
Protected Instance Methods
cause_details()
click to toggle source
# File lib/view_model/error.rb, line 155 def cause_details causes.map(&:detail).join('; ') end