lib/micro/case.rb in u-case-3.0.0 vs lib/micro/case.rb in u-case-3.1.0

- old
+ new

@@ -20,24 +20,26 @@ def self.call(options = Kind::Empty::HASH) new(options).__call__ end - INVALID_INVOCATION_OF_THE_THE_METHOD = - Error::InvalidInvocationOfTheThenMethod.new(self.name) + INVALID_INVOCATION_OF_THE_THEN_METHOD = + Error::InvalidInvocationOfTheThenMethod.new("#{self.name}.") def self.then(use_case = nil, &block) can_yield_self = respond_to?(:yield_self) if block - raise INVALID_INVOCATION_OF_THE_THE_METHOD if use_case + raise INVALID_INVOCATION_OF_THE_THEN_METHOD if use_case raise NotImplementedError if !can_yield_self yield_self(&block) else return yield_self if !use_case && can_yield_self + raise INVALID_INVOCATION_OF_THE_THEN_METHOD unless ::Micro.case_or_flow?(use_case) + self.call.then(use_case) end end def self.to_proc @@ -140,10 +142,14 @@ self end private + def apply(name) + method(name) + end + def call return __call_use_case_flow if __call_use_case_flow? __call_use_case end @@ -200,10 +206,10 @@ def __get_result(is_success, value, type) __result.__set__(is_success, value, type, self) end - private_constant :MapFailureType + private_constant :MapFailureType, :INVALID_INVOCATION_OF_THE_THEN_METHOD end def self.case_or_flow?(arg) (arg.is_a?(Class) && arg < Case) || arg.is_a?(Cases::Flow) end