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