Module: Capybara::Simulated::WhitespaceNormalizer
- Included in:
- Node
- Defined in:
- lib/capybara/simulated/whitespace_normalizer.rb
Overview
Capybara::Node::WhitespaceNormalizer was extracted in capybara
3.40 — Forem (and other apps that pin ~> 3.37) still ship the
older release where the module doesn't exist. Inline copies of
normalize_spacing / normalize_visible_spacing keep the gem
working against the whole 3.37+ range; they're stable text-
processing helpers, no behavioural drift to worry about.
Constant Summary collapse
- NON_BREAKING_SPACE =
" "- LINE_SEPERATOR =
" "- PARAGRAPH_SEPERATOR =
" "- BREAKING_SPACES =
"[[:space:]&&[^#{NON_BREAKING_SPACE}]]".freeze
- SQUEEZED_SPACES =
" \n\f\t\v#{LINE_SEPERATOR}#{PARAGRAPH_SEPERATOR}".freeze
- LEADING_SPACES =
/\A#{BREAKING_SPACES}+/- TRAILING_SPACES =
/#{BREAKING_SPACES}+\z/- ZERO_WIDTH_SPACE =
""- LEFT_TO_RIGHT_MARK =
""- RIGHT_TO_LEFT_MARK =
""- REMOVED_CHARACTERS =
[ZERO_WIDTH_SPACE, LEFT_TO_RIGHT_MARK, RIGHT_TO_LEFT_MARK].join
- EMPTY_LINES =
/[\ \n]*\n[\ \n]*/
Instance Method Summary collapse
Instance Method Details
#normalize_spacing(text) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/capybara/simulated/whitespace_normalizer.rb', line 25 def normalize_spacing(text) text .delete(REMOVED_CHARACTERS) .tr(SQUEEZED_SPACES, ' ') .squeeze(' ') .sub(LEADING_SPACES, '') .sub(TRAILING_SPACES, '') .tr(NON_BREAKING_SPACE, ' ') end |
#normalize_visible_spacing(text) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/capybara/simulated/whitespace_normalizer.rb', line 35 def normalize_visible_spacing(text) text .squeeze(' ') .gsub(EMPTY_LINES, "\n") .sub(LEADING_SPACES, '') .sub(TRAILING_SPACES, '') .tr(NON_BREAKING_SPACE, ' ') end |