> I know I can write it the 'ugly common way' (loop)
> but I'd like to see how it can be done the Ruby way ... (I am a newbie...)
>
> here is an array
> roles = [ "a", "b", "c", "d", "e" ]
>
> Depending upon a variable 'user.role',
> I would like to  suppress all elements in the array , less or equal to this 
> variable
>
> ex :
> user.role = "a"    #=> roles = ["b", "c", "d", "e" ]    		"a" 
> deleted
> user.role = "b"    #=> roles = ["c", "d", "e" ]   		"a", "b" 
> deleted
> user.role = "c"    #=> roles = [ "d", "e" ]   			"a", "b", "c" 
> deleted
> user.role = "d"    #=> roles = [ "e" ]    				"a", 
> "b", "c", "d"  deleted
> user.role = "e"    #  do nothing

Maybe...

roles = roles.map {|x| x <= user.role ? x : nil }.compact

haven't tested it though...