Sha256: 838b04ce4fa32475d5f8f15913a0c131f76a767d5302f8bb7896d8a5f42acb05
Contents?: true
Size: 1.01 KB
Versions: 3
Compression:
Stored size: 1.01 KB
Contents
module LicenseFinder class SourceSyncer def initialize(source_dependencies, dependencies) @source_dependencies = Array source_dependencies @dependencies = dependencies end def sync! destroy_obsolete_dependencies update_existing_dependencies create_new_dependencies dependencies end protected attr_accessor :dependencies, :source_dependencies def destroy_obsolete_dependencies obsolete_dependencies = dependencies.select {|d| !source_dependencies.detect {|s| s.name == d.name }} obsolete_dependencies.map &:destroy self.dependencies -= obsolete_dependencies end def update_existing_dependencies dependencies.each do |d| source_dep = source_dependencies.detect { |s| s.name == d.name } d.merge(source_dep) self.source_dependencies -= [source_dep] end end def create_new_dependencies source_dependencies.each do |d| dependencies << d d.save end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
license_finder-0.7.3 | lib/license_finder/source_syncer.rb |
license_finder-0.7.1 | lib/license_finder/source_syncer.rb |
license_finder-0.7.0 | lib/license_finder/source_syncer.rb |