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