lib/support/tuple.rb in trafficbroker-mandy-0.1.6 vs lib/support/tuple.rb in trafficbroker-mandy-0.1.7
- old
+ new
@@ -3,27 +3,38 @@
SEPERATOR = ',' unless defined?(SEPERATOR)
attr_accessor :name, :value
- def initialize(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)
- new(*str.split(SEPERATOR))
+ 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
\ No newline at end of file