Class: DataFoodConsortium::Connector::JsonLdSerializer
- Inherits:
-
Object
- Object
- DataFoodConsortium::Connector::JsonLdSerializer
- Defined in:
- lib/datafoodconsortium/connector/json_ld_serializer.rb
Instance Method Summary collapse
-
#initialize(outputContext = nil, inputContext = nil) ⇒ JsonLdSerializer
constructor
A new instance of JsonLdSerializer.
- #process(*subjects) ⇒ Object
Constructor Details
#initialize(outputContext = nil, inputContext = nil) ⇒ JsonLdSerializer
Returns a new instance of JsonLdSerializer.
28 29 30 31 |
# File 'lib/datafoodconsortium/connector/json_ld_serializer.rb', line 28 def initialize(outputContext = nil, inputContext = nil) @outputContext = outputContext @hashSerializer = VirtualAssembly::Semantizer::HashSerializer.new(inputContext) end |
Instance Method Details
#process(*subjects) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/datafoodconsortium/connector/json_ld_serializer.rb', line 33 def process(*subjects) return "" if subjects.empty? # Insert an input context on each subject so the properties could be prefixed. This way, # the DFC's context can be used. # See https://github.com/datafoodconsortium/connector-ruby/issues/11. inputs = subjects.map do |subject| # JSON::LD needs a context on every input using prefixes. subject.serialize(@hashSerializer).merge("@context" => @outputContext) end jsonLd = JSON::LD::API.compact(inputs, @outputContext) JSON.generate(jsonLd) end |