lib/eco/api/usecases/use_case.rb in eco-helpers-0.9.1 vs lib/eco/api/usecases/use_case.rb in eco-helpers-0.9.2
- old
+ new
@@ -8,11 +8,11 @@
import: [:input, :session],
filter: [:people, :session, :options],
transform: [:people, :session],
export: [:people, :session, :options]
}
-
+
class << self
def valid_type?(type)
TYPES.include?(type)
end
@@ -27,32 +27,44 @@
def initialize(name, type:, root:, &block)
raise "Undefined usecase type #{type}, when creating '#{name}'. Please, use any of #{TYPES}" unless self.class.valid_type?(type)
self.root = root
- @case = block
+ @callback = block
@name = name
@type = type
@times_launched = 0
end
+ def chainer
+ # TODO: root is a UseGroup that will not point to this new case.
+ # => Moreover, the name and type will be the same as self
+ Eco::API::UseCases::UseCaseChain.new(usecase: self, root: @root)
+ end
+
def root=(value)
raise "Root should be a UseGroup. Given: #{value}" if !value.is_a?(UseGroup)
@root = value
end
def launch(input: nil, people: nil, session:, options: {})
@options = options
data = UseCaseIO.new(usecase: self, input: input, people: people, session: session, options: options)
- data.output = @case.call(data.params)
+ data.output = @callback.call(data.params)
@times_launched += 1
data_model = {
self => {
io: data
}
}
+ end
+
+ protected
+
+ def callback
+ @callback
end
end
end