class Ldp::Orm
Attributes
last_response[R]
resource[R]
Public Class Methods
new(resource)
click to toggle source
# File lib/ldp/orm.rb, line 6 def initialize resource @resource = resource end
Public Instance Methods
create()
click to toggle source
# File lib/ldp/orm.rb, line 46 def create Ldp.instrument 'create.orm.ldp', subject: subject_uri do # resource.create returns a reloaded resource which causes any default URIs (e.g. "<>") # in the graph to be transformed to routable URIs Ldp::Orm.new resource.create end end
delete()
click to toggle source
# File lib/ldp/orm.rb, line 74 def delete Ldp.instrument 'delete.orm.ldp', subject: subject_uri do resource.delete end end
graph()
click to toggle source
# File lib/ldp/orm.rb, line 22 def graph Ldp.instrument 'graph.orm.ldp', subject: subject_uri do resource.graph end end
new?()
click to toggle source
# File lib/ldp/orm.rb, line 14 def new? resource.new? end
persisted?()
click to toggle source
# File lib/ldp/orm.rb, line 18 def persisted? !new? end
query(*args, &block)
click to toggle source
# File lib/ldp/orm.rb, line 34 def query *args, &block Ldp.instrument 'query.orm.ldp', subject: subject_uri do graph.query *args, &block end end
reload()
click to toggle source
# File lib/ldp/orm.rb, line 40 def reload Ldp.instrument 'reload.orm.ldp', subject: subject_uri do Ldp::Orm.new resource.reload end end
save()
click to toggle source
# File lib/ldp/orm.rb, line 54 def save Ldp.instrument 'save.orm.ldp', subject: subject_uri do response = create_or_update response.success? end rescue Ldp::HttpError false end
save!()
click to toggle source
# File lib/ldp/orm.rb, line 64 def save! result = create_or_update if result.is_a? RDF::Enumerable raise Ldp::GraphDifferenceException, 'Graph failed to persist', result end result end
subject_uri()
click to toggle source
# File lib/ldp/orm.rb, line 10 def subject_uri resource.subject_uri end
value(predicate)
click to toggle source
# File lib/ldp/orm.rb, line 28 def value predicate graph.query([subject_uri, predicate, nil]).map do |stmt| stmt.object end end
Private Instance Methods
create_or_update()
click to toggle source
# File lib/ldp/orm.rb, line 82 def create_or_update @last_response = resource.save rescue Ldp::HttpError => e @last_response = e logger.debug e raise e end
logger()
click to toggle source
# File lib/ldp/orm.rb, line 90 def logger Ldp.logger end