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

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

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.

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.



144
145
146
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 144

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.



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

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.



160
161
162
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 160

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.



148
149
150
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 148

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.



172
173
174
175
176
177
178
179
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 172

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.

Returns:

  • (Boolean)


164
165
166
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 164

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.



189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 189

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.



168
169
170
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 168

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.



156
157
158
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 156

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.



152
153
154
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 152

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.



181
182
183
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 181

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.



185
186
187
# File 'lib/puppet/pops/types/type_mismatch_describer.rb', line 185

def to_s
  format
end