class Composer::Repository::FilesystemRepository
Filesystem repository.
PHP Authors: Konstantin Kudryashov <ever.zet@gmail.com> Jordi Boggiano <j.boggiano@seld.be>
Ruby Authors: Ioannis Kappas <ikappas@devworks.gr>
Public Class Methods
new(repository_file)
click to toggle source
Initializes filesystem repository. @param [Composer::Json::JsonFile] repository_file repository json file
Calls superclass method
Composer::Repository::WritableHashRepository::new
# 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
Public Instance Methods
reload()
click to toggle source
# File lib/composer/repository/filesystem_repository.rb, line 40 def reload @packages = nil initialize_repository end
write()
click to toggle source
Writes writable repository.
# 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
Protected Instance Methods
initialize_repository()
click to toggle source
Initializes repository (reads file, or remote address).
Calls superclass method
Composer::Repository::HashRepository#initialize_repository
# File lib/composer/repository/filesystem_repository.rb, line 58 def initialize_repository super return unless @file.exists? begin packages_data = @file.read unless packages_data.is_a?(Array) raise UnexpectedValueError, 'Could not parse package list from the repository' end rescue => e raise InvalidRepositoryError, "Invalid repository data in #{@file.path}, \ packages could not be loaded: \ [#{e.class}] #{e.message}" end loader = Composer::Package::Loader::HashLoader.new(nil, true) packages_data.each do |package_data| package = loader.load(package_data) add_package(package) end end