Class: Geoblacklight::Configuration::RelationshipsConfig
- Inherits:
-
Object
- Object
- Geoblacklight::Configuration::RelationshipsConfig
- Includes:
- Enumerable
- Defined in:
- lib/geoblacklight/configuration/relationships_config.rb
Overview
Hash-like configuration for the relationships displayed on a document’s show page. By default it carries all of the relationships defined in the RELATIONSHIPS_SHOWN section of settings.yml, using lowercase keys.
Constant Summary collapse
- DEFAULT_RELATIONSHIPS =
{ member_of_ancestors: { field: "pcdm_memberOf_sm", icon: "parent-item", inverse: :member_of_descendants, label: "geoblacklight.relations.member_of_ancestors", query_type: "ancestors" }, member_of_descendants: { field: "pcdm_memberOf_sm", icon: "child-item", inverse: :member_of_ancestors, label: "geoblacklight.relations.member_of_descendants", query_type: "descendants" }, part_of_ancestors: { field: "dct_isPartOf_sm", icon: "parent-item", inverse: :part_of_descendants, label: "geoblacklight.relations.part_of_ancestors", query_type: "ancestors" }, part_of_descendants: { field: "dct_isPartOf_sm", icon: "child-item", inverse: :part_of_ancestors, label: "geoblacklight.relations.part_of_descendants", query_type: "descendants" }, relation_ancestors: { field: "dct_relation_sm", icon: nil, inverse: :relation_descendants, label: "geoblacklight.relations.relation_ancestors", query_type: "ancestors" }, relation_descendants: { field: "dct_relation_sm", icon: nil, inverse: :relation_ancestors, label: "geoblacklight.relations.relation_descendants", query_type: "descendants" }, replaces_ancestors: { field: "dct_replaces_sm", icon: nil, inverse: :replaces_descendants, label: "geoblacklight.relations.replaces_ancestors", query_type: "ancestors" }, replaces_descendants: { field: "dct_replaces_sm", icon: nil, inverse: :replaces_ancestors, label: "geoblacklight.relations.replaces_descendants", query_type: "descendants" }, source_ancestors: { field: "dct_source_sm", icon: "parent-item", inverse: :source_descendants, label: "geoblacklight.relations.source_ancestors", query_type: "ancestors" }, source_descendants: { field: "dct_source_sm", icon: "child-item", inverse: :source_ancestors, label: "geoblacklight.relations.source_descendants", query_type: "descendants" }, version_of_ancestors: { field: "dct_isVersionOf_sm", icon: "parent-item", inverse: :version_of_descendants, label: "geoblacklight.relations.version_of_ancestors", query_type: "ancestors" }, version_of_descendants: { field: "dct_isVersionOf_sm", icon: "child-item", inverse: :version_of_ancestors, label: "geoblacklight.relations.version_of_descendants", query_type: "descendants" } }.freeze
Instance Method Summary collapse
- #[](key) ⇒ Object
- #each(&block) ⇒ Object
- #each_key(&block) ⇒ Object
-
#initialize(relationships = DEFAULT_RELATIONSHIPS) ⇒ RelationshipsConfig
constructor
A new instance of RelationshipsConfig.
- #key?(key) ⇒ Boolean
-
#method_missing(name, *args, **kwargs, &block) ⇒ Object
rubocop:disable Style/MissingRespondToMissing.
Constructor Details
#initialize(relationships = DEFAULT_RELATIONSHIPS) ⇒ RelationshipsConfig
Returns a new instance of RelationshipsConfig.
96 97 98 99 100 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 96 def initialize(relationships = DEFAULT_RELATIONSHIPS) @relationships = relationships.to_h.transform_values do |attrs| attrs.is_a?(RelationshipConfig) ? attrs : RelationshipConfig.new(attrs) end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, **kwargs, &block) ⇒ Object
rubocop:disable Style/MissingRespondToMissing
118 119 120 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 118 def method_missing(name, *args, **kwargs, &block) # rubocop:disable Style/MissingRespondToMissing @relationships.key?(name) ? @relationships[name] : super end |
Instance Method Details
#[](key) ⇒ Object
114 115 116 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 114 def [](key) @relationships[key] end |
#each(&block) ⇒ Object
102 103 104 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 102 def each(&block) @relationships.each(&block) end |
#each_key(&block) ⇒ Object
106 107 108 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 106 def each_key(&block) @relationships.each_key(&block) end |
#key?(key) ⇒ Boolean
110 111 112 |
# File 'lib/geoblacklight/configuration/relationships_config.rb', line 110 def key?(key) @relationships.key?(key) end |