class NRSER::AttrError
Raised when we expected `#count` to be something it's not.
Extends {NRSER::ValueError}, and the {#value} must be the instance that
Public Instance Methods
actual()
click to toggle source
Get an optional actual value for the attribute, from `context` if it exists or by sending {#name} to {#value} if it works.
@return [nil]
If {#context} does not have an `:actual` value and {#value} raises a {StandardError}.
@return [Object]
The value of {#context}'s `:actual` key, if any, otherwise {#value}'s response to {#name}.
# File lib/nrser/errors/attr_error.rb, line 119 def actual if context.key? :actual context[ :actual ] elsif value? && name? value.public_send name end rescue StandardError => error nil end
actual?()
click to toggle source
Tests if an 'actual' value was provided in the {#context}.
@return [Boolean]
# File lib/nrser/errors/attr_error.rb, line 101 def actual? context.key?( :actual ) || ( value? && name? && value.respond_to?( name ) ) rescue StandardError => error false end
default_message()
click to toggle source
Create a default message if none was provided.
Uses whatever recognized {#context} values are present, falling back to {NicerError#default_message} if none are.
@return [String]
Calls superclass method
# File lib/nrser/errors/attr_error.rb, line 137 def default_message message = [] if value? && name? message << format_message( value.class, "object", value.inspect, "has invalid ##{ name } attribute" ) end if expected? message << format_message( "expected", expected ) end if actual? message << format_message( "found", actual ) end if message.empty? super else message.join ', ' end end