Class: EventJob Abstract

Inherits:
Hyrax::ApplicationJob show all
Includes:
ActionView::Helpers, HyraxHelper
Defined in:
app/jobs/event_job.rb

Overview

This class is abstract.

A generic job for sending events to a user.

Constant Summary

Constants included from Hyrax::CitationsBehaviors::TitleBehavior

Hyrax::CitationsBehaviors::TitleBehavior::EXPANDED_NOCAPS, Hyrax::CitationsBehaviors::TitleBehavior::TITLE_NOCAPS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Hyrax::HyraxHelperBehavior

#available_translations, #banner_image, #collection_thumbnail, #collection_title_by_id, #current_search_parameters, #human_readable_date, #iconify_auto_link, #index_field_link, #license_links, #link_to_each_facet_field, #link_to_facet, #link_to_facet_list, #link_to_field, #link_to_profile, #link_to_telephone, #orcid_label, #render_notifications, #rights_statement_links, #search_form_action, #show_transfer_request_title, #suppressed_to_status, #user_display_name_and_key, #zotero_label, #zotero_profile_url

Methods included from Hyrax::IiifHelper

#iiif_viewer_display, #iiif_viewer_display_partial

Methods included from Hyrax::DashboardHelperBehavior

#number_of_collections, #number_of_files, #number_of_works, #on_the_dashboard?

Methods included from Hyrax::ChartsHelper

#hash_to_chart

Methods included from Hyrax::CollectionsHelper

#append_collection_type_url, #button_for_remove_from_collection, #button_for_remove_selected_from_collection, #collection_type_label, #has_collection_search_parameters?, #present_terms, #render_collection_links, #single_item_action_remove_form_fields

Methods included from Hyrax::LeaseHelper

#assets_under_lease, #assets_with_deactivated_leases, #assets_with_expired_leases

Methods included from Hyrax::EmbargoHelper

#assets_under_embargo, #assets_with_deactivated_embargoes, #assets_with_expired_embargoes

Methods included from Hyrax::AbilityHelper

#render_visibility_link, #visibility_badge, #visibility_options

Methods included from Hyrax::FileSetHelper

#media_display, #media_display_partial, #parent_path

Methods included from Hyrax::TitleHelper

#application_name, #construct_page_title, #curation_concern_page_title, #default_page_title

Methods included from Hyrax::CitationsBehavior

#export_as_apa_citation, #export_as_chicago_citation, #export_as_mla_citation, #export_as_openurl_ctx_kev

Methods included from Hyrax::CitationsBehaviors::TitleBehavior

#chicago_citation_title, #mla_citation_title, #process_title_parts, #setup_title_info

Methods included from Hyrax::CitationsBehaviors::CommonBehavior

#clean_end_punctuation, #persistent_url

Methods included from Hyrax::CitationsBehaviors::NameBehavior

#abbreviate_name, #all_authors, #author_list, #given_name_first, #surname_first

Methods included from Hyrax::CitationsBehaviors::PublicationBehavior

#setup_pub_date, #setup_pub_info, #setup_pub_place, #setup_pub_publisher

Methods included from Hyrax::BlacklightOverride

#application_name

Instance Attribute Details

#depositorObject (readonly)

Returns the value of attribute depositor.



12
13
14
# File 'app/jobs/event_job.rb', line 12

def depositor
  @depositor
end

Instance Method Details

#actionObject

This method is abstract.

override to provide your specific action for the event you are logging

Raises:

  • (NotImplementedError)


23
24
25
# File 'app/jobs/event_job.rb', line 23

def action
  raise(NotImplementedError, "#action should be implemented by an child class of EventJob")
end

#eventObject

create an event with an action and a timestamp for the user



28
29
30
# File 'app/jobs/event_job.rb', line 28

def event
  @event ||= Hyrax::Event.create(action, Time.current.to_i)
end

#log_user_event(depositor) ⇒ Object

log the event to the users event stream



33
34
35
# File 'app/jobs/event_job.rb', line 33

def log_user_event(depositor)
  depositor.log_event(event)
end

#perform(depositor) ⇒ Object

Parameters:

  • depositor (User)

    the user to create the event for



15
16
17
18
19
# File 'app/jobs/event_job.rb', line 15

def perform(depositor)
  @depositor = depositor
  # Log the event to the depositor's profile stream
  log_user_event(depositor)
end