class Lexicon::Common::Package::V1::Package
Attributes
file_sets[R]
@return [Array<SourceFileSet>]
Public Class Methods
new(version:, spec_file:, checksum_file:, dir:, file_sets:)
click to toggle source
@param [Array<SourceFileSet>] file_sets
@param [Pathname] dir @param [Pathname] checksum_file @param [Semantic::Version] version
Calls superclass method
Lexicon::Common::Package::Package::new
# File lib/lexicon/common/package/v1/package.rb, line 15 def initialize(version:, spec_file:, checksum_file:, dir:, file_sets:) super( checksum_file: checksum_file, dir: dir, spec_file: spec_file, schema_version: 1, version: version, ) @file_sets = file_sets end
Public Instance Methods
data_dir()
click to toggle source
@return [Pathname]
# File lib/lexicon/common/package/v1/package.rb, line 54 def data_dir dir.join('data') end
data_path(file_set)
click to toggle source
@param [SourceFileSet] file_set @return [Pathname]
# File lib/lexicon/common/package/v1/package.rb, line 49 def data_path(file_set) dir.join(relative_data_path(file_set)) end
files()
click to toggle source
# File lib/lexicon/common/package/v1/package.rb, line 32 def files structures = file_sets.map { |fs| PackageFile.new_structure(relative_structure_path(fs)) } data = file_sets.flat_map do |fs| data_path = relative_data_path(fs) if data_path.nil? [] else [PackageFile.new_data(data_path)] end end [*structures, *data] end
relative_data_path(file_set)
click to toggle source
@return [Pathname, nil]
# File lib/lexicon/common/package/v1/package.rb, line 59 def relative_data_path(file_set) if file_set.data_path.nil? nil else data_dir.basename.join(file_set.data_path) end end
relative_structure_path(file_set)
click to toggle source
@return [Pathname]
# File lib/lexicon/common/package/v1/package.rb, line 68 def relative_structure_path(file_set) data_dir.basename.join(file_set.structure_path) end
valid?()
click to toggle source
@return [Boolean]
Calls superclass method
Lexicon::Common::Package::Package#valid?
# File lib/lexicon/common/package/v1/package.rb, line 28 def valid? super && data_dir.directory? && all_sets_valid? end
Private Instance Methods
all_sets_valid?()
click to toggle source
# File lib/lexicon/common/package/v1/package.rb, line 74 def all_sets_valid? file_sets.all? do |set| data_dir.join(set.structure_path).exist? && !set.data_path.nil? && data_dir.join(set.data_path).exist? end end