Sha256: b35deddb25ca260be8f63419096ff60737b243b81cbb414c7fe0ed3028269dd5

Contents?: true

Size: 1.4 KB

Versions: 21

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

# This is an extension of Result class
class Result
  # TODO: Error line 102 undefined include? method for 0 Fixnum...
  def find(filter)
    @alterations << "find(#{filter})"
    case filter.class.to_s
    when 'Array'
      find_when_array(filter)
    when 'String' || 'Integer'
      @content.select! { |i| i.include?(filter.to_s) }
    when 'Regexp'
      @content.select! { |i| filter.match(i) }
    end
    self
  end
  alias grep   find
  alias grep!  find
  alias find!  find

  def not_find(p_filter)
    @alterations << "not_find(#{p_filter})"
    return self if @content.size.zero?

    @content.reject! { |i| i.include?(p_filter) }
    self
  end
  alias grep_v not_find

  def since(filter)
    @alterations << "since(#{filter})"
    return self if @content.size.zero?

    if filter.class == String
      flag = false
      @content.select! do |i|
        flag = true if i.include?(filter.to_s)
        flag
      end
    end
    self
  end

  def until(filter)
    @alterations << "until(#{filter})"
    return self if @content.size.zero?

    if filter.class == String
      flag = true
      @content.select! do |i|
        flag = false if i.include?(filter.to_s)
        flag
      end
    end
    self
  end

  private

  def find_when_array(filter)
    @content.select! do |line|
      flag = false
      filter.each { |i| flag ||= line.include?(i) }
      flag
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
teuton-2.3.6 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.3.5 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.3.4 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.3.3 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.3.2 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.3.1 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.2.2 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.11 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.10 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.9 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.8 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.8dev1 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.7 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.6 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.5dev lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.4 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.3 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.2 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.1 lib/teuton/case_manager/case/result/ext_filter.rb
teuton-2.1.0 lib/teuton/case_manager/case/result/ext_filter.rb