Skip to content

Commit

Permalink
Adjust where to_uri happens.
Browse files Browse the repository at this point in the history
  • Loading branch information
tpendragon committed Sep 7, 2017
1 parent 4827d1f commit 1f8b718
Showing 1 changed file with 31 additions and 21 deletions.
Expand Up @@ -13,7 +13,7 @@ def initialize(resource:, adapter:, subject_uri: RDF::URI(""))
def convert
graph_resource.graph.delete([nil, nil, nil])
resource.attributes.each do |key, values|
output = property_converter.for(Property.new(subject_uri, key, values, adapter)).result
output = property_converter.for(Property.new(subject_uri, key, values, self)).result
graph_resource.graph << output.to_graph
end
graph_resource
Expand All @@ -31,26 +31,31 @@ def property_converter
FedoraValue
end

class Property
attr_reader :key, :value, :subject, :adapter
def to_uri(key)
RDF::URI.new("http://example.com/predicate/#{key}")
end

def self.to_uri(key)
RDF::URI.new("http://example.com/predicate/#{key}")
end
class Property
attr_reader :key, :value, :subject, :model_converter
delegate :adapter, :resource, to: :model_converter

def initialize(subject, key, value, adapter)
def initialize(subject, key, value, model_converter)
@subject = subject
@key = key
@value = value
@adapter = adapter
@model_converter = model_converter
end

def to_graph(graph = RDF::Graph.new)
Array(value).each do |val|
graph << RDF::Statement.new(subject, self.class.to_uri(key), val)
graph << RDF::Statement.new(subject, to_uri, val)
end
graph
end

def to_uri
model_converter.to_uri(key)
end
end

class CompositeProperty
Expand All @@ -68,17 +73,22 @@ def to_graph(graph = RDF::Graph.new)
end

class GraphProperty
attr_reader :key, :graph, :subject, :adapter
def initialize(subject, key, graph, adapter)
attr_reader :key, :graph, :subject, :model_converter
delegate :adapter, :resource, to: :model_converter
def initialize(subject, key, graph, model_converter)
@subject = subject
@key = key
@graph = graph
@adapter = adapter
@model_converter = model_converter
end

def to_graph(passed_graph = RDF::Graph.new)
passed_graph << graph
end

def to_uri
model_converter.to_uri(key)
end
end

class FedoraValue < ::Valkyrie::ValueMapper
Expand All @@ -93,7 +103,7 @@ def self.handles?(value)
def result
initialize_list
apply_first_and_last
GraphProperty.new(value.subject, value.key, graph, value.adapter)
GraphProperty.new(value.subject, value.key, graph, value.model_converter)
end

def graph
Expand All @@ -108,7 +118,7 @@ def apply_first_and_last

def initialize_list
Array(value.value).each_with_index do |val, index|
ordered_list.insert_proxy_for_at(index, calling_mapper.for(Property.new(value.subject, :member_id, val, value.adapter)).result.value)
ordered_list.insert_proxy_for_at(index, calling_mapper.for(Property.new(value.subject, :member_id, val, value.model_converter)).result.value)
end
end

Expand All @@ -124,8 +134,8 @@ def self.handles?(value)
end

def result
nested_graph << RDF::Statement.new(value.subject, Property.to_uri(value.key), subject_uri)
GraphProperty.new(value.subject, value.key, nested_graph, value.adapter)
nested_graph << RDF::Statement.new(value.subject, value.to_uri, subject_uri)
GraphProperty.new(value.subject, value.key, nested_graph, value.model_converter)
end

def nested_graph
Expand All @@ -144,7 +154,7 @@ def self.handles?(value)
end

def result
calling_mapper.for(Property.new(value.subject, value.key, RDF::Literal.new(value.value, datatype: RDF::URI("http://example.com/predicate/valkyrie_id")), value.adapter)).result
calling_mapper.for(Property.new(value.subject, value.key, RDF::Literal.new(value.value, datatype: RDF::URI("http://example.com/predicate/valkyrie_id")), value.model_converter)).result
end
end

Expand All @@ -155,7 +165,7 @@ def self.handles?(value)
end

def result
calling_mapper.for(Property.new(value.subject, value.key, value.adapter.id_to_uri(value.value), value.adapter)).result
calling_mapper.for(Property.new(value.subject, value.key, value.adapter.id_to_uri(value.value), value.model_converter)).result
end
end

Expand All @@ -166,7 +176,7 @@ def self.handles?(value)
end

def result
calling_mapper.for(Property.new(value.subject, value.key, value.value.to_datetime, value.adapter)).result
calling_mapper.for(Property.new(value.subject, value.key, value.value.to_datetime, value.model_converter)).result
end
end

Expand All @@ -177,7 +187,7 @@ def self.handles?(value)
end

def result
calling_mapper.for(Property.new(value.subject, value.key, RDF::Literal.new(value.value, datatype: RDF::URI("http://example.com/predicate/valkyrie_id")), value.adapter)).result
calling_mapper.for(Property.new(value.subject, value.key, RDF::Literal.new(value.value, datatype: RDF::URI("http://example.com/predicate/valkyrie_id")), value.model_converter)).result
end
end

Expand All @@ -189,7 +199,7 @@ def self.handles?(value)

def result
new_values = value.value.map do |val|
calling_mapper.for(Property.new(value.subject, value.key, val, value.adapter)).result
calling_mapper.for(Property.new(value.subject, value.key, val, value.model_converter)).result
end
CompositeProperty.new(new_values)
end
Expand Down

0 comments on commit 1f8b718

Please sign in to comment.