Class: TypeGeneric

Inherits:
Object
  • Object
show all
Defined in:
lib/ansible/ruby/models/type_generic.rb

Overview

See LICENSE.txt for license

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*klasses) ⇒ TypeGeneric

Returns a new instance of TypeGeneric.



5
6
7
# File 'lib/ansible/ruby/models/type_generic.rb', line 5

def initialize(*klasses)
  @klasses = klasses
end

Instance Attribute Details

#klassesObject (readonly)

Returns the value of attribute klasses.



3
4
5
# File 'lib/ansible/ruby/models/type_generic.rb', line 3

def klasses
  @klasses
end

Instance Method Details

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/ansible/ruby/models/type_generic.rb', line 21

def eql?(other)
  other.is_a?(TypeGeneric) && other.klasses == @klasses
end

#error(attribute, value) ⇒ Object



16
17
18
19
# File 'lib/ansible/ruby/models/type_generic.rb', line 16

def error(attribute, value)
  object = validation_object(value)
  "Attribute #{attribute} expected to be a #{@klasses} but was a #{object.class}"
end

#hashObject



25
26
27
28
29
# File 'lib/ansible/ruby/models/type_generic.rb', line 25

def hash
  @klasses.inject(0) do |hash, klass|
    hash ^ klass.hash
  end
end

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
# File 'lib/ansible/ruby/models/type_generic.rb', line 9

def valid?(value)
  validation_object = validation_object(value)
  # Don't worry about nil
  return true unless validation_object
  @klasses.any? { |klass| validation_object.is_a? klass }
end