# frozen_string_literal: true module Signum module ActiveRecordHelpers extend ActiveSupport::Concern class_methods do def signalable has_many :signals, as: :signalable, class_name: 'Signum::Signal' send :include, Signum::ActiveRecordHelpers::InstanceMethods extend(Signum::ActiveRecordHelpers::ClassMethods) end end module ClassMethods end module InstanceMethods def online! update(presence: 'online') end def offline! update(presence: 'offline') end def appeared! update(presence: 'appeared') end def away! update(presence: 'away') end end end end