Class UnifiedMatchers::MatcherResult
In: lib/unified_matchers/matcher_result.rb
Parent: Object

Methods

Attributes

data  [R] 
my  [R] 
name  [R] 
ref  [R] 

Public Class methods

[Source]

# File lib/unified_matchers/matcher_result.rb, line 12
    def initialize name, ref, my, message_ref, message_my, default_message, status, data=nil, message=nil
      if status == true or status == false
        @name = name
        @status = status
        @data = data
        @ref = ref
        @my = my
        @message_ref = message_ref
        @message_my = message_my
        if message.nil?
          message = default_message
        end
        @message_template = message
      else
        raise ArgumentError,
          "The status must be true or false, not #{status}."
      end
    end

Public Instance methods

[Source]

# File lib/unified_matchers/matcher_result.rb, line 52
    def compute_messages message
      x = message.shift.inspect_for_unified_matchers
      message.inject(x) { |accu, y| y.gsub('%x', accu) }
    end

[Source]

# File lib/unified_matchers/matcher_result.rb, line 35
    def failure?
      ! @status
    end

[Source]

# File lib/unified_matchers/matcher_result.rb, line 39
    def message
      if defined? @message
        @message
      else
        str = ''
        str << 'not ' if failure?
        str << @message_template
        str.gsub!('%ref', compute_messages(@message_ref))
        str.gsub!('%my',  compute_messages(@message_my))
        @message = str
      end
    end

[Source]

# File lib/unified_matchers/matcher_result.rb, line 65
    def method_missing *a, &b
      @data.send(*a, &b)
    end

[Source]

# File lib/unified_matchers/matcher_result.rb, line 31
    def success?
      @status
    end

[Source]

# File lib/unified_matchers/matcher_result.rb, line 57
    def to_s
      if @name.nil?
        message
      else
        "#@name: #{message}"
      end
    end

[Validate]