module RubyEventStore::RSpec::Matchers

def apply(*expected)

def apply(*expected)
  Apply.new(*expected, failure_message_formatter: RSpec.default_formatter.apply(differ))
end

def be_an_event(expected)

def be_an_event(expected)
  BeEvent.new(expected, differ: differ, formatter: formatter)
end

def differ

def differ
  ::RSpec::Expectations.differ
end

def formatter

def formatter
  ::RSpec::Support::ObjectFormatter.public_method(:format)
end

def have_applied(*expected)

def have_applied(*expected)
  HaveApplied.new(
    *expected,
    phraser: phraser,
    failure_message_formatter: RSpec.default_formatter.have_applied(differ)
  )
end

def have_published(*expected)

def have_published(*expected)
  HavePublished.new(
    *expected,
    phraser: phraser,
    failure_message_formatter: RSpec.default_formatter.have_published(differ)
  )
end

def have_subscribed_to_events(*expected)

def have_subscribed_to_events(*expected)
  HaveSubscribedToEvents.new(*expected, differ: differ, phraser: phraser)
end

def phraser

def phraser
  ListPhraser
end

def publish(*expected)

def publish(*expected)
  Publish.new(*expected, failure_message_formatter: RSpec.default_formatter.publish(differ))
end