我有一个非常长的案例陈述:
def gather_intel
case OPTIONS[:type]
when /osha/
FORMAT.info('Creating OSHA Regional email..')
EMAILS.osha_reg
when /pend/
FORMAT.info('Creating 6 day hold pending email..')
EMAILS.pend
when /60/
FORMAT.info('Creating 60 day hold account deletion email..')
EMAILS.sixty_day
when /generic/
FORMAT.info('Creating generic email..')
EMAILS.generic
when /resolve/
FORMAT.info('Creating resolution ticket..')
EMAILS.resolve
when /esc/
FORMAT.info('Creating escalation ticket..')
EMAILS.assign
when /pii/
FORMAT.info('Creating request to remove personal info..')
EMAILS.remove_pii
when /vip/
FORMAT.info('Creating VIP user email..')
EMAILS.vip_user
when /inop/
FORMAT.info('Creating INOP user email..')
EMAILS.in_op_user
when /dev/
if OPTIONS[:type].to_s.include?('dev=unlock')
message = 'unlock'
else
message = 'password reset'
end
FORMAT.info("Creating dev account #{message} email")
EMAILS.dev_account(OPTIONS[:type])
else
raise ERROR
end
end
此case statement
有效但由于项目的敏感性和材料,我无法向您展示其余代码。我的问题是,是否有更简单易读的方式来编写此case statement
,或者更简单的方式来编写它?
答案 0 :(得分:3)
我不了解问题的一些细节,但这是您可能采取的一般方法。我假设Min
和下面哈希中:info
的值是方法的名称。 (我理解这个假设是不正确的。)考虑到我无法测试它,以下内容可能会有错误。
:email