나는 매우 유사 다음 두 가지 방법이 있습니다하나의 방법까지 두 가지 방법에서이 코드를 리팩토링하는 방법
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
내가 허용 할 필요한 사항을 변경하는 방법을 알아낼 수없는 것을 나 한 가지 방법으로 이것을 줄이기 위해.
아직 내 루비 기술을 계속 사용하고 있습니다.
도움을 주시면 감사하겠습니다. 루비 2.2.3
모든'**'의 무엇인가? 유효한 Ruby 코드 만 포함시켜야합니다. (나는 그것이 downvote의 이유라고 기대한다.) 또한, 코드를 읽으려면 가로로 스크롤해야 할 때, 독자가 포함되어있는 일부 독자는 짜증이났다. 선을 끊어서 불필요한 것은 어떨까요? –
차이점을 더 쉽게 볼 수 있도록 여기 제공된 도구를 사용하여 다른 방법으로 항목을 굵게 표시하려고했습니다. 나는 너의 충고를 따르고 그것을 필요로하지 않도록 위로 끊을 것이다. 사과. – chell
정의 된 클래스는 어떤 클래스입니까? –