Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- irb
- >> module RangedIndex
- >> def [] index
- >> puts "RANGED INDEX CALLED"
- >> if index.class == Range
- >> new_array = []
- >> self.keys.each{|k|new_array |= old_index(k) if index.include? k }
- >> new_array
- >> else
- ?> old_index(index)
- >> end
- >> end
- >>
- ?> def self.extend_object(object)
- >> puts "extend called!"
- >> class << object
- >> alias_method :old_index, :[]
- >> # alias_method :[], :ranged_index
- ?> end
- >> end
- >> end
- => nil
- >>
- ?> h = Hash.new
- => {}
- >> h[1] = [1,2,3]
- => [1, 2, 3]
- >> h.extend RangedIndex
- extend called!
- => {1=>[1, 2, 3]}
- >> h[1]
- => [1, 2, 3]
Add Comment
Please, Sign In to add comment