class BeSorted

Public Class Methods

new(order) click to toggle source
# File lib/itesttool/custom_matchers.rb, line 53
def initialize(order)
  @order = order
end

Public Instance Methods

failure_message_for_should() click to toggle source
# File lib/itesttool/custom_matchers.rb, line 75
def failure_message_for_should
  if @not_aligned
    "expected #{@list.inspect} type is not available."
  elsif @order_invalid
    "specified order is invalid. valid order in [:asc, :desc]"
  else
    "expected #{@list.inspect} to be sorted #{@order}"
  end
end
matches?(list) click to toggle source
# File lib/itesttool/custom_matchers.rb, line 56
def matches?(list)
  @list = list
  type = list.first.class
  unless list.all?{|x| x.class == type }
    @not_aligned = true
    false
  else
    sorted_list = list.sort
    if @order == :asc
      list == sorted_list
    elsif @order == :desc
      list == sorted_list.reverse
    else
      @order_invalid = true
      false
    end
  end
end