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]

# 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