Module: ActiveTriples::Configurable
- Included in:
- List
- Defined in:
- lib/active_triples/configurable.rb
Overview
Module to include configurable class-wide properties common to RDFSources.
Define properties at the class level with:
Available properties are base_uri, rdf_label, type, and repository
Instance Method Summary collapse
- #base_uri ⇒ Object
- #configuration ⇒ Object
-
#configure(options = {}) ⇒ Object
API for configuring class properties on a RDFSource.
- #inherited(child_class) ⇒ Object
- #rdf_label ⇒ Object
- #repository ⇒ Object
- #transform_type(values) ⇒ Object
- #type ⇒ Object
Instance Method Details
#base_uri ⇒ Object
22 23 24 |
# File 'lib/active_triples/configurable.rb', line 22 def base_uri configuration[:base_uri] end |
#configuration ⇒ Object
34 35 36 |
# File 'lib/active_triples/configurable.rb', line 34 def configuration @configuration ||= Configuration.new end |
#configure(options = {}) ⇒ Object
API for configuring class properties on a RDFSource. This is an alternative to overriding the methods in this module.
Can configure the following values:
- base_uri (allows passing slugs to the RDFSource initializer
in place of fully qualified URIs)
- rdf_label (overrides default label predicates)
- type (a default rdf:type to include when initializing a
new RDFSource)
- repository (the target persist location to for the RDFSource)
58 59 60 61 62 63 64 65 66 |
# File 'lib/active_triples/configurable.rb', line 58 def configure( = {}) = .map do |key, value| if self.respond_to?("transform_#{key}") value = self.__send__("transform_#{key}", value) end [key, value] end @configuration = configuration.merge() end |
#inherited(child_class) ⇒ Object
17 18 19 20 |
# File 'lib/active_triples/configurable.rb', line 17 def inherited(child_class) child_class.configure type: self.type super end |
#rdf_label ⇒ Object
26 27 28 |
# File 'lib/active_triples/configurable.rb', line 26 def rdf_label configuration[:rdf_label] end |
#repository ⇒ Object
38 39 40 |
# File 'lib/active_triples/configurable.rb', line 38 def repository configuration[:repository] end |
#transform_type(values) ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/active_triples/configurable.rb', line 68 def transform_type(values) Array.wrap(values).map do |value| RDF::URI.intern(value).tap do |uri| RDFSource.type_registry[uri] = self end end end |
#type ⇒ Object
30 31 32 |
# File 'lib/active_triples/configurable.rb', line 30 def type configuration[:type] end |