Class: Result

Inherits:
Object
  • Object
show all
Defined in:
lib/teuton/case/result/result.rb,
lib/teuton/case/result/ext_array.rb,
lib/teuton/case/result/ext_filter.rb,
lib/teuton/case/result/ext_compare.rb

Direct Known Subclasses

ReadmeResult

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeResult

Returns a new instance of Result.



12
13
14
# File 'lib/teuton/case/result/result.rb', line 12

def initialize
  reset
end

Instance Attribute Details

#alterationsObject



26
27
28
29
30
31
32
# File 'lib/teuton/case/result/result.rb', line 26

def alterations
  if @alterations.is_a? String
    @alterations
  else
    @alterations.join(" & ")
  end
end

#contentObject

Returns the value of attribute content.



8
9
10
# File 'lib/teuton/case/result/result.rb', line 8

def content
  @content
end

#exitcodeObject

Returns the value of attribute exitcode.



9
10
11
# File 'lib/teuton/case/result/result.rb', line 9

def exitcode
  @exitcode
end

Instance Method Details

#contain?(value) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/teuton/case/result/ext_array.rb', line 27

def contain?(value)
  @expected = "Contain <#{value}> value"
  @content.contain? value
end

#countObject Also known as: count!, length, len, size



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/teuton/case/result/ext_array.rb', line 4

def count
  @alterations << "count"
  if @content.instance_of? Array
    @content = [@content.count]
    self
  elsif @content.nil?
    @content = ["0"]
  else
    @content = [@content.to_i.to_s]
  end
  self
end

#debugObject



39
40
41
42
43
44
45
46
47
# File 'lib/teuton/case/result/result.rb', line 39

def debug
  print "\n" + "*" * 20
  print " [DEBUG] count=#{@content.count} "
  puts "*" * 20
  @content.each_with_index do |item, index|
    puts format("%<index>2d: %<item>s", {index: index, item: item})
  end
  puts "*" * 57
end

#emptyObject Also known as: empty?



32
33
34
35
# File 'lib/teuton/case/result/ext_array.rb', line 32

def empty
  @expected = "Empty!"
  @content.empty
end

#eq(input) ⇒ Object Also known as: eq?, equal, equal?, is_equal?



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/teuton/case/result/ext_compare.rb', line 4

def eq(input)
  # Return true when content is equal than input
  @expected = input

  case input.class.to_s
  when "Fixnum"
    value = @content[0].to_i
    puts "[WARN] Fixnum is a Ruby deprecated class!"
    puts "       (Upgrade your Ruby version)"
  when "Float"
    value = @content[0].to_f
  when "Integer"
    value = @content[0].to_i
  when "String"
    value = @content[0].to_s
  else
    value = @content[0]
  end
  value == input
end

#expectedObject



49
50
51
# File 'lib/teuton/case/result/result.rb', line 49

def expected
  @expected.to_s
end

#find(filter) ⇒ Object Also known as: grep, grep!, find!



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/teuton/case/result/ext_filter.rb', line 4

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

#firstObject



20
21
22
23
24
# File 'lib/teuton/case/result/ext_filter.rb', line 20

def first
  @alterations << "first"
  @content = [@content.first]
  self
end

#ge(input) ⇒ Object Also known as: greater_or_equal, greater_or_equal?



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/teuton/case/result/ext_compare.rb', line 50

def ge(input)
  @expected = "Greater or equal to #{input}"
  return false if @content.nil? || @content[0].nil?

  value = @content[0]
  case input.class.to_s
  when "Fixnum"
    value = @content[0].to_i
    puts "[WARN] Fixnum class is deprecated!"
    puts "       Upgrade your Ruby version."
  when "Float"
    value = @content[0].to_f
  when "Integer"
    value = @content[0].to_i
  end
  value >= input
end

#gt(input) ⇒ Object Also known as: greater, greater_than



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/teuton/case/result/ext_compare.rb', line 70

def gt(input)
  @expected = "Greater than #{input}"
  return false if @content.nil? || @content[0].nil?

  value = @content[0]
  case input.class.to_s
  when "Fixnum"
    value = @content[0].to_i
    puts "[WARN] Fixnum class is deprecated!"
    puts "       Upgrade your Ruby version."
  when "Float"
    value = @content[0].to_f
  when "Integer"
    value = @content[0].to_i
  end
  value > input
