私は非常に似ています次の二つの方法があります:1つの方法まで二つの方法から、このコードをリファクタリングする方法
def space_before_element?(start_element)
element = start_element.previous_element
until element.nil? ||
(element.name == start_element.name || "r" && !element.text.empty?)
element = element.previous_element
end
character = element
.text
.split(/(\W)/)
.compact
.reject(&:empty?)
.last
.last_character \
unless element.nil?
element.nil? ||
(character.punctuation? && !character.hyphen? && !character.apostrophe?) ||
character.spaces?
end
def space_after_element?(start_element)
element = start_element.next_element
until element.nil? ||
(element.name == start_element.name || "r" && !element.text.empty?)
element = element.next_element
end
character = element
.text
.split(/(\W)/)
.compact
.reject(&:empty?)
.last
.first_character \
unless element.nil?
element.nil? ||
(character.punctuation? && !character.hyphen? && !character.apostrophe?) ||
character.spaces?
end
私は許す必要な変更を行う方法を見つけ出すように見えることはできませんが私はこれを1つの方法に減らしました。
はまだ行く私のRubyのスキルを取得します。助けてください。 ルビー2.2.3
すべての '' **さんとは何ですか?有効なRubyコードのみを含めるべきです。 (私はそれがdownvoteの理由だと思っています。)また、コードを読むために横にスクロールしなければならないときには、自分自身も含めて、いくつかの読者が困惑しています。どのようにラインを壊す必要はありませんか? –
ここで提供されているツールを使用して異なる方法でアイテムを太字にして、違いをより簡単に表示できるようにしました。私はあなたの助言に従い、それを必要としないように分割します。謝罪。 – chell
これらのメソッドはどのクラスに定義されていますか? –