summaryrefslogtreecommitdiff
path: root/spec/lib/matchers/include_in_order.rb
blob: 56e4e41c728c083083633435e63732400c9119f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
RSpec::Matchers.define :include_in_order do |*expected|
  include RSpec::Matchers::Pretty

  match do |actual|
    elements = expected.dup
    actual.each do |elt|
      if elt == elements.first
        elements.shift
      end
    end
    elements.empty?
  end

  def failure_message_for_should
    "expected #{@actual.inspect} to include#{expected_to_sentence} in order"
  end

  def failure_message_for_should_not
    "expected #{@actual.inspect} not to include#{expected_to_sentence} in order"
  end
end