Class: Lutaml::Rdf::Transform

Inherits:
Model::Transform show all
Defined in:
lib/lutaml/rdf/transform.rb

Direct Known Subclasses

JsonLd::Transform, Turtle::Transform

Constant Summary

Constants inherited from Model::Transform

Model::Transform::MAX_CACHE_SIZE

Instance Attribute Summary

Attributes inherited from Model::Transform

#context, #lutaml_register

Instance Method Summary collapse

Methods inherited from Model::Transform

#attributes, cache_size, cached_transform, clear_cache!, data_to_model, #data_to_model, #initialize, invalidate_for, #model_class, model_to_data, #model_to_data

Constructor Details

This class inherits a constructor from Lutaml::Model::Transform

Instance Method Details

#each_member(instance, member_rule) ⇒ Object



20
21
22
23
# File 'lib/lutaml/rdf/transform.rb', line 20

def each_member(instance, member_rule, &)
  collection = Array(instance.public_send(member_rule.attr_name))
  collection.each(&)
end

#extract_language(value) ⇒ Object



29
30
31
# File 'lib/lutaml/rdf/transform.rb', line 29

def extract_language(value)
  value.language_tag if value.is_a?(Lutaml::Rdf::LanguageTagged)
end

#member_mapping_for(member, format) ⇒ Object



25
26
27
# File 'lib/lutaml/rdf/transform.rb', line 25

def member_mapping_for(member, format)
  member.class.mappings[format]
end

#resolve_single_type_uri(mapping, type_value) ⇒ Object



10
11
12
# File 'lib/lutaml/rdf/transform.rb', line 10

def resolve_single_type_uri(mapping, type_value)
  mapping.namespace_set.resolve_compact_iri(type_value)
end

#resolve_subject_uri(mapping, instance) ⇒ Object



6
7
8
# File 'lib/lutaml/rdf/transform.rb', line 6

def resolve_subject_uri(mapping, instance)
  mapping.rdf_subject&.call(instance)
end

#resolve_type_uris(mapping) ⇒ Object



14
15
16
17
18
# File 'lib/lutaml/rdf/transform.rb', line 14

def resolve_type_uris(mapping)
  return [] unless mapping.rdf_type.any?

  mapping.rdf_type.map { |t| resolve_single_type_uri(mapping, t) }
end