Class: Inspec::Object::OrTest

Inherits:
Object
  • Object
show all
Defined in:
lib/inspec/objects/or_test.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tests) ⇒ OrTest

Returns a new instance of OrTest.



6
7
8
9
# File 'lib/inspec/objects/or_test.rb', line 6

def initialize(tests)
  @tests = tests
  @negated = false
end

Instance Attribute Details

#testsObject (readonly)

Returns the value of attribute tests.



5
6
7
# File 'lib/inspec/objects/or_test.rb', line 5

def tests
  @tests
end

Instance Method Details

#negate!Object



15
16
17
# File 'lib/inspec/objects/or_test.rb', line 15

def negate!
  @negated = !@negated
end

#skipObject



11
12
13
# File 'lib/inspec/objects/or_test.rb', line 11

def skip
  nil
end

#to_hashObject



35
36
37
# File 'lib/inspec/objects/or_test.rb', line 35

def to_hash
  { describe_one: @tests.map(&:to_hash) }
end

#to_rubyObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/inspec/objects/or_test.rb', line 19

def to_ruby
  if @negated
    # We don't use the describe.one wrapper when negated because:
    # !(test1 || test2)     same as    (!test1 && !test2)    where && is implicit in inspec
    @tests.map do |test|
      test.negate!
      test
    end.map(&:to_ruby).join("\n")

  else
    all_tests = @tests.map(&:to_ruby).join("\n").gsub("\n", "\n  ")

    format("describe.one do\n  %s\nend", all_tests)
  end
end