Class: Lutaml::Store::PackageDefinition
- Inherits:
-
Object
- Object
- Lutaml::Store::PackageDefinition
- Defined in:
- lib/lutaml/store/package_definition.rb
Defined Under Namespace
Classes: AssetEntry, ModelEntry
Instance Attribute Summary collapse
-
#asset_entries ⇒ Object
readonly
Returns the value of attribute asset_entries.
-
#metadata_file ⇒ Object
readonly
Returns the value of attribute metadata_file.
-
#metadata_key ⇒ Object
readonly
Returns the value of attribute metadata_key.
-
#metadata_model ⇒ Object
readonly
Returns the value of attribute metadata_model.
-
#model_entries ⇒ Object
readonly
Returns the value of attribute model_entries.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #asset(path, type: :file) ⇒ Object
- #database_store_models ⇒ Object
- #entry_for(model_class) ⇒ Object
-
#initialize(name:, metadata_model: nil, metadata_file: nil, metadata_key: :shortname) {|_self| ... } ⇒ PackageDefinition
constructor
A new instance of PackageDefinition.
- #model(model:, key:, dir: nil, file: nil, layout: :separate, default_format: :yaml, serializer: nil) ⇒ Object
- #model_classes ⇒ Object
Constructor Details
#initialize(name:, metadata_model: nil, metadata_file: nil, metadata_key: :shortname) {|_self| ... } ⇒ PackageDefinition
Returns a new instance of PackageDefinition.
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_entries ⇒ Object (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_file ⇒ Object (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_key ⇒ Object (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_model ⇒ Object (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_entries ⇒ Object (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 |
#name ⇒ Object (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_models ⇒ Object
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
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_classes ⇒ Object
38 39 40 |
# File 'lib/lutaml/store/package_definition.rb', line 38 def model_classes @model_entries.map(&:model) end |