Module: LicenseFinder::DependencyManager

Defined in:
lib/license_finder/dependency_manager.rb

Class Method Summary collapse

Class Method Details

.approve!(name) ⇒ Object



31
32
33
# File 'lib/license_finder/dependency_manager.rb', line 31

def self.approve!(name)
  modifying { find_by_name(name).approve!  }
end

.create_manually_managed(license, name, version) ⇒ Object

Raises:



13
14
15
16
17
18
19
20
21
# File 'lib/license_finder/dependency_manager.rb', line 13

def self.create_manually_managed(license, name, version)
  raise Error.new("#{name} dependency already exists") unless Dependency.where(name: name).empty?

  modifying {
    dependency = Dependency.new(manual: true, name: name, version: version)
    dependency.license = LicenseAlias.named(license)
    dependency.save
  }
end

.destroy_manually_managed(name) ⇒ Object



23
24
25
# File 'lib/license_finder/dependency_manager.rb', line 23

def self.destroy_manually_managed(name)
  modifying { find_by_name(name, Dependency.manually_managed).destroy }
end

.license!(name, license) ⇒ Object



27
28
29
# File 'lib/license_finder/dependency_manager.rb', line 27

def self.license!(name, license)
  modifying { find_by_name(name).set_license_manually!(license) }
end

.modifyingObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/license_finder/dependency_manager.rb', line 35

def self.modifying
  database_file = LicenseFinder.config.artifacts.database_file
  checksum_before_modifying = checksum(database_file)
  result = yield
  checksum_after_modifying = checksum(database_file)

  unless checksum_after_modifying == checksum_before_modifying
    Reporter.write_reports
  end
  unless LicenseFinder.config.artifacts.html_file.exist?
    Reporter.write_reports
  end

  result
end

.sync_with_package_managersObject



5
6
7
8
9
10
11
# File 'lib/license_finder/dependency_manager.rb', line 5

def self.sync_with_package_managers
  modifying {
    current_dependencies = PackageSaver.save_all(current_packages)

    Dependency.managed.obsolete(current_dependencies).each(&:destroy)
  }
end