Sha256: 9d2c696542c075ee4fafd1d6bbed273a457d69712a1ffc1393a915c8aa67e2e8

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

require 'forwardable'

module LicenseFinder
  class PackageSaver
    extend Forwardable
    def_delegators :package, :license, :children, :groups, :summary, :description, :version, :homepage

    attr_reader :dependency, :package

    def self.save_all(packages)
      packages.map do |package|
        find_or_create_by_name(package).save
      end
    end

    def initialize(dependency, package)
      @package = package
      @dependency = dependency
    end

    def save
      DB.transaction do
        dependency.version = version.to_s
        dependency.summary = summary
        dependency.description = description
        dependency.homepage = homepage
        dependency.bundler_group_names = groups.map(&:to_s)
        dependency.children_names = children
        dependency.apply_better_license license
        dependency.save_changes
      end
      dependency
    end

    private

    def self.find_or_create_by_name(package)
      dependency = Dependency.named(package.name)
      new(dependency, package)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
license_finder-0.9.5.1-java lib/license_finder/package_saver.rb
license_finder-0.9.5.1 lib/license_finder/package_saver.rb
license_finder-0.9.5 lib/license_finder/package_saver.rb
license_finder-0.9.5-java lib/license_finder/package_saver.rb