Sha256: 49aa400fb4aec6d8e32890b2d954b8bbf58f7cdf1dc7122d3610d3d1d3723436

Contents?: true

Size: 628 Bytes

Versions: 4

Compression:

Stored size: 628 Bytes

Contents

module Synchronisable
  # @api private
  class InputDescriptor
    attr_reader :data

    def initialize(data)
      @data = data
    end

    def empty?
      @data.blank?
    end

    def remote_id?
      @data.is_a?(String)
    end

    def local_id?
      @data.is_a?(Integer)
    end

    def array_of_ids?
       enumerable? && (
        first_element.is_a?(String) ||
        first_element.is_a?(Integer)
      )
    end

    def element_class
      first_element.try(:class)
    end

    private

    def first_element
      @data.try(:first)
    end

    def enumerable?
      @data.is_a?(Enumerable)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
synchronisable-0.0.9 lib/synchronisable/input_descriptor.rb
synchronisable-0.0.8 lib/synchronisable/input_descriptor.rb
synchronisable-0.0.7 lib/synchronisable/input_descriptor.rb
synchronisable-0.0.6 lib/synchronisable/input_descriptor.rb