Class: ReverseRotate

Inherits:
Op
  • Object
show all
Defined in:
lib/jop.rb

Constant Summary collapse

REP =
'|.'

Instance Method Summary collapse

Methods inherited from Op

#apply_monad_deep, #integer_args, #numeric_literal?, #to_numeric

Instance Method Details

#run(ary, interpreter) ⇒ Object



173
174
175
176
177
178
179
180
181
182
183
# File 'lib/jop.rb', line 173

def run ary, interpreter
  if interpreter.tokens.size > 0 && numeric_literal?(interpreter.tokens[0])
    number = to_numeric(interpreter.tokens[0])
    interpreter.advance(1)
    segment_length = number % ary.length
    segment = ary.take(segment_length)
    ary.drop(segment_length) + segment
  else
    ary.reverse
  end
end