class Kitchen::Pulumi::ConfigAttributeDefiner
This class defines attributes consumed from .kitchen.yml and used in the Test Kitchen
plugins.
Public Class Methods
new(attribute:, schema:)
click to toggle source
# File lib/kitchen/pulumi/config_attribute_definer.rb, line 10 def initialize(attribute:, schema:) @attribute = attribute.to_sym @schema = schema end
Public Instance Methods
define(plugin_class:)
click to toggle source
# File lib/kitchen/pulumi/config_attribute_definer.rb, line 15 def define(plugin_class:) plugin_class.required_config(@attribute) do |_attribute, value, _plugin| schema_messages = @schema.call(value: value).messages process_schema_messages(messages: schema_messages, plugin_class: plugin_class) end plugin_class.default_config(@attribute) do |plugin| plugin.send "config_#{@attribute}_default_value" end end
Private Instance Methods
process_schema_messages(messages:, plugin_class:)
click to toggle source
# File lib/kitchen/pulumi/config_attribute_definer.rb, line 29 def process_schema_messages(messages:, plugin_class:) return true if messages.empty? raise( ::Kitchen::UserError, "#{plugin_class} config: #{@attribute} #{messages}", ) end