Sha256: fd229b34ced1989a3325ef5cb0b1e515bc86a7beafaa2e5af305e819b0e68c74

Contents?: true

Size: 980 Bytes

Versions: 12

Compression:

Stored size: 980 Bytes

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
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
j7w1-0.0.24 lib/j7w1/active_record_ext.rb
j7w1-0.0.23 lib/j7w1/active_record_ext.rb
j7w1-0.0.22 lib/j7w1/active_record_ext.rb
j7w1-0.0.21 lib/j7w1/active_record_ext.rb
j7w1-0.0.20 lib/j7w1/active_record_ext.rb
j7w1-0.0.19 lib/j7w1/active_record_ext.rb
j7w1-0.0.18 lib/j7w1/active_record_ext.rb
j7w1-0.0.17 lib/j7w1/active_record_ext.rb
j7w1-0.0.16 lib/j7w1/active_record_ext.rb
j7w1-0.0.15 lib/j7w1/active_record_ext.rb
j7w1-0.0.14 lib/j7w1/active_record_ext.rb
j7w1-0.0.13 lib/j7w1/active_record_ext.rb