Sha256: bb5e38ffc91fd4802c93ba1da2221fc3ab83c88b87383e10e3406b503a9a0cdb
Contents?: true
Size: 1.65 KB
Versions: 5
Compression:
Stored size: 1.65 KB
Contents
class Eco::API::UseCases::DefaultCases::CleanUnknownTags < Eco::API::Common::Loaders::UseCase name "clean-unknown-tags" type :transform UNKNOWN_LOCS_FILE = "unknown_locations.txt" REGISTER_TAGS = [ "EVENT", "INJURY", "RISK", "CONTRACTOR", "PERMIT", "AUDIT", "JSEA", "TRAINING", "INDUCTION", "MEETING", "PPE", "CHEMICAL", "PLANT", "ASSET", "POLICY", "IDEA", "REPORTS" ] attr_reader :session, :options def main(people, session, options, usecase) @session = session; @options = options update = session.new_job("main", "update", :update, usecase) people.each do |person| unknown_tags = person.filter_tags.select {|tag| !tag?(tag)} person.filter_tags -= unknown_tags unknown_tag!(*unknown_tags) update.add(person) end end private def unknown_tag!(*tags) tags.each do |value| unless unknown.include?(value) unknown << value File.open(unknown_tags_file, 'a') do |fd| fd.write("#{value}\n") end puts "Custom detected: '#{value}'" end end end def register_tags REGISTER_TAGS end def unknown @unknown ||= [] end def tag?(value) tagtree.tag?(value).yield_self do |is_loc| next true if is_loc if clean_register_tags? register_tags.any? {|reg| value == reg} end end end def tagtree @tagtree ||= ASSETS.config.tagtree end def unknown_tags_file File.join(".","#{session.enviro_name}_#{UNKNOWN_LOCS_FILE}") end def clean_register_tags? !options.dig(:usecase, :include_register_tags) end end
Version data entries
5 entries across 5 versions & 1 rubygems