Sha256: eb9ff7646c01a14ce7fbed417f8afa26a7354c55cae604376c828119b239a5db

Contents?: true

Size: 758 Bytes

Versions: 46

Compression:

Stored size: 758 Bytes

Contents

class BeComputedByMatcher
  def initialize(sym, *args)
    @method = sym
    @args = args
  end

  def matches?(array)
    array.each do |line|
      @receiver = line.shift
      @value = line.pop
      @arguments = line
      @arguments += @args
      return false unless @receiver.send(@method, *@arguments) == @value
    end

    return true
  end

  def method_call
    method_call = "#{@receiver.inspect}.#{@method}"
    unless @arguments.empty?
      method_call << " from #{@arguments.map { |x| x.inspect }.join(", ")}"
    end
    method_call
  end

  def failure_message
    ["Expected #{@value.inspect}", "to be computed by #{method_call}"]
  end
end

class Object
  def be_computed_by(sym, *args)
    BeComputedByMatcher.new(sym, *args)
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
rhodes-5.5.18 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.17 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.15 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.0.22 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.2 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.0.7 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.0.3 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-5.5.0 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
tauplatform-1.0.3 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
tauplatform-1.0.2 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
tauplatform-1.0.1 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.5.1.12 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.5 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.4.2 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.4 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.3 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.3.beta.4 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.3.beta.3 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.3.beta.2 lib/extensions/mspec/mspec/matchers/be_computed_by.rb
rhodes-3.3.3.beta.1 lib/extensions/mspec/mspec/matchers/be_computed_by.rb