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)
  position += size if position < 0
  self[0, position + 1] || +""
end