module Swaggable::EnumerableAttributes::ClassMethods
Public Instance Methods
attr_enum(name, choices)
click to toggle source
# File lib/swaggable/enumerable_attributes.rb, line 11 def attr_enum name, choices getsetter name class_variable_set :"@@valid_#{name}_list", choices define_method "#{name}=" do |value| valid_values = self.class.class_variable_get :"@@valid_#{name}_list" unless valid_values.include? value raise ArgumentError.new("#{value.inspect} is not one a valid #{name}: #{valid_values.map(&:inspect).join(", ")}") end instance_variable_set(:"@#{name}", value) end end