Sha256: 99d6887b3f2b9c81280693d4626ad384ffbea4a439430b7f98712077abc98b96
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
require 'net/http' class PushmiPullyu::AIP::OwnerEmailEditor OWNER_PREDICATE = RDF::URI('http://purl.org/ontology/bibo/owner').freeze class NoOwnerPredicate < StandardError; end def initialize(rdf_string) @document = rdf_string end def run is_modified = false prefixes = nil # Read once to load prefixes (the @things at the top of an n3 file) RDF::N3::Reader.new(input = @document) do |reader| reader.each_statement { |_statement| } prefixes = reader.prefixes end new_body = RDF::N3::Writer.buffer(prefixes: prefixes) do |writer| RDF::N3::Reader.new(input = @document) do |reader| reader.each_statement do |statement| if statement.predicate == OWNER_PREDICATE user = PushmiPullyu::AIP::User.find(statement.object.to_i) writer << [statement.subject, statement.predicate, user.email] is_modified = true else writer << statement end end end end return new_body if is_modified raise NoOwnerPredicate end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pushmi_pullyu-1.0.4 | lib/pushmi_pullyu/aip/owner_email_editor.rb |
pushmi_pullyu-1.0.3 | lib/pushmi_pullyu/aip/owner_email_editor.rb |