Method: JSON::Editor::EditMenu#find

Defined in:
lib/json/editor.rb

#find(item) ⇒ Object

Find a string in all nodes’ contents and select the found node in the treeview.



513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
# File 'lib/json/editor.rb', line 513

def find(item)
  search = ask_for_find_term or return
  begin
    @search = Regexp.new(search)
  rescue => e
    Editor.error_dialog(self, "Evaluation of regex /#{search}/ failed: #{e}!")
    return
  end
  iter = model.get_iter('0')
  iter.recursive_each do |i|
    if @iter
      if @iter != i
        next
      else
        @iter = nil
        next
      end
    elsif @search.match(i[CONTENT_COL])
       set_cursor(i.path, nil, false)
       @iter = i
       break
    end
  end
end