Module: LicenseFinder::DependencyManager

Defined in:
lib/license_finder/dependency_manager.rb

Class Method Summary collapse

Class Method Details

.approve!(name, approver = nil, notes = nil) ⇒ Object



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

def self.approve!(name, approver = nil, notes = nil)
  modifying { find_by_name(name).approve!(approver, notes)  }
end

.license!(name, license_name) ⇒ Object



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

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

.manually_add(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.manually_add(license, name, version)
  raise Error.new("#{name} dependency already exists") unless Dependency.where(name: name).empty?

  modifying {
    dependency = Dependency.new(added_manually: true, name: name, version: version)
    dependency.license = License.find_by_name(license)
    dependency.save
  }
end

.manually_remove(name) ⇒ Object



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

def self.manually_remove(name)
  modifying { find_by_name(name, Dependency.added_manually).destroy }
end

.modifyingObject



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

def self.modifying
  checksum_before = checksum
  result = DB.transaction { yield }
  checksum_after = checksum

  database_changed = checksum_before != checksum_after

  if database_changed || reports_do_not_exist || reports_are_stale
    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.added_automatically.obsolete(current_dependencies).each(&:destroy)
  }
end