#!/usr/bin/ruby class List def initialize( list ) @list = list end def print_list @list.each {|elm| print elm, " "} print "\n" end def delete( element ) @list.delete( element ) end def add_elm( element ) @list.push( element ) end def move( src, dest ) @list.delete( src ) if ((i = @list.index( dest )) != nil) @list = @list[0...i].push( src ) + @list[i..@list.size] end end def insert( src, dest ) if ((i = @list.index( dest )) != nil) @list = @list[0...i].push( src ) + @list[i..@list.size] end end end a = List.new( ["apple", "orange", "banana", "grape"] ) # original list print "original list:\n" a.print_list a.delete("banana") # delete element print "remove \"banana\":\n" a.print_list a.move("grape", "apple") # move element print "move \"grape\", before \"apple\":\n" a.print_list a.insert("plum", "orange") # insert element print "insert \"plum\" before \"orange\":\n" a.print_list