lib/eco/api/usecases/use_case.rb in eco-helpers-0.8.3 vs lib/eco/api/usecases/use_case.rb in eco-helpers-0.8.4
- old
+ new
@@ -8,13 +8,11 @@
import: [:input, :session],
filter: [:people, :session, :options],
transform: [:people, :session],
export: [:people, :session, :options]
}
-
- attr_reader :name, :type, :times_launched
-
+
class << self
def valid_type?(type)
TYPES.include?(type)
end
@@ -22,26 +20,29 @@
raise "Invalid type '#{type.to_s}'" if !valid_type?(type)
TYPE_PARAMS[type]
end
end
- def initialize(name, type:, root:, options: {}, &block)
+ attr_reader :name, :type, :times_launched
+ attr_reader :options
+
+ 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
@name = name
@type = type
- @options = options
@times_launched = 0
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)
@times_launched += 1