Method: Kintama::Context::ClassMethods#runnable_on_line

Defined in:
lib/kintama/context.rb

#runnable_on_line(line) ⇒ Object



261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
# File 'lib/kintama/context.rb', line 261

def runnable_on_line(line)
  known_runnables = all_runnables.delete_if { |r| r.line_defined.nil? }
  sorted_runnables = known_runnables.sort_by { |r| r.line_defined }
  if sorted_runnables.first && line >= sorted_runnables.first.line_defined
    next_runnable = sorted_runnables.find { |r| r.line_defined > line }
    index = sorted_runnables.index(next_runnable)
    if index != nil && index > 0
      sorted_runnables[index-1]
    else
      sorted_runnables.last
    end
  else
    nil
  end
end