Sha256: 07b32e440c80fcdcc10448c60ac2a4819a0955cc1665fb6faeb38a8033e45e2e
Contents?: true
Size: 849 Bytes
Versions: 1
Compression:
Stored size: 849 Bytes
Contents
module ActiveFedora module RdfList attr_reader :graph, :subject def initialize(graph, subject) @graph = graph @subject = subject end def first self[0] end def [](idx) idx == 0 ? head.value : tail[idx-1] end def size tail ? tail.size + 1 : 0 end def value v = graph.query([subject, RDF.first, nil]).first return v.object if v.object.uri? if v.object.resource? type = graph.query([v.object, RDF.type, nil]).first return ActiveFedora::RdfNode.rdf_registry[type.object].new(graph, v.object) end v end def head @head ||= self.class.new(graph, subject) end def tail rest = graph.query([subject, RDF.rest, nil]).first return unless rest self.class.new(graph, rest.object) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active-fedora-6.0.0.pre5 | lib/active_fedora/rdf_list.rb |