Module: Degu::HasSet
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
Instance Method Details
#has_set_coerce_argument_value(enum_class, argument_value) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/degu/has_set.rb', line 83 def has_set_coerce_argument_value(enum_class, argument_value) invalid_set_elements = [] set_elements = if String === argument_value argument_value.split(',').map(&:strip) else Array(argument_value) end.map do |set_element| if result = enum_class[set_element] result else invalid_set_elements << set_element nil end end invalid_set_elements.empty? or raise ArgumentError, "element #{argument_value.inspect} contains invalid elements: #{invalid_set_elements.inspect}" set_elements end |