Class: Puppet::Pops::Issues::MessageData Private

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/issues.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.

Provides a binding of arguments passed to Issue.format to method names available in the issue's message producing block.

Instance Method Summary collapse

Constructor Details

#initialize(*argnames) ⇒ MessageData

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 MessageData


62
63
64
65
66
67
68
69
# 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

Instance Method Details

#format(hash, &block) ⇒ 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.


71
72
73
74
# File 'lib/puppet/pops/issues.rb', line 71

def format(hash, &block)
  @data = hash
  instance_eval(&block)
end

#label(*args) ⇒ LabelProvider, String

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.

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.

Raises:


83
84
85
# File 'lib/puppet/pops/issues.rb', line 83

def label(*args)
  args.empty? ? label_provider : label_provider.label(args[0])
end

#label_providerLabelProvider

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 the label provider given as key `:label` in the hash passed to #format.

Raises:


90
91
92
93
94
95
# File 'lib/puppet/pops/issues.rb', line 90

def label_provider
  label_provider = @data[:label]
  #TRANSLATORS ":label" is a keyword and should not be translated
  raise Puppet::Error, _('Label provider key :label must be set to produce the text of the message!') unless label_provider
  label_provider
end

#semanticObject

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 the label provider given as a key in the hash passed to #format.

Raises:


99
100
101
102
103
# File 'lib/puppet/pops/issues.rb', line 99

def semantic
  #TRANSLATORS ":semantic" is a keyword and should not be translated
  raise Puppet::Error, _('Label provider key :semantic must be set to produce the text of the message!') unless @data[:semantic]
  @data[:semantic]
end