Sha256: 2df3f792b859be54f8d9ad8d0632d21f8694a375f48e6a9251450105bdaeb1a5

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

module J7W1
  module ActiveRecordExt
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      private
      def application_device_owner
        include InstanceMethods

        has_many :application_devices, class_name: 'J7W1ApplicationDevice',
          as: :owner
      end
    end

    module InstanceMethods
      def add_device(device_identifier, platform)
        device =
          J7W1ApplicationDevice.identified(device_identifier).on_platform(J7W1::Util.normalize_platform(platform)).
          first_or_initialize
        device.owner = self
        device.disabled = false
        device.save!
      end

      def remove_device(device_identifier, platform)
        devices.where(device_identifier: device_identifier, platform: platform).
          destroy_all
      end

      def push!(options = {})
        application_devices.enabled.each do |device|
          device.push! options
        end
      end

      def set_badge(count = 0)
        push!(badge: count)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
j7w1-0.0.27.2 lib/j7w1/active_record_ext.rb
j7w1-0.0.27.1 lib/j7w1/active_record_ext.rb
j7w1-0.0.27 lib/j7w1/active_record_ext.rb
j7w1-0.0.26 lib/j7w1/active_record_ext.rb
j7w1-0.0.25 lib/j7w1/active_record_ext.rb