Sha256: 213d4e7d539e418b31929f3a13692969917028cc732ca5577eb468e4080ddd1b
Contents?: true
Size: 1.94 KB
Versions: 2
Compression:
Stored size: 1.94 KB
Contents
class Eco::API::UseCases::DefaultCases::AnalysePeople < Eco::API::Common::Loaders::UseCase name "analyse-people" type :export attr_reader :session, :people, :options def main(people, session, options, usecase) @session = session; @options = options; @people = people save!(cyclic_sets) end private def identify_double_ups analytics.similarity end def analytics @analytics ||= people.analytics end def file @file ||= options.dig(:output, :file) || "analytics.txt" end def save!(data) if data.empty? session.logger.info("There were no cyclic supervisors identified!!") return end ext = File.extname(file).downcase.delete(".") File.open(file, "w") do |fd| if ext == "txt" create_file(data, file: file, format: :txt) elsif ext == "html" puts "html is still not supported" exit(1) create_file(data, file: file, format: :html) elsif ext == "json" puts "json is still not supported" exit(1) create_file(data, file: file, format: :json) end end end def create_file(sets, file:, format: :txt) File.open(file, "w") do |fd| fd << sets_to_str(sets, format: format) end puts "Generated file #{file}" end def sets_to_str(sets, format: :txt) raise "Required Array. Given: #{sets.class}" unless sets.is_a?(Array) "".tap do |str| sets.each do |set| str << set_to_str(set, format: format) end end end def set_to_str(set, lev: 0, format: :txt) raise "Required Array. Given: #{set.class}" unless set.is_a?(Array) "".tap do |str| entry = set.shift str << "#{" " * lev}#{(lev > 0)? "+-#{lev}- " : ""}#{entry.name} (#{entry.external_id}|#{entry.email}|#{entry.id})\n" str << set_to_str(set, lev: lev + 1, format: format) unless !set || set.empty? end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eco-helpers-2.0.18 | lib/eco/api/usecases/default_cases/analyse_people_case.rb |
eco-helpers-2.0.17 | lib/eco/api/usecases/default_cases/analyse_people_case.rb |