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.



7
8
9
# File 'lib/ansible/ruby/models/type_generic.rb', line 7

def initialize(*klasses)
  @klasses = klasses
end

Instance Attribute Details

#klassesObject (readonly)

Returns the value of attribute klasses.



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

def klasses
  @klasses
end

Instance Method Details

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/ansible/ruby/models/type_generic.rb', line 24

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

#error(attribute, value) ⇒ Object



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

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

#hashObject



28
29
30
31
32
# File 'lib/ansible/ruby/models/type_generic.rb', line 28

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

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
17
# File 'lib/ansible/ruby/models/type_generic.rb', line 11

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