lib/bcdd/result/expectations.rb in bcdd-result-0.5.0 vs lib/bcdd/result/expectations.rb in bcdd-result-0.6.0

- old
+ new

@@ -1,31 +1,19 @@ # frozen_string_literal: true class BCDD::Result::Expectations + require_relative 'expectations/mixin' require_relative 'expectations/error' require_relative 'expectations/contract' require_relative 'expectations/type_checker' - MIXIN_METHODS = <<~RUBY - def Success(...) - _expected_result::Success(...) - end + def self.mixin(success: nil, failure: nil, with: nil) + addons = Mixin::Addons.options(with) - def Failure(...) - _expected_result::Failure(...) - end - - private - - def _expected_result - @_expected_result ||= Expected.with(subject: self) - end - RUBY - - def self.mixin(success: nil, failure: nil) mod = Module.new mod.const_set(:Expected, new(success: success, failure: failure).freeze) - mod.module_eval(MIXIN_METHODS) + mod.module_eval(Mixin::METHODS) + mod.send(:include, *addons) unless addons.empty? mod end def self.evaluate(data, expectations) expectations ||= Contract::NONE