Class: Lutaml::JsonLd::Transform
- Inherits:
-
Rdf::Transform
- Object
- Rdf::Transform
- Lutaml::JsonLd::Transform
- Defined in:
- lib/glossarist/rdf/ext/jsonld_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
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/glossarist/rdf/ext/jsonld_transform_ext.rb', line 25 def data_to_model(data, _format, = {}) mapping = extract_mapping() return model_class.new unless mapping hash = data.is_a?(String) ? JSON.parse(data) : data if hash.key?("@graph") && hash["@graph"].is_a?(Array) && !hash["@graph"].empty? graph_data = hash["@graph"] first = graph_data.first hash = first.is_a?(Hash) ? first : {} end hash = strip_jsonld_keywords(hash) attrs = {} mapping.rdf_predicates.each do |rule| value = hash[rule.predicate_name] next if value.nil? attrs[rule.to] = if rule.lang_tagged && value.is_a?(Hash) flatten_language_map(value) else value end end build_instance(attrs, ) end |
#model_to_data(instance, _format, options = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/glossarist/rdf/ext/jsonld_transform_ext.rb', line 14 def model_to_data(instance, _format, = {}) mapping = extract_mapping() return {} unless mapping if mapping.rdf_members.any? build_graph_document(mapping, instance) else build_resource_object(mapping, instance) end end |