class Object
Public Instance Methods
diff_message(expected)
click to toggle source
# File lib/rspec/hive/matchers.rb, line 80 def diff_message(expected) "Diff: #{differ.diff_as_object(@diffable_actual, expected)}" end
differ()
click to toggle source
# File lib/rspec/hive/matchers.rb, line 84 def differ RSpec::Support::Differ.new( object_preparer: ->(object) { surface_descriptions_in(object) }, color: RSpec::Matchers.configuration.color? ) end
ordered_result_set_match?(actual, expected_row, expected_transformer, actual_transformer, diffable_transformer)
click to toggle source
# File lib/rspec/hive/matchers.rb, line 67 def ordered_result_set_match?(actual, expected_row, expected_transformer, actual_transformer, diffable_transformer) @diffable_actual << diffable_transformer.call(actual) values_match?(expected_transformer.call(expected_row), actual_transformer.call(actual)) end
result_set_match?( actual, expected_row, expected_transformer: ->(expected) { expected }
click to toggle source
# File lib/rspec/hive/matchers.rb, line 43 def result_set_match?( actual, expected_row, expected_transformer: ->(expected) { expected }, actual_transformer: ->(candidate) { candidate }, diffable_transformer: actual_transformer ) if @unordered unordered_result_set_match?(expected_row, expected_transformer, actual_transformer, diffable_transformer) else ordered_result_set_match?(actual, expected_row, expected_transformer, actual_transformer, diffable_transformer) end end
surface_descriptions_in(item)
click to toggle source
Copied and adapted from RSpec::Matchers::Composable rubocop:disable Style/CaseEquality
# File lib/rspec/hive/matchers.rb, line 93 def surface_descriptions_in(item) if RSpec::Matchers.is_a_describable_matcher?(item) RSpec::Matchers::Composable::DescribableItem.new(item) elsif Hash === item Hash[surface_descriptions_in(item.to_a.sort)] elsif Struct === item || unreadable_io?(item) RSpec::Support::ObjectFormatter.format(item) elsif should_enumerate?(item) item.map { |subitem| surface_descriptions_in(subitem) } else item end end
unordered_result_set_match?(expected_row, expected_transformer, actual_transformer, diffable_transformer)
click to toggle source
# File lib/rspec/hive/matchers.rb, line 56 def unordered_result_set_match?(expected_row, expected_transformer, actual_transformer, diffable_transformer) found_index = @actual.find_index do |candidate| values_match?(expected_transformer.call(expected_row), actual_transformer.call(candidate)) end return false unless found_index found = @actual[found_index] @actual.delete_at(found_index) @diffable_actual << diffable_transformer.call(found) true end