Sha256: d6909615bec608db3980d334745cc6010609641fcc27788a8bfcf90f8b0dc272

Contents?: true

Size: 1.05 KB

Versions: 91

Compression:

Stored size: 1.05 KB

Contents

module Mandy
  class Tuple
    
    SEPERATOR = ',' unless defined?(SEPERATOR)
    
    attr_accessor :name, :value
    
    def initialize(name, value, name_accessor = nil, value_accessor = nil)
      @name, @value = name, value
      alias_accessor(name_accessor, :name) unless name_accessor.nil?
      alias_accessor(value_accessor, :value) unless value_accessor.nil?
    end
    
    def to_s
      %(#{@name}#{SEPERATOR}#{@value})
    end
    
    def self.from_s(str)
      parts = str.split(SEPERATOR)
      raise "Can't create tuple from #{str.inspect}. Format should be 'A#{SEPERATOR}B'" unless parts.size==2
      new(*parts)
    end
    
    def inspect
      %(<Tuple #{self.to_s}>)
    end
    
    def ==(other)
      return false unless self.class == other.class
      self.name == other.name && self.value == other.value
    end
    
    private
    
    def alias_accessor(new_accessor, old_accessor)
      self.class.send(:alias_method, new_accessor, old_accessor)
      self.class.send(:alias_method, :"#{new_accessor}=", :"#{old_accessor}=")
    end
  end
end

Version data entries

91 entries across 91 versions & 2 rubygems

Version Path
trafficbroker-mandy-0.1.7 lib/support/tuple.rb
trafficbroker-mandy-0.1.8 lib/support/tuple.rb
trafficbroker-mandy-0.1.9 lib/support/tuple.rb
trafficbroker-mandy-0.2.10 lib/support/tuple.rb
trafficbroker-mandy-0.2.11 lib/support/tuple.rb
trafficbroker-mandy-0.2.12 lib/support/tuple.rb
trafficbroker-mandy-0.2.13 lib/support/tuple.rb
trafficbroker-mandy-0.2.2 lib/support/tuple.rb
trafficbroker-mandy-0.2.3 lib/support/tuple.rb
trafficbroker-mandy-0.2.4.2 lib/support/tuple.rb
trafficbroker-mandy-0.2.4.3 lib/support/tuple.rb
trafficbroker-mandy-0.2.4.4 lib/support/tuple.rb
trafficbroker-mandy-0.2.4.5 lib/support/tuple.rb
trafficbroker-mandy-0.2.4.6 lib/support/tuple.rb
trafficbroker-mandy-0.2.4 lib/support/tuple.rb
trafficbroker-mandy-0.2.5.1 lib/support/tuple.rb
trafficbroker-mandy-0.2.5 lib/support/tuple.rb
trafficbroker-mandy-0.2.6 lib/support/tuple.rb
trafficbroker-mandy-0.2.7 lib/support/tuple.rb
trafficbroker-mandy-0.2.8 lib/support/tuple.rb