class Puppet::Pops::Issues::MessageData

Provides a binding of arguments passed to Puppet::Pops::Issues::Issue#format to method names available in the issue’s message producing block. @api private

Public Instance Methods

format(hash, &block) click to toggle source
# File lib/puppet/pops/issues.rb, line 71
def format(hash, &block)
  @data = hash
  instance_eval &block
end
label(*args) click to toggle source

Obtains the label provider given as a key `:label` in the hash passed to format. The label provider is return if no arguments are given. If given an argument, returns the result of calling label on the label provider.

@param args [Object] one object to obtain a label for or zero arguments to obtain the label provider @return [Puppet::Pops::LabelProvider,String] the label provider or label depending on if an argument is given or not @raise [Puppet::Error] if no label provider is found

# File lib/puppet/pops/issues.rb, line 83
def label(*args)
  args.empty? ? label_provider : label_provider.label(args[0])
end
label_provider() click to toggle source

Returns the label provider given as key `:label` in the hash passed to format. @return [Puppet::Pops::LabelProvider] the label provider @raise [Puppet::Error] if no label provider is found

# File lib/puppet/pops/issues.rb, line 90
def label_provider
  label_provider = @data[:label]
  raise Puppet::Error, 'Label provider key :label must be set to produce the text of the message!' unless label_provider
  label_provider
end
semantic() click to toggle source

Returns the label provider given as a key in the hash passed to format.

# File lib/puppet/pops/issues.rb, line 98
def semantic
  raise Puppet::Error, 'Label provider key :semantic must be set to produce the text of the message!' unless @data[:semantic]
  @data[:semantic]
end

Public Class Methods

new(*argnames) click to toggle source
# File lib/puppet/pops/issues.rb, line 62
def initialize *argnames
  singleton = class << self; self end
  argnames.each do |name|
    singleton.send(:define_method, name) do
      @data[name]
    end
  end
end