Methods are generated in a loop with define_method. For `Roles.new(:editor)`, what do `admin?`, `editor?`, and `viewer?` return?
class Roles
%i[admin editor viewer].each do |role|
define_method("#{role}?") { @role == role }
end
def initialize(r) = @role = r
end
u = Roles.new(:editor)
[u.admin?, u.editor?, u.viewer?]