diff --git a/lib/mask128.rb b/lib/mask128.rb index 6f297bd..8d24093 100755 --- a/lib/mask128.rb +++ b/lib/mask128.rb @@ -30,7 +30,9 @@ def Mask128.parse(mask) if (mask.start_with?("/")) # cidr format mask = mask[1..-1] # remove "/" end - return Mask128.new(mask.to_i) + return Mask128.new(Integer(mask)) + rescue ArgumentError + raise ValidationError, "#{mask} is not valid integer." end #cmp compares equality with another Mask128. Return: diff --git a/lib/mask32.rb b/lib/mask32.rb index debe8e7..7cc719a 100755 --- a/lib/mask32.rb +++ b/lib/mask32.rb @@ -28,9 +28,15 @@ def initialize(prefix_len) def Mask32.parse(mask) mask.strip! if (mask.start_with?("/")) # cidr format - return Mask32.new(mask[1..-1].to_i) # remove "/" - elsif (!mask.include?(".")) - return Mask32.new(mask.to_i) + mask = mask[1..-1] # remove "/" + end + + if (!mask.include?(".")) + begin + return Mask32.new(Integer(mask)) + rescue ArgumentError + raise ValidationError, "#{mask} is not valid integer." + end end # for extended netmask