module LinkedRails::Enhancements::Actionable::Model

Public Instance Methods

action(tag, user_context = nil) click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 13
def action(tag, user_context = nil)
  actions(user_context).find { |a| a.tag == tag }
end
action_list(user_context) click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 17
def action_list(user_context)
  @action_list ||= {}
  @action_list[user_context] ||= self.class.action_list.new(resource: self, user_context: user_context)
end
action_triples() click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 22
def action_triples
  @action_triples ||= triples_for_actions(actions) + triples_for_actions(collection_actions)
end
actions(user_context = nil) click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 9
def actions(user_context = nil)
  action_list(user_context).actions
end
collection_actions() click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 26
def collection_actions
  (try(:collections) || []).map do |opts|
    collection_for(opts[:name]).actions
  end.flatten
end

Private Instance Methods

triples_for_actions(actions) click to toggle source
# File lib/linked_rails/enhancements/actionable/model.rb, line 34
def triples_for_actions(actions)
  actions.flat_map do |action|
    triples = [
      [iri, action.predicate, action.iri],
      [iri, Vocab.schema.potentialAction, action.iri]
    ]
    triples << [iri, LinkedRails::Vocab.ontola[:favoriteAction], action.iri] if action.favorite
    triples
  end
end