Class: SearchInFilesListener

Inherits:
Object
  • Object
show all
Defined in:
ext/ae-search-in-files/ae-search-in-files.rb

Instance Method Summary collapse

Constructor Details

#initialize(_service) ⇒ SearchInFilesListener

Returns a new instance of SearchInFilesListener.



16
17
18
19
# File 'ext/ae-search-in-files/ae-search-in-files.rb', line 16

def initialize(_service)
  @service = _service
  create_find
end

Instance Method Details

#do_findObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'ext/ae-search-in-files/ae-search-in-files.rb', line 50

def do_find
  return if @find.e_what.text.strip.length == 0  || @find.e_filter.text.strip.length == 0  || @find.e_dir.text.strip.length == 0
  @find.hide
  if !defined?(@search_output)
    @search_output = SearchOutput.new(@service)
  else
    @service.frame_raise
  end
  _search_title = 'search result for : "'+@find.e_what.text+'" in :"'+@find.e_dir.text+'"'+' ['+@find.e_filter.text+']'
  _filter = @find.e_dir.text+'/**/'+@find.e_filter.text
  _files = Dir[_filter]
  _node = @search_output.new_result(_search_title, _files.length)
  @progress_bar = TkProgressframe.new(@service.arcadia.layout.root, _files.length)		  
  @progress_bar.title('Searching')
  #@progress_bar.on_cancel=proc{cancel}
  pattern = Regexp.new(@find.e_what.text)
  _files.each do |_filename|
      File.open(_filename) do |file|
        file.grep(pattern) do |line|
          @search_output.add_result(_node, _filename, file.lineno.to_s, line)
        end
      end
      @progress_bar.progress
  end    
  @progress_bar.destroy

end

#on_before_search_in_files(_event) ⇒ Object



21
22
23
24
25
# File 'ext/ae-search-in-files/ae-search-in-files.rb', line 21

def on_before_search_in_files(_event)
  if _event.what.nil?
    @find.show
  end
end