Class: Composer::Repository::FilesystemRepository

Inherits:
WritableHashRepository show all
Defined in:
lib/composer/repository/filesystem_repository.rb

Overview

Filesystem repository.

PHP Authors: Konstantin Kudryashov <[email protected]> Jordi Boggiano <[email protected]>

Ruby Authors: Ioannis Kappas <[email protected]>

Constant Summary

Constants inherited from BaseRepository

BaseRepository::SEARCH_FULLTEXT, BaseRepository::SEARCH_NAME

Instance Method Summary collapse

Methods inherited from WritableHashRepository

#canonical_packages

Methods inherited from HashRepository

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

Methods inherited from BaseRepository

#find_package, #find_packages, #package?, #packages, #search

Constructor Details

#initialize(repository_file) ⇒ FilesystemRepository

Initializes filesystem repository.

Parameters:



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/composer/repository/filesystem_repository.rb', line 26

def initialize(repository_file)
  unless repository_file
    raise ArgumentError,
          'repository_file must be specified'
  end
  unless repository_file.is_a?(Composer::Json::JsonFile)
    raise TypeError,
          'repository_file type must be a \
          Composer::Json::JsonFile or superclass'
  end
  super([])
  @file = repository_file
end

Instance Method Details

#reloadObject



40
41
42
43
# File 'lib/composer/repository/filesystem_repository.rb', line 40

def reload
  @packages = nil
  initialize_repository
end

#writeObject

Writes writable repository.



46
47
48
49
50
51
52
53
# File 'lib/composer/repository/filesystem_repository.rb', line 46

def write
  data = []
  dumper = Composer::Package::Dumper::HashDumper.new

  canonical_packages.each { |package| data << dumper.dump(package) }

  @file.write(data)
end