首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby代码重构

Ruby代码重构
EN

Stack Overflow用户
提问于 2012-05-27 05:15:55
回答 1查看 120关注 0票数 0

我有n次类似的陈述

代码语言:javascript
复制
    if trigger_data.tt_closed
      unless trouble_ticket.changes.key?(:status)
        @run = 0
        break
      end
      unless trouble_ticket.changes[:status][1] == "Closed"
        @run = 0
        break
      end
    end

    if trigger_data.tt_assignee
      unless trouble_ticket.changes.key?(:assigned_to)
        @run = 0
        break
      end
      unless trouble_ticket.changes[:assigned_to][1] == trigger_data.tt_assignee
        @run
        break
      end
    end

如何重构这些代码?可能是动态语句构建,并将一些散列传递给输入。我是元编程的新手。请给我提个建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-27 07:34:12

好吧,它可能不是你想要的,但是它大大缩短了代码。

另外,我删除了那些key?()方法,因为如果key不存在,它只会传递nil,在Ruby中,nil的意思与if语句的false相同。

为了清楚起见,我把它留在了2个if语句中。:)

代码语言:javascript
复制
changes = trouble_ticker.changes
if trigger_data.tt_closed && changes[:status][1] != "Closed"
  @run = 0
  break
end

if t = trigger_data.tt_assignee && changes[:assigned_to][1] != t)
  @run = 0
  break
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10769841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档