Class: Composer::Repository::WritableArrayRepository

Inherits:
ArrayRepository show all
Defined in:
lib/composer/repository/writeable_array_repository.rb

Overview

Writable array repository.

PHP Authors: Jordi Boggiano <[email protected]>

Ruby Authors: Ioannis Kappas <[email protected]>

Direct Known Subclasses

FilesystemRepository

Instance Method Summary collapse

Methods inherited from ArrayRepository

#add_package, #count, #find_package, #find_packages, #package?, #packages, #remove_package, #search

Constructor Details

#initialize(packages = []) ⇒ WritableArrayRepository

Returns a new instance of WritableArrayRepository.



23
24
25
# File 'lib/composer/repository/writeable_array_repository.rb', line 23

def initialize(packages = [])
  super
end

Instance Method Details

#canonical_packagesObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/composer/repository/writeable_array_repository.rb', line 33

def canonical_packages
  packages_uncanonicalized = packages

  # get at most one package of each name, prefering non-aliased ones
  packages_by_name = {}
  packages_uncanonicalized.each do |package|
    if !packages_by_name.key?(package.name) ||
      packages_by_name[package.name].instance_of(Composer::Package::AliasPackage)

      packages_by_name[package.name] = package

    end
  end

  # unfold aliased packages
  results = []
  packages_by_name.each do |name, package|
    while package.instance_of(Composer::Package::AliasPackage)
      package = package.alias_of
    end
    results[] = package
  end

  results
end

#reloadObject



30
31
# File 'lib/composer/repository/writeable_array_repository.rb', line 30

def reload
end

#writeObject



27
28
# File 'lib/composer/repository/writeable_array_repository.rb', line 27

def write
end