# class GxG::Tuple

### Public Class Methods

new(key=nil,value=nil) click to toggle source

Inspired by Python's `Tuple` class, in this case: allows any object to be a key for any other object Monkey-patch notes: stackoverflow.com/questions/4470108/when-monkey-patching-a-method-can-you-call-the-overridden-method-from-the-new-i (Array integration)

    # File lib/gxg/gxg_elements.rb, line 397
    def initialize(key=nil,value=nil)
      @thread_safety = ::Mutex.new
      @key = key
      @value = value
    end

### Public Instance Methods

<=>(other_value=nil) click to toggle source

    # File lib/gxg/gxg_elements.rb, line 417
    def <=>(other_value=nil)
      if other_value.respone_to?(:<=>)
        if other_value.is_a?(GxG::Tuple)
          @thread_safety.synchronize { @value <=> other_value.value }
        else
          @thread_safety.synchronize { @value <=> other_value }
        end
      else
        # taking liberties here, if other object does not support compare, then this obj is construed as greater than. (bias)
        1
      end
    end

inspect() click to toggle source

    # File lib/gxg/gxg_elements.rb, line 432
    def inspect()
      @thread_safety.synchronize { "#{@key.inspect} => #{@value.inspect}" }
    end

key() click to toggle source

    # File lib/gxg/gxg_elements.rb, line 403
    def key()
      @thread_safety.synchronize { @key }
    end

key=(new_key=nil) click to toggle source

    # File lib/gxg/gxg_elements.rb, line 406
    def key= (new_key=nil)
      @thread_safety.synchronize { @key = new_key }
    end

to_s() click to toggle source

    # File lib/gxg/gxg_elements.rb, line 429
    def to_s()
      @thread_safety.synchronize { @value.to_s }
    end

value() click to toggle source

    # File lib/gxg/gxg_elements.rb, line 410
    def value()
      @thread_safety.synchronize { @value }
    end

value=(new_value=nil) click to toggle source

    # File lib/gxg/gxg_elements.rb, line 413
    def value= (new_value=nil)
      @thread_safety.synchronize { @value = new_value }
    end