Class: Lutaml::Turtle::Transform
- Inherits:
-
Rdf::Transform
- Object
- Rdf::Transform
- Lutaml::Turtle::Transform
- Defined in:
- lib/glossarist/rdf/ext/turtle_transform_ext.rb
Instance Method Summary collapse
- #data_to_model(data, _format, options = {}) ⇒ Object
- #model_to_data(instance, _format, options = {}) ⇒ Object
Instance Method Details
#data_to_model(data, _format, options = {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/glossarist/rdf/ext/turtle_transform_ext.rb', line 33 def data_to_model(data, _format, = {}) mapping = extract_turtle_mapping() unless mapping&.rdf_subject raise MissingSubjectError, "Turtle mapping requires a subject block" end graph = data.is_a?(RDF::Graph) ? data : Lutaml::Turtle::Adapter.parse(data) attrs = extract_attributes(graph, mapping) build_instance(attrs, ) end |
#model_to_data(instance, _format, options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/glossarist/rdf/ext/turtle_transform_ext.rb', line 15 def model_to_data(instance, _format, = {}) mapping = extract_turtle_mapping() return "" unless mapping if !mapping.rdf_subject && mapping.has_types_or_predicates? && mapping.rdf_members.empty? raise MissingSubjectError, "Turtle mapping requires a subject block" end graph = build_graph(mapping, instance) return "" if graph.empty? prefixes = collect_all_prefixes(mapping, instance) RDF::Turtle::Writer.buffer(prefixes: prefixes) do |writer| graph.each_statement { |stmt| writer << stmt } end.strip end |