Sha256: b8d8159b94971febe817bcd09a003c52f7952198381d5c50a0422693168ad981
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
# encoding: utf-8 require 'rspec/expectations' require 'rspec/expectations/differ' module Ndd module RSpec module Matchers # ---------------------------------------------------------------------------------------------------------------- # Ensures that an enumerable (responding to <code>Enumerable#collect</code>) is sorted by the given attribute. # # Examples: # [MyObject.new(my_attribute: 1), MyObject.new(my_attribute: 2)].should be_sorted_by(:my_attribute) } # class BeSortedBy def initialize(attribute = nil) @attribute = attribute end def matches?(actual) @actual = actual attributes = actual.collect { |e| e.send(@attribute) } @actual_attributes = attributes @sorted_attributes = attributes.sort @sorted_attributes == @actual_attributes end def failure_message_for_should return <<-MESSAGE expected '#{@actual.inspect}' to be sorted by '#@attribute' expected attributes: #{@sorted_attributes.inspect} got attributes: #{@actual_attributes.inspect} MESSAGE end def ==(other) matches?(other) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ndd-rspec-0.1.0 | lib/ndd/rspec/matchers/be_sorted_by.rb |