Class: Yoda::Store::Actions::ImportProjectDependencies

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/store/actions/import_project_dependencies.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project) ⇒ ImportProjectDependencies

Returns a new instance of ImportProjectDependencies.

Parameters:



12
13
14
15
# File 'lib/yoda/store/actions/import_project_dependencies.rb', line 12

def initialize(project)
  @project = project
  @errors = []
end

Instance Attribute Details

#errorsObject (readonly)

Parameters:



9
10
11
# File 'lib/yoda/store/actions/import_project_dependencies.rb', line 9

def errors
  @errors
end

#projectProject (readonly)

Returns:



6
7
8
# File 'lib/yoda/store/actions/import_project_dependencies.rb', line 6

def project
  @project
end

Instance Method Details

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/yoda/store/actions/import_project_dependencies.rb', line 17

def run
  libraries_status = project.registry.libraries.status
  library_to_add, library_to_remove = calculate_dependency(libraries_status)

  if !library_to_add.empty? || !library_to_remove.empty?
    Logger.info 'Constructing database for the current project.'
    Logger.trace 'Adding libraries: ' + library_to_add.map(&:name).join(', ')
    Logger.trace 'Removing libraries: ' + library_to_remove.map(&:name).join(', ')
    project.registry.libraries.modify(add: library_to_add, remove: library_to_remove)
  else
    Logger.info 'No library changes to the current project.'
  end

  self
end