class Ridoku::ClassProperties
Attributes
default[RW]
input[RW]
required[RW]
warnings[RW]
Public Class Methods
new()
click to toggle source
# File lib/ridoku/defaults.rb, line 19 def initialize fail StandardError.new('IAM/OpsWorks permission are not yet configured.') unless Base.roles_configured? end
Public Instance Methods
defaults(type, _input, wizard = false)
click to toggle source
# File lib/ridoku/defaults.rb, line 28 def defaults(type, _input, wizard = false) self.input = _input fail ArgumentError.new("No default parameters for type: #{type}") unless default.key?(type) merge_input(type, wizard) end
defaults_with_wizard(type, _input)
click to toggle source
# File lib/ridoku/defaults.rb, line 24 def defaults_with_wizard(type, _input) defaults(type, _input, true) end
Protected Instance Methods
merge_input(type, with_wizard = false)
click to toggle source
# File lib/ridoku/defaults.rb, line 39 def merge_input(type, with_wizard = false) fail ArgumentError.new(":default and :required lack type: #{type}") unless default.key?(type) && required.key?(type) fail ArgumentError.new('Inputs :default, :required, and :user must be hashes!') unless default[type].is_a?(Hash) && input.is_a?(Hash) && required[type].is_a?(Hash) type_default = default[type].deep_merge(input) errors = [] collect = {} required[type].each do |k| unless input.key?(k) errors << k collect[k] = required[k] end end if with_wizard ConfigWizard.fetch_input(type_default, required[type], warnings) else fail ArgumentError.new("User input required: #{errors}") if errors.length end type_default end