Sha256: b9b190edd933191cb08a0915d881405015bb63ed5898aa0dae77cba5f9dc6616

Contents?: true

Size: 625 Bytes

Versions: 9

Compression:

Stored size: 625 Bytes

Contents

module ActiveFedora::Associations
  ##
  # A composite object for an array of IDs. This abstracts away the fact that an
  # ID might be either a relative ID or a URI to a resource.
  class IDComposite
    attr_reader :ids, :id_translator
    include Enumerable
    def initialize(ids, id_translator)
      @ids = ids
      @id_translator = id_translator
    end

    # @return [Array<relative_id>]
    def each
      ids.each do |id|
        yield convert(id)
      end
    end

    private

    def convert(id)
      if id.start_with?("http")
        id_translator.call(id)
      else
        id
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
active-fedora-9.4.3 lib/active_fedora/associations/id_composite.rb
active-fedora-9.4.2 lib/active_fedora/associations/id_composite.rb
active-fedora-9.4.1 lib/active_fedora/associations/id_composite.rb
active-fedora-9.4.0 lib/active_fedora/associations/id_composite.rb
active-fedora-9.3.0 lib/active_fedora/associations/id_composite.rb
active-fedora-9.2.1 lib/active_fedora/associations/id_composite.rb
active-fedora-9.2.0 lib/active_fedora/associations/id_composite.rb
active-fedora-9.2.0.rc2 lib/active_fedora/associations/id_composite.rb
active-fedora-9.2.0.rc1 lib/active_fedora/associations/id_composite.rb