lib/eco/api/session.rb in eco-helpers-0.9.2 vs lib/eco/api/session.rb in eco-helpers-0.9.3
- old
+ new
@@ -1,9 +1,9 @@
module Eco
module API
class Session < Common::Session::BaseSession
- attr_reader :batch, :job_groups
+ attr_reader :batch
attr_reader :usecases
attr_accessor :schema
def initialize(init = {})
e = init
@@ -14,16 +14,12 @@
logger.debug("LINE COMMAND: #{$0} #{ARGV.join(" ")}")
@batch = Batch.new(enviro)
@task = Task.new(enviro)
- @job_groups = JobGroups.new(enviro)
- @usecases = Eco::API::UseCases::DefaultCases.new.merge(config.usecases)
-
self.schema = config.people.default_schema || schemas.first
- @policy_groups = config.policy_groups
presets_custom_file = config.people.presets_custom
presets_map_file = config.people.presets_map
@presets_factory = Eco::API::Organization::PresetsFactory.new({
@@ -110,10 +106,14 @@
else
@presets_factory.new(input)
end
end
+ def export(*args)
+ @entry_factory.export(*args)
+ end
+
def new_person(**keyed_args)
@person_factory.new(**keyed_args)
end
def new_entry(data, dependencies: {})
@@ -124,31 +124,44 @@
@entry_factory.entries(*args).tap do |collection|
logger.info("Loaded #{collection.length} input entries.")
end
end
- def export(*args)
- @entry_factory.export(*args)
- end
-
def csv_entries(file)
return entries(file: file, format: :csv)
end
def discarded_entries
+ return @discarded_entries if instance_variable_defined?(:@discarded_entries)
file = config.people.discarded_file
file = file_manager.dir.file(file)
- csv_entries(file)
+ @discarded_entries = csv_entries(file)
end
- def process_case(name, type: nil, **params)
+ def workflow(io:)
+ config.workflow.tap do |wf|
+ yield(wf, io) if block_given?
+ end
+ end
+
+ def usecases
+ @usecases ||= Eco::API::UseCases::DefaultCases.new.merge(config.usecases)
+ end
+
+ def post_launch
+ @post_launch ||= config.post_launch.select(usecases)
+ end
+
+ def process_case(name, io: nil, type: nil, **params)
args = { session: self }.merge(params)
- fatal("Undefined usecase '#{name}' of type '#{type.to_s}'") if !usecases.defined?(name, type: type)
- logger.debug("Session: going to process '#{name}' defined case")
- usecases.case(name, type: type).launch(**args)
+ usecases.case(name, type: type).launch(io: io, **args)
end
+ def job_groups
+ @job_groups ||= Batch::JobsGroups.new(enviro)
+ end
+
def job_group(name, order: :last)
case
when job_groups.exists?(name)
job_groups[name]
else
@@ -164,10 +177,6 @@
end
end
require_relative 'session/config'
require_relative 'session/batch'
-require_relative 'session/batch_status'
require_relative 'session/task'
-require_relative 'session/batch_job'
-require_relative 'session/batch_jobs'
-require_relative 'session/job_groups'