Class: Capsium::Package::DatasetConfig

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/capsium/package/storage_config.rb,
sig/capsium/package/storage_config.rbs

Overview

A single dataset entry (ARCHITECTURE.md section 5): schema-backed file (via "source") or SQLite ("databaseFile" + "table").

Constant Summary collapse

FORMATS =

Returns:

  • (Hash[String, String])
{
  ".yaml" => "yaml", ".yml" => "yaml", ".json" => "json",
  ".csv" => "csv", ".tsv" => "tsv",
  ".sqlite" => "sqlite", ".db" => "sqlite"
}.freeze
SCHEMA_TYPES =

Returns:

  • (Array[String])
%w[json-schema].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeObject



33
# File 'sig/capsium/package/storage_config.rbs', line 33

def initialize: (?source: String? source, ?schema_file: String? schema_file,

Instance Attribute Details

#database_fileString?

Returns the value of attribute database_file.

Returns:

  • (String, nil)


30
31
32
# File 'sig/capsium/package/storage_config.rbs', line 30

def database_file
  @database_file
end

#schema_fileString?

Returns the value of attribute schema_file.

Returns:

  • (String, nil)


28
29
30
# File 'sig/capsium/package/storage_config.rbs', line 28

def schema_file
  @schema_file
end

#schema_typeString?

Returns the value of attribute schema_type.

Returns:

  • (String, nil)


29
30
31
# File 'sig/capsium/package/storage_config.rbs', line 29

def schema_type
  @schema_type
end

#sourceString?

Returns the value of attribute source.

Returns:

  • (String, nil)


27
28
29
# File 'sig/capsium/package/storage_config.rbs', line 27

def source
  @source
end

#tableString?

Returns the value of attribute table.

Returns:

  • (String, nil)


31
32
33
# File 'sig/capsium/package/storage_config.rbs', line 31

def table
  @table
end

Instance Method Details

#backing_fileString

Returns:

  • (String)


43
44
45
# File 'lib/capsium/package/storage_config.rb', line 43

def backing_file
  database_file || source.to_s
end

#formatString

Returns:

  • (String)


33
34
35
36
37
# File 'lib/capsium/package/storage_config.rb', line 33

def format
  FORMATS.fetch(File.extname(backing_file).downcase) do
    raise Error, "Unsupported data file type: #{File.extname(backing_file)}"
  end
end

#sqlite?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/capsium/package/storage_config.rb', line 39

def sqlite?
  !database_file.nil?
end

#to_dataset(name, package_path) ⇒ Dataset

Parameters:

  • name (String)
  • package_path (String)

Returns:



47
48
49
# File 'lib/capsium/package/storage_config.rb', line 47

def to_dataset(name, package_path)
  Dataset.new(name: name, config: self, package_path: package_path)
end

#to_hashHash[String, untyped]

Returns:

  • (Hash[String, untyped])


47
# File 'sig/capsium/package/storage_config.rbs', line 47

def to_hash: () -> Hash[String, untyped]

#to_jsonString

Parameters:

  • args (Object)

Returns:

  • (String)


46
# File 'sig/capsium/package/storage_config.rbs', line 46

def to_json: (*untyped args) -> String