如何使该红宝石代码变干

查尔

我想将这段代码干燥掉。我似乎不知道如何。

def get_all_verb_nodes
    all_verb_nodes = @all_nodes_ins_del_nodes.select { |node|
    previous_node = node.xpath('preceding-sibling::w:r').last
    base_word = previous_node.text.split.last.strip.delete('.!?,:') if previous_node
  words = get_node_text(node)
  next_node = node.next_element
  next_node_is_insert_or_delete = is_insert_or_delete?(next_node.name) if next_node
  next_node_word = next_node.text.strip if next_node
  words.length <= 2 && words.any? { |word| is_a_verb?(base_word+word) || is_a_verb?(word) && !is_pluralized?(base_word+word, base_word+next_node_word) } && !next_node_is_insert_or_delete
    }
end


def get_all_article_nodes
    all_article_nodes = @all_nodes_ins_del_nodes.select { |node|
    previous_node = node.xpath('preceding-sibling::w:r').last
    base_word = previous_node.text.split.last.strip.delete('.!?,:') if previous_node
  words = get_node_text(node) 
  next_node = node.next_element
  next_node_is_insert_or_delete = is_insert_or_delete?(next_node.name) if next_node
  next_node_word = next_node.text.strip if next_node
  words.length <= 2 && words.any? { |word| @articleset.include?(word) || (@articleset.include?(base_word) if word == 'n') } && [email protected]?(next_node_word) && !next_node_is_insert_or_delete
    }
end

两者几乎完全相同,除了最后一行定义了功能的特定要求。

任何想法表示赞赏。

瑟夫

这是第一个切入点。我四处移动,以便对它们进行逻辑分组并提高产量。

def get_all_nodes
  @all_nodes_ins_del_nodes.select do |node|
    previous_node = node.xpath('preceding-sibling::w:r').last
    base_word = previous_node.text.split.last.strip.delete('.!?,:') if previous_node

    next_node = node.next_element
    next_node_is_insert_or_delete = is_insert_or_delete?(next_node.name) if next_node
    next_node_word = next_node.text.strip if next_node

    words = get_node_text(node) 
    words.length <= 2 &&
    !next_node_is_insert_or_delete &&
    yield(words, base_word, next_node_word)
  end
end

all_verb_nodes = get_all_nodes do |words, base_word, next_node_word|
  words.any? do |word|
    is_a_verb?(base_word + word) ||
    is_a_verb?(word) &&
    !is_pluralized?(base_word + word, base_word + next_node_word)
  end
end

all_article_nodes = get_all_nodes do |words, base_word, next_node_word|
  [email protected]?(next_node_word) &&
  words.any? do |word|
    @articleset.include?(word) || (@articleset.include?(base_word) if word == 'n')
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何理解红宝石代码?

来自分类Dev

如何减少红宝石代码?

来自分类Dev

使JQuery按钮代码变干

来自分类Dev

我该如何用红宝石处理这份清单?

来自分类Dev

如何备份红宝石宝石?

来自分类Dev

如何通过代码守护红宝石服务器?

来自分类Dev

了解红宝石代码行

来自分类Dev

如何根据我使用的迭代器的哪个元素来使用多个变量?又名,我如何干燥该红宝石代码?

来自分类Dev

如何使Ruby中的枚举器变干

来自分类Dev

如何使这些函数定义变干?

来自分类Dev

如何为红宝石宝石做贡献

来自分类Dev

如何运行特定版本的红宝石宝石

来自分类Dev

RVM红宝石如何找到宝石?

来自分类Dev

如何为红宝石宝石做贡献

来自分类Dev

如何压入红宝石

来自分类Dev

如何压入红宝石

来自分类Dev

如何重新申请红宝石?

来自分类Dev

红宝石如何应对NaN

来自分类Dev

红宝石的“方法”如何工作?

来自分类Dev

红宝石如何找到模块

来自分类Dev

红宝石如何激活cronjobs?

来自分类Dev

为什么该红宝石使用\ u001表示1,以及如何更改?

来自分类Dev

如何在邮件中添加自定义代码?在@message变量中添加红宝石代码

来自分类Dev

变量中的Mailer红宝石代码

来自分类Dev

红宝石中的错误代码

来自分类Dev

使此代码段变干(不要过多污染名称空间)

来自分类Dev

如何使用宝石红宝石将宝石红宝石图像存储在云中的机架上

来自分类Dev

如何缩进红宝石和键盘快捷键中的部分代码

来自分类Dev

尝试在Rails开发上建立一个简单的Nginx红宝石。如何运行该应用程序?