class Lexicon::Common::Package::V2::Package

Attributes

file_sets[R]

@return [SourceFileSet]

Public Class Methods

new(version:, spec_file:, checksum_file:, dir:, file_sets:) click to toggle source

@param [Pathname] dir @param [Pathname] checksum_file @param [Semantic::Version] version

Calls superclass method Lexicon::Common::Package::Package::new
# File lib/lexicon/common/package/v2/package.rb, line 11
def initialize(version:, spec_file:, checksum_file:, dir:, file_sets:)
  super(
    checksum_file: checksum_file,
    dir: dir,
    spec_file: spec_file,
    schema_version: 2,
    version: version,
  )

  @file_sets = file_sets
end

Public Instance Methods

data_dir() click to toggle source
# File lib/lexicon/common/package/v2/package.rb, line 34
def data_dir
  dir.join('data')
end
files() click to toggle source
# File lib/lexicon/common/package/v2/package.rb, line 27
def files
  file_sets.flat_map { |fs| file_set_files(fs) }
end
valid?() click to toggle source
# File lib/lexicon/common/package/v2/package.rb, line 23
def valid?
  super
end

Private Instance Methods

file_set_files(file_set) click to toggle source

@param [SourceFileSet] file_set @return [Array<PackageFile>]

# File lib/lexicon/common/package/v2/package.rb, line 42
def file_set_files(file_set)
  relative_data_dir = data_dir.basename

  structure_file = PackageFile.new_structure(relative_data_dir.join(file_set.structure))
  table_files = file_set.tables
                        .values.flatten(1)
                        .map { |table_file| PackageFile.new_data(relative_data_dir.join(table_file)) }

  [structure_file, *table_files]
end