class EnsureIt::ErrorMessage
Attributes
backtrace[RW]
inside[RW]
message[W]
method_name[RW]
subject[RW]
subject_type[RW]
Public Class Methods
new(method_name, message, backtrace)
click to toggle source
# File lib/ensure_it/errors.rb, line 8 def initialize(method_name, message, backtrace) method_name = method_name.to_sym if method_name.is_a?(String) unless method_name.is_a?(Symbol) raise ArgumentError, 'EnsureIt: Wrong method_name argument for Error' end @method_name, @message, @backtrace = method_name, message, backtrace end
Public Instance Methods
message()
click to toggle source
# File lib/ensure_it/errors.rb, line 47 def message unless @message.is_a?(String) @message = if @subject.nil? && @subject_type != :unknown_method_result '#{subject}' else '#{subject} of #{method_name}' end end @message.gsub(/\#\{subject\}/, subject_display_name) .gsub(/\#\{name\}/, @subject.to_s) .gsub(/\#\{method_name\}/, @method_name.to_s) end
subject_display_name()
click to toggle source
# File lib/ensure_it/errors.rb, line 16 def subject_display_name display_name = if @subject.nil? && @subject_type != :unknown_method_result "subject of '#{method_name}' method" else case @subject_type when :local_variable then "local variable '#{@subject}'" when :instance_variable then "instance variable '@#{@subject}'" when :class_variable then "class variable '@@#{@subject}'" when :method_result then "return value of '#{subject}' method" when :unknown_method_result then 'return value of method' when :req_argument then "argument '#{subject}'" when :rest_argument then "argument '*#{subject}'" when :opt_argument then "optional argument '#{subject}'" when :key_argument then "key argument '#{subject}'" when :keyrest_argument then "key argument '**#{subject}'" when :block_argument then "block argument '&#{subject}'" else "subject of '#{method_name}' method" end end unless @inside.nil? display_name += if !@subject_type.nil? && @subject_type.to_s =~ /_argument\z/ " of '#{@inside}' method" else " inside '#{@inside}' method" end end display_name end