Module: Shared::DataAttributes

Extended by:
ActiveSupport::Concern
Included in:
AssertedDistribution, BiologicalAssociation, BiologicalRelationship, CharacterState, CollectingEvent, CollectionObject, CommonName, Content, Depiction, Descriptor, Loan, LoanItem, Observation, ObservationMatrix, Otu, Person, Sequence, Serial, Source, TaxonDetermination, TaxonName, TypeMaterial, User
Defined in:
app/models/concerns/shared/data_attributes.rb

Overview

Shared code extending data classes with data-attributes (predicate->value tags).

Instance Method Summary (collapse)

Instance Method Details

- (Scope) import_attributes

Returns:

  • (Scope)


21
22
23
# File 'app/models/concerns/shared/data_attributes.rb', line 21

def import_attributes
  data_attributes.where(type: 'ImportAttribute')
end

- (Scope) internal_attributes

Returns:

  • (Scope)


16
17
18
# File 'app/models/concerns/shared/data_attributes.rb', line 16

def internal_attributes
  data_attributes.where(type: 'InternalAttribute')
end

- (Hash) keyword_value_hash

Returns all data attributes in String (name) -> value format

Returns:

  • (Hash)

    all data attributes in String (name) -> value format



27
28
29
30
31
32
33
34
35
36
# File 'app/models/concerns/shared/data_attributes.rb', line 27

def keyword_value_hash
  self.data_attributes.inject({}) do |hsh, a|
    if a.kind_of?(ImportAttribute)
      hsh[a.import_predicate] = a.value
    else # If not an ImportAttribute then it's an InternalAttribute
      hsh[a.predicate.name] = a.value
    end
    hsh
  end
end