end

#include?(value) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
# File 'lib/teuton/case/result/ext_array.rb', line 17

def include?(value)
  @expected = "Include <#{value}> value"
  @content[0].include?(value)
end

#lastObject



56
57
58
59
60
# File 'lib/teuton/case/result/ext_filter.rb', line 56

def last
  @alterations << "last"
  @content = [@content.last]
  self
end

#le(input) ⇒ Object Also known as: lesser_or_equal, lesser_or_equal?



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/teuton/case/result/ext_compare.rb', line 90

def le(input)
  @expected = "Lesser or equal to #{input}"

  return false if @content.nil? || @content[0].nil?

  value = @content[0]
  case input.class.to_s
  when "Fixnum"
    value = @content[0].to_i
    puts "[WARN] Fixnum class is deprecated!"
    puts "       Upgrade your Ruby version."
  when "Float"
    value = @content[0].to_f
  when "Integer"
    value = @content[0].to_i
  end
  value <= input
end

#lt(input) ⇒ Object Also known as: lesser, smaller, lesser_than



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/teuton/case/result/ext_compare.rb', line 111

def lt(input)
  @expected = "Lesser than #{input}"
  return false if @content.nil? || @content[0].nil?

  value = @content[0]
  case input.class.to_s
  when "Fixnum"
    value = @content[0].to_i
    puts "[WARN] Fixnum class is deprecated!"
    puts "       Upgrade your Ruby version."
  when "Float"
    value = @content[0].to_f
  when "Integer"
    value = @content[0].to_i
  end
  value < input
end

#near_to?(input) ⇒ Boolean Also known as: near_to, near?, near

Return ‘true’ if the parameter value is near to the target value. To get this we consider a 10% desviation or less, as an acceptable result.

Returns:

  • (Boolean)


134
135
136
137
138
139
140
141
142
143
# File 'lib/teuton/case/result/ext_compare.rb', line 134

def near_to?(input)
  @expected = "Is near to #{input}"
  return false if @content.nil?

  target = @content[0].to_f
  desv = (target * 10.0) / 100.0
  return true if (target - input.to_f).abs.to_f <= desv

  false
end

#neq(external) ⇒ Object Also known as: neq?, not_equal, not_equal?



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/teuton/case/result/ext_compare.rb', line 29

def neq(external)
  @expected = "Not equal to #{external}"

  case external.class.to_s
  when "Fixnum"
    internal = @content[0].to_i
    puts "[WARN] Fixnum class is deprecated!"
    puts "       Upgrade your Ruby version."
  when "Float"
    internal = @content[0].to_f
  when "Integer"
    internal = @content[0].to_i
  else
    internal = @content[0]
  end
  internal != external
end

#not_find(filter) ⇒ Object Also known as: grep_v



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/teuton/case/result/ext_filter.rb', line 26

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

  case filter.class.to_s
  when "Array"
    filter.each { |i| not_find(i.to_s) }
  when "String" || "Integer"
    @content.reject! { |i| i.include?(filter.to_s) }
  when "Regexp"
    @content.reject! { |i| filter.match(i) }
  end
  self
end

#not_include?(value) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
# File 'lib/teuton/case/result/ext_array.rb', line 22

def not_include?(value)
  @expected = "Not include <#{value}> value"
  !@content[0].include?(value)
end

#ok?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/teuton/case/result/result.rb', line 53

def ok?
  @exitcode.zero?
end

#resetObject



16
17
18
19
20
21
22
23
24
# File 'lib/teuton/case/result/result.rb', line 16

def reset
  @content_backup = []
  @content = []
  @exitcode = -1

  # @value = nil
  @expected = nil
  @alterations = []
end

#restoreObject



57
58
59
60
61
62
63
# File 'lib/teuton/case/result/result.rb', line 57

def restore
  temp = @content_backup.clone
  reset
  # @content_backup = temp
  # @content = temp.clone
  self.content = (temp)
end

#since(filter) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/teuton/case/result/ext_filter.rb', line 42

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

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

#until(filter) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/teuton/case/result/ext_filter.rb', line 62

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

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

#valueObject



65
66
67
# File 'lib/teuton/case/result/result.rb', line 65

def value
  @content[0]
end