From c1059e99d3f74fdd5d9a9792544a9ebc8a10edf7 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 29 Nov 2019 17:11:11 +0900 Subject: [PATCH] Support existence usecase for the custom exception classes --- lib/matrix.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/matrix.rb b/lib/matrix.rb index 8c31643eab..b4d1be33bb 100644 --- a/lib/matrix.rb +++ b/lib/matrix.rb @@ -16,8 +16,14 @@ require_relative "matrix/version" module ExceptionForMatrix # :nodoc: class ErrDimensionMismatch < StandardError - def initialize - super("\#{self.name} dimension mismatch") + def initialize(val = nil) + if val.nil? + super + elsif val.is_a?(String) + super(val) + else + super("#{val.class.name} dimension mismatch") + end end end @@ -29,7 +35,11 @@ module ExceptionForMatrix # :nodoc: class ErrOperationNotDefined < StandardError def initialize(vals) - super("Operation(#{vals[0]}) can\\'t be defined: #{vals[1]} op #{vals[2]}") + if vals.is_a?(Array) + super("Operation(#{vals[0]}) can\\'t be defined: #{vals[1]} op #{vals[2]}") + else + super(vals) + end end end