Class: ORE::Proxy
- Inherits:
-
ActiveTriples::Resource
- Object
- ActiveTriples::Resource
- ORE::Proxy
- Includes:
- ActiveFedora::RDF::Indexing, Digest, Solrizer::Common
- Defined in:
- app/models/concerns/ore/proxy.rb
Direct Known Subclasses
Defined Under Namespace
Modules: Id
Class Method Summary collapse
Instance Method Summary collapse
-
#apply_prefix(name) ⇒ Object
override to obscure attempts to identify a containing Datastream.
-
#fields ⇒ Object
returns a Hash, e.g.: => {:values => [], :type => :something, :behaviors => [], …}.
-
#initialize(proxy_resource_uri, graph_context_uri, *args) ⇒ Proxy
constructor
A new instance of Proxy.
- #insert_field_map(name, config, field_map = {}) ⇒ Object
- #resource ⇒ Object
- #to_json ⇒ Object
-
#to_solr(solr_doc = {}) ⇒ Object
:nodoc:.
- #type_config ⇒ Object
Constructor Details
#initialize(proxy_resource_uri, graph_context_uri, *args) ⇒ Proxy
Returns a new instance of Proxy.
57 58 59 60 61 62 63 |
# File 'app/models/concerns/ore/proxy.rb', line 57 def initialize(proxy_resource_uri, graph_context_uri, *args) proxy_resource_uri = RDF::URI(proxy_resource_uri) super(proxy_resource_uri,*args) update(RDF::Statement(rdf_subject,RDF.nodeID,proxy_resource_uri)) self.proxyIn = graph_context_uri self.proxyFor = proxy_resource_uri end |
Class Method Details
Instance Method Details
#apply_prefix(name) ⇒ Object
override to obscure attempts to identify a containing Datastream
66 67 68 |
# File 'app/models/concerns/ore/proxy.rb', line 66 def apply_prefix(name) name end |
#fields ⇒ Object
returns a Hash, e.g.: => {:values => [], :type => :something, :behaviors => [], …}
94 95 96 97 98 99 100 101 |
# File 'app/models/concerns/ore/proxy.rb', line 94 def fields field_map = {}.with_indifferent_access insert_field_map(:type, type_config(),field_map) self.class.properties.each do |name, config| insert_field_map(name, config, field_map) end field_map end |
#insert_field_map(name, config, field_map = {}) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 |
# File 'app/models/concerns/ore/proxy.rb', line 103 def insert_field_map(name, config, field_map={}) type = config[:type] behaviors = config[:behaviors] return field_map unless type and behaviors return field_map if config[:class_name] && config[:class_name] < ActiveFedora::Base resource.query(:subject => rdf_subject, :predicate => config[:predicate]).each_statement do |statement| field_map[name] ||= {:values => [], :type => type, :behaviors => behaviors, term: config[:term]} field_map[name][:values] << statement.object.to_s end field_map end |
#resource ⇒ Object
70 71 72 |
# File 'app/models/concerns/ore/proxy.rb', line 70 def resource self end |
#to_json ⇒ Object
74 75 76 |
# File 'app/models/concerns/ore/proxy.rb', line 74 def to_json to_solr.with_indifferent_access end |
#to_solr(solr_doc = {}) ⇒ Object
:nodoc:
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'app/models/concerns/ore/proxy.rb', line 78 def to_solr(solr_doc = {}) # :nodoc: fields.each do |field_key, field_info| values = resource.get_values(field_key.to_sym).result || [] values = [values] unless values.is_a? Array values.each do |val| if val.kind_of? RDF::URI val = val.to_s elsif val.kind_of? ActiveTriples::Resource val = val.solrize end self.class.create_and_insert_terms(apply_prefix(field_key), val, field_info[:behaviors], solr_doc) end end solr_doc end |
#type_config ⇒ Object
115 116 117 118 119 120 121 |
# File 'app/models/concerns/ore/proxy.rb', line 115 def type_config @type_node_config ||= begin config = ActiveTriples::NodeConfig.new(:type, RDF.type) config.with_index {|ix| ix.as :symbol } config end end |