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
# File lib/puppet/pops/issues.rb, line 71 def format(hash, &block) @data = hash instance_eval &block end
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
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
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
# 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