Class: DxDirGrep

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

Instance Method Summary collapse

Constructor Details

#initialize(path: '.', ext: '.txt') ⇒ DxDirGrep

Returns a new instance of DxDirGrep.



10
11
12
13
14
15
# File 'lib/dxdir_grep.rb', line 10

def initialize(path:'.', ext: '.txt')
  
  dtx = DirToXML.new path
  @dx = dtx.select_by_ext(ext)
  
end

Instance Method Details

#grep(pattern = '') ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dxdir_grep.rb', line 17

def grep(pattern='')
  
  a = @dx.sort_by_lastmodified.reverse.inject([]) do |r,x|

    name = x[:name]

    s = File.read name
    i = s =~ /#{pattern}/mi


    if i then
      i_start = (i - 30) > 0 ? i - 30 : 0
      r << {name: name, preview: s.slice(i_start, 100)}
    else
      r
    end
  end
  
  dx = Dynarex.new json_out: false
  dx.import a
  
  return dx
end