Sha256: 2e190f5da5229bfa668b2aa116693a927afecff65b46bad263a182dee8a1d085

Contents?: true

Size: 705 Bytes

Versions: 5

Compression:

Stored size: 705 Bytes

Contents

# 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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
signum-0.7.8 lib/signum/active_record_helpers.rb
signum-0.7.4 lib/signum/active_record_helpers.rb
signum-0.7.2 lib/signum/active_record_helpers.rb
signum-0.7.1 lib/signum/active_record_helpers.rb
signum-0.7.0 lib/signum/active_record_helpers.rb