Sha256: d3f404444e85ed8c7619f05b6eecd1b1393097a0586c3fba5fb1f427b324ac45

Contents?: true

Size: 651 Bytes

Versions: 17

Compression:

Stored size: 651 Bytes

Contents

# frozen_string_literal: true
module Valkyrie
  # A simple ID class to keep IDs distinguished from strings
  # In order for an object to be queryable via joins, it needs
  # to be added as a reference via a Valkyrie::ID rather than just a string ID.
  class ID
    attr_reader :id
    delegate :empty?, to: :id
    def initialize(id)
      @id = id.to_s
    end

    ##
    # @return [String]
    def to_s
      to_str
    end

    ##
    # @return [String]
    def to_str
      id
    end

    delegate :hash, to: :state

    def eql?(other)
      other == to_str
    end
    alias == eql?

    protected

    def state
      [@id]
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
valkyrie-3.5.0 lib/valkyrie/id.rb
valkyrie-3.4.0 lib/valkyrie/id.rb
valkyrie-3.3.0 lib/valkyrie/id.rb
valkyrie-3.1.5 lib/valkyrie/id.rb
valkyrie-3.1.4 lib/valkyrie/id.rb
valkyrie-3.1.3 lib/valkyrie/id.rb
valkyrie-3.1.2 lib/valkyrie/id.rb
valkyrie-3.1.1 lib/valkyrie/id.rb
valkyrie-3.1.0 lib/valkyrie/id.rb
valkyrie-3.0.3 lib/valkyrie/id.rb
valkyrie-3.0.2 lib/valkyrie/id.rb
valkyrie-3.0.1 lib/valkyrie/id.rb
valkyrie-3.0.0 lib/valkyrie/id.rb
valkyrie-3.0.0.pre.rc.1 lib/valkyrie/id.rb
valkyrie-3.0.0.pre.beta.3 lib/valkyrie/id.rb
valkyrie-3.0.0.pre.beta.2 lib/valkyrie/id.rb
valkyrie-3.0.0.pre.beta.1 lib/valkyrie/id.rb