Class: Puppet::Pops::Types::Mismatch Private

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/types/type_mismatch_describer.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Mismatch

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Mismatch.

API:

  • private



100
101
102
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 100

def initialize(path)
  @path = path || EMPTY_ARRAY
end

Instance Attribute Details

#pathObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



98
99
100
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 98

def path
  @path
end

Instance Method Details

#==(o) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



116
117
118
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 116

def ==(o)
  self.class == o.class && canonical_path == o.canonical_path
end

#canonical_pathObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



104
105
106
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 104

def canonical_path
  @canonical_path ||= @path.reject { |e| e.is_a?(VariantPathElement) }
end

#chop_path(element_index) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



128
129
130
131
132
133
134
135
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 128

def chop_path(element_index)
  return self if element_index >= @path.size
  chopped_path = @path.clone
  chopped_path.delete_at(element_index)
  copy = self.clone
  copy.instance_variable_set(:@path, chopped_path)
  copy
end

#eql?(o) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private

Returns:



120
121
122
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 120

def eql?(o)
  self == o
end

#formatObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 145

def format
  p = @path
  variant = ''
  position = ''
  unless p.empty?
    f = p.first
    if f.is_a?(SignaturePathElement)
      variant = " #{f}"
      p = p.drop(1)
    end
    position = " #{p.join(' ')}" unless p.empty?
  end
  message(variant, position)
end

#hashObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



124
125
126
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 124

def hash
  canonical_path.hash
end

#merge(path, o) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



112
113
114
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 112

def merge(path, o)
  self.class.new(path)
end

#message(variant, position) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



108
109
110
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 108

def message(variant, position)
  "#{variant}unknown mismatch#{position}"
end

#path_stringObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



137
138
139
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 137

def path_string
  @path.join(' ')
end

#to_sObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



141
142
143
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 141

def to_s
  format
end