所以我有一个标志来禁用和启用某个功能。并将根据变量必须切换标志
flag_a
、flag_b
是我的两个功能标志,变量输入字符串可以是 none
、all
、flag_a
、flag_b
作为输入字符串,我们可以进一步添加更多标志,例如 flag_c 或 flag_d太这样了。
def input
variable = stdin "value"
update_flag(value.upcase)
end
def update_flag(value)
case value
when "BOTH"
toggle_flag(flag_a, true)
toogle_flag(flag_b, true)
when "FLAG_A"
toggle_flag(flag_a, true)
toogle_flag(flag_b, false)
when "FLAG_B"
toggle_flag(flag_a, false)
toogle_flag(flag_b, true)
when "NONE"
toggle_flag(flag_a, flase)
toogle_flag(flag_b, false)
end
def toggle_flag(name, flag)
if flag
Featureflag.user(@id).enable(name.to_sym)
else
Featureflag.user(@id).disable(name.to_sym)
end
end
我想要一种将值发送到变量的方法,此输入仅通过控制台作为输入发送。
尝试使其干燥并使其乐观,并且必须易于灵活的方法 注意“输入仅通过控制台作为输入发送”
以下是上述代码的修改版本
def input
value = prompt_input("Enter value:").upcase
update_flags(value)
end
def update_flags(value)
case value
when "BOTH"
toggle_flag(:flag_a, :enable)
toggle_flag(:flag_b, :enable)
when "FLAG_A"
toggle_flag(:flag_a, :enable)
toggle_flag(:flag_b, :disable)
when "FLAG_B"
toggle_flag(:flag_a, :disable)
toggle_flag(:flag_b, :enable)
when "NONE"
toggle_flag(:flag_a, :disable)
toggle_flag(:flag_b, :disable)
else
puts "Invalid value: #{value}"
end
end
def toggle_flag(name, action)
Featureflag.user(@id).send(action, name)
end
def prompt_input(message)
print message + ' '
gets.chomp
end