Sha256: 0372eba557534a652781f69790b387f33225dbccb95545fbd1e708e53b382fc6
Contents?: true
Size: 733 Bytes
Versions: 2
Compression:
Stored size: 733 Bytes
Contents
# Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the Ruby license. class OrderedSet instance_methods.each { |m| undef_method m unless m =~ /^__/ } def initialize(*args) @set = *args @set ||= [] @set = [@set] unless Array === @set @set.uniq! end def method_missing(meth, *args, &block) case meth.to_s when /push|unshift|\<\</ @set.delete *args when '[]=' @set.map! do |e| if Array === args.last args.last.include?(e) ? nil : e else args.last == e ? nil : e end end end @set.__send__(meth, *args, &block) ensure @set.delete nil end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.2.0 | lib/ramaze/snippets/ordered_set.rb |
ramaze-0.2.1 | lib/ramaze/snippets/ordered_set.rb |