Module: LinkedRails::Model::Serialization::ClassMethods

Defined in:
lib/linked_rails/model/serialization.rb

Instance Method Summary collapse

Instance Method Details

#attributes_from_filters(filters) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/linked_rails/model/serialization.rb', line 19

def attributes_from_filters(filters)
  filters.each_with_object({}) do |(key, value), hash|
    next unless value.count == 1

    attribute = predicate_mapping[key]&.key
    hash[attribute] = value.first if attribute
  end
end

#include_in_collection?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/linked_rails/model/serialization.rb', line 28

def include_in_collection?
  false
end

#includes_for_serializerObject

The associations to preload when serializing multiple records



37
38
39
# File 'lib/linked_rails/model/serialization.rb', line 37

def includes_for_serializer
  {}
end

#input_select_propertyObject



32
33
34
# File 'lib/linked_rails/model/serialization.rb', line 32

def input_select_property
  Vocab.schema.name
end

#predicate_for_key(key) ⇒ Object



41
42
43
44
45
46
# File 'lib/linked_rails/model/serialization.rb', line 41

def predicate_for_key(key)
  return if key.blank?

  predicate_mapping.detect { |_key, value| value.key.to_sym == key.to_sym }&.first ||
    predicate_for_key(try(:attribute_aliases)&.key(key.to_s))
end

#predicate_mappingObject



48
49
50
# File 'lib/linked_rails/model/serialization.rb', line 48

def predicate_mapping
  @predicate_mapping ||= Hash[attribute_mapping + reflection_mapping]
end

#preview_includesObject

The associations to include when serializing multiple records



53
54
55
# File 'lib/linked_rails/model/serialization.rb', line 53

def preview_includes
  []
end

#show_includesObject

The associations to include when serializing one record



58
59
60
# File 'lib/linked_rails/model/serialization.rb', line 58

def show_includes
  preview_includes
end