Mars Rover challenge in Ruby
I'd suggest that the position, and maybe orientation also, ought to be its own object ... "Location"?

I'd also prefer to use symbols rather than strings where possible, and rely on data rather than logic (see use of hashes below).

You might be interested in implementing a builder method, in which the methods called simply return the original object, which allows commands to be daisy-chained ...

class Location
  LEFT = {
    n: :w,
    e: :n,
    s: :e,
    w: :s
  }

  RIGHT = {
    n: :e,
    e: :s,
    s: :w,
    w: :n
  }

  def initialize(x:, y:, direction:)
    @x         = x
    @y         = y
    @direction = direction
  end

  def left
    @direction = LEFT.fetch(@direction)
    self
  end

  def right
    @direction = RIGHT.fetch(@direction)
    self
  end

  def move
    case direction
    when :n
      self.y += 1
    when :e
      self.x += 1
    when :s
      self.y -= 1
    when :w
      self.x -= 1
    end
    self
  end

  attr_reader :x, :y, :direction

  private

  attr_writer :x, :y, :direction
end


Hence:

2.4.5 :125 &gt;   l = Location.new(x: 0, y: 0, direction: :n)
 =&gt; #&lt;Location:0x00007f9f5329e858 @x=0, @y=0, @direction=:n&gt; 
2.4.5 :126 &gt; l.left.move.right.move.left.move.right.right.move
 =&gt; #&lt;Location:0x00007f9f5329e858 @x=-1, @y=1, @direction=:e&gt;