Class: Lutaml::Store::PackageDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/store/package_definition.rb

Defined Under Namespace

Classes: AssetEntry, ModelEntry

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, metadata_model: nil, metadata_file: nil, metadata_key: :shortname) {|_self| ... } ⇒ PackageDefinition

Returns a new instance of PackageDefinition.

Yields:

  • (_self)

Yield Parameters:



9
10
11
12
13
14
15
16
17
18
# File 'lib/lutaml/store/package_definition.rb', line 9

def initialize(name:, metadata_model: nil, metadata_file: nil,
               metadata_key: :shortname)
  @name = name
  @metadata_model = 
  @metadata_file = 
  @metadata_key = 
  @model_entries = []
  @asset_entries = []
  yield self if block_given?
end

Instance Attribute Details

#asset_entriesObject (readonly)

Returns the value of attribute asset_entries.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def asset_entries
  @asset_entries
end

#metadata_fileObject (readonly)

Returns the value of attribute metadata_file.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def 
  @metadata_file
end

#metadata_keyObject (readonly)

Returns the value of attribute metadata_key.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def 
  @metadata_key
end

#metadata_modelObject (readonly)

Returns the value of attribute metadata_model.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def 
  @metadata_model
end

#model_entriesObject (readonly)

Returns the value of attribute model_entries.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def model_entries
  @model_entries
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/lutaml/store/package_definition.rb', line 6

def name
  @name
end

Instance Method Details

#asset(path, type: :file) ⇒ Object



30
31
32
# File 'lib/lutaml/store/package_definition.rb', line 30

def asset(path, type: :file)
  @asset_entries << AssetEntry.new(path: path, type: type)
end

#database_store_modelsObject



42
43
44
45
46
47
48
49
# File 'lib/lutaml/store/package_definition.rb', line 42

def database_store_models
  @model_entries.map do |e|
    config = { model: e.model, key: e.key }
    config[:serializer] = e.serializer if e.serializer
    config[:dir] = e.dir if e.dir
    config
  end
end

#entry_for(model_class) ⇒ Object



34
35
36
# File 'lib/lutaml/store/package_definition.rb', line 34

def entry_for(model_class)
  @model_entries.find { |e| e.model == model_class }
end

#model(model:, key:, dir: nil, file: nil, layout: :separate, default_format: :yaml, serializer: nil) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
25
26
27
28
# File 'lib/lutaml/store/package_definition.rb', line 20

def model(model:, key:, dir: nil, file: nil, layout: :separate,
          default_format: :yaml, serializer: nil)
  raise ArgumentError, "Specify dir: or file:, not both" if dir && file

  @model_entries << ModelEntry.new(
    model: model, dir: dir, file: file, layout: layout,
    key: key, default_format: default_format, serializer: serializer
  )
end

#model_classesObject



38
39
40
# File 'lib/lutaml/store/package_definition.rb', line 38

def model_classes
  @model_entries.map(&:model)
end