module ChaosDetector::Utils::CoreUtil::ChaosAttr
Public Instance Methods
chaos_attr(attribute_name, default_val=nil, &block)
click to toggle source
# File lib/chaos_detector/utils/core_util.rb, line 103 def chaos_attr(attribute_name, default_val=nil, &block) # raise 'Default value or block required' unless !default_val.nil? || block sym = attribute_name&.to_sym raise ArgumentError, 'attribute_name is required and convertible to symbol.' if sym.nil? define_method(sym) do instance_variable_get("@#{sym}") || (block.nil? ? default_val : block.call) end define_method("#{sym}=") { |val| instance_variable_set("@#{sym}", val) } end