class DxDirGrep
Public Class Methods
new(pathx='.', path: pathx, ext: '.txt')
click to toggle source
# File lib/dxdir_grep.rb, line 10 def initialize(pathx='.', path: pathx, ext: '.txt') @path = path dtx = DirToXML.new path @dx = dtx.select_by_ext(ext) end
Public Instance Methods
grep(pattern='')
click to toggle source
# File lib/dxdir_grep.rb, line 18 def grep(pattern='') a = @dx.sort_by_lastmodified.reverse.inject([]) do |r,x| name = x[:name] s = File.read(File.join(@path, name)) i = s.scrub =~ /#{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