class String

def to(position)

str.from(1).to(-2) #=> "ell"
str.from(0).to(-1) #=> "hello"
str = "hello"

You can mix it with +from+ method and do fun things like:

str.to(-2) #=> "hell"
str.to(3) #=> "hell"
str.to(0) #=> "h"
str = "hello"

If the position is negative, it is counted from the end of the string.
Returns a substring from the beginning of the string to the given position.
def to(position)
  self[0..position]
end