Skip to content

Commit

Permalink
Create script for mapped tags
Browse files Browse the repository at this point in the history
  • Loading branch information
lpichler committed Oct 3, 2018
1 parent 7467510 commit 09f81b2
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions tools/convert_mapped_tags.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env ruby
require File.expand_path('../config/environment', __dir__)

read_only = (ARGV[0] != 'WRITE')

puts
puts

if read_only
puts "READ ONLY MODE"
else
puts "WRITE MODE"
end

puts

condition_for_mapped_tags = ContainerLabelTagMapping::TAG_PREFIXES.map { "tags.name LIKE ?" }.join(' OR ')
tag_values = ContainerLabelTagMapping::TAG_PREFIXES.map { |x| "#{x}%:%" }

Classification.where.not(:id => Classification.region_to_range) # only other regions(not current, we expected that current region is global)
.where(:classifications => {:parent_id => 0}) # only categories
.includes(:tag, :children).references(:tag, :children)
.where(condition_for_mapped_tags, *tag_values) # only mapped categories
.find_each do |category|
new_parent_category = Classification.in_my_region.find_by(:description => category.description)

if new_parent_category
print "Using..."
else
new_parent_category = category.dup
new_parent_category.save unless read_only # create in current region (global region is expected), it will create also tag instance
print "Creating..."
end

puts "parent category #{new_parent_category.description} with tag: #{new_parent_category.tag.name} - from region #{category.region_id} to region #{new_parent_category.region_id}"

category.entries.each do |entry|
new_entry = Classification.in_my_region.find_by(:description => entry.description)
if new_entry
print "Using...."
else
new_entry = entry.dup
new_entry.parent_id = new_parent_category.id
new_entry.save unless read_only # it will create also tag instance
print "Creating..."
end
puts "entry category #{new_entry.description} of #{new_parent_category.description} - from region #{category.region_id} to region #{new_entry.region_id}"
end
end

puts

if read_only
puts "READ ONLY MODE - no changes have been applied"
else
puts "WRITE MODE - change have been applied"
end

0 comments on commit 09f81b2

Please sign in to comment.