Sha256: 245604b82f4fef5657af2f38510682b82637950ba438cecc6c3dba1be0388a52

Contents?: true

Size: 551 Bytes

Versions: 25

Compression:

Stored size: 551 Bytes

Contents

module Speckle
  module List
    class FileContentFilter
      def initialize(pattern, invert = false)
        @pattern = pattern
        @invert = invert
      end

      def run(item)
        return [] unless File.exists?(item)

        matched = has_content(item, @pattern)
        if @invert
          matched = !matched
        end

        return [item] if matched
        return []
      end

      def has_content(item, pattern)
        regex = Regexp.new(pattern)
        File.readlines(item).grep(regex).size > 0
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
speckle-0.2.0 lib/speckle/list/file_content_filter.rb
speckle-0.1.31 lib/speckle/list/file_content_filter.rb
speckle-0.1.30 lib/speckle/list/file_content_filter.rb
speckle-0.1.29 lib/speckle/list/file_content_filter.rb
speckle-0.1.28 lib/speckle/list/file_content_filter.rb
speckle-0.1.27 lib/speckle/list/file_content_filter.rb
speckle-0.1.26 lib/speckle/list/file_content_filter.rb
speckle-0.1.25 lib/speckle/list/file_content_filter.rb
speckle-0.1.24 lib/speckle/list/file_content_filter.rb
speckle-0.1.23 lib/speckle/list/file_content_filter.rb
speckle-0.1.22 lib/speckle/list/file_content_filter.rb
speckle-0.1.21 lib/speckle/list/file_content_filter.rb
speckle-0.1.20 lib/speckle/list/file_content_filter.rb
speckle-0.1.19 lib/speckle/list/file_content_filter.rb
speckle-0.1.18 lib/speckle/list/file_content_filter.rb
speckle-0.1.17 lib/speckle/list/file_content_filter.rb
speckle-0.1.16 lib/speckle/list/file_content_filter.rb
speckle-0.1.15 lib/speckle/list/file_content_filter.rb
speckle-0.1.14 lib/speckle/list/file_content_filter.rb
speckle-0.1.13 lib/speckle/list/file_content_filter.rb