class LicenseFinder::YmlToSql

def self.convert_all(all_legacy_attrs)

def self.convert_all(all_legacy_attrs)
  converters = all_legacy_attrs.map do |attrs|
    new(attrs)
  end
  converters.each(&:convert)
  converters.each(&:associate_children)
end

def self.convert_if_required

def self.convert_if_required
  if needs_conversion?
    convert_all(load_yml)
    remove_yml
  end
end

def self.load_yml

def self.load_yml
  YAML.load File.read(yml_path)
end

def self.needs_conversion?

def self.needs_conversion?
  File.exists?(yml_path)
end

def self.remove_yml

def self.remove_yml
  File.delete(yml_path)
end

def self.yml_path

def self.yml_path
  LicenseFinder.config.dependencies_yaml
end

def associate_bundler_groups

def associate_bundler_groups
  find_bundler_groups.each do |group|
    @dep.add_bundler_group(group)
  end
end

def associate_children

def associate_children
  find_children.each do |child|
    @dep.add_child(child)
  end
end

def convert

def convert
  @dep = create_dependency
  @dep.license = create_license
  @dep.approval = create_approval
  associate_bundler_groups
  @dep.save
end

def create_approval

def create_approval
  Sql::Approval.convert(legacy_attrs)
end

def create_dependency

def create_dependency
  Sql::Dependency.convert(legacy_attrs)
end

def create_license

def create_license
  Sql::LicenseAlias.convert(legacy_attrs)
end

def find_bundler_groups

def find_bundler_groups
  (legacy_attrs['bundler_groups'] || []).map do |name|
    Sql::BundlerGroup.find_or_create(name: name.to_s)
  end
end

def find_children

def find_children
  Sql::Dependency.where(name: legacy_attrs['children'])
end

def initialize(attrs)

def initialize(attrs)
  @legacy_attrs = attrs
end