Module: Capybara::Helpers Private
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
-
#declension(singular, plural, count) ⇒ Object
private
A poor man’s ‘pluralize`.
-
#expects_none?(options = {}) ⇒ Boolean
private
Checks if a count of 0 is valid for the given options hash.
-
#failure_message(description, options = {}) ⇒ Object
private
Generates a failure message given a description of the query and count options.
-
#inject_asset_host(html) ⇒ String
private
Injects a ‘<base>` tag into the given HTML code, pointing to `Capybara.asset_host`.
-
#matches_count?(count, options = {}) ⇒ Boolean
private
Checks if the given count matches the given count options.
- #monotonic_time ⇒ Object private
-
#normalize_whitespace(text) ⇒ String
private
Normalizes whitespace space by stripping leading and trailing whitespace and replacing sequences of whitespace characters with a single space.
-
#to_regexp(text) ⇒ String
private
Escapes any characters that would have special meaning in a regexp if text is not a regexp.
Instance Method Details
#declension(singular, plural, count) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A poor man’s ‘pluralize`. Given two declensions, one singular and one plural, as well as a count, this will pick the correct declension. This way we can generate grammatically correct error message.
122 123 124 125 126 127 128 |
# File 'lib/capybara/helpers.rb', line 122 def declension(singular, plural, count) if count == 1 singular else plural end end |
#expects_none?(options = {}) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Checks if a count of 0 is valid for the given options hash. Returns false if options hash does not specify any count options.
79 80 81 82 83 84 85 |
# File 'lib/capybara/helpers.rb', line 79 def expects_none?(={}) if [:count, :maximum, :minimum, :between].any? { |k| .has_key? k } matches_count?(0,) else false end end |
#failure_message(description, options = {}) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Generates a failure message given a description of the query and count options.
98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/capybara/helpers.rb', line 98 def (description, ={}) = "expected to find #{description}" if [:count] << " #{[:count]} #{declension('time', 'times', [:count])}" elsif [:between] << " between #{[:between].first} and #{[:between].last} times" elsif [:maximum] << " at most #{[:maximum]} #{declension('time', 'times', [:maximum])}" elsif [:minimum] << " at least #{[:minimum]} #{declension('time', 'times', [:minimum])}" end end |
#inject_asset_host(html) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Injects a ‘<base>` tag into the given HTML code, pointing to `Capybara.asset_host`.
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/capybara/helpers.rb', line 42 def inject_asset_host(html) if Capybara.asset_host && Nokogiri::HTML(html).css("base").empty? match = html.match(/<head[^<]*?>/) if match return html.clone.insert match.end(0), "<base href='#{Capybara.asset_host}' />" end end html end |
#matches_count?(count, options = {}) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Checks if the given count matches the given count options. Defaults to true if no options are specified. If multiple options are provided, it tests that all conditions are met; however, if :count is supplied, all other options are ignored.
66 67 68 69 70 71 72 |
# File 'lib/capybara/helpers.rb', line 66 def matches_count?(count, ={}) return (Integer([:count]) == count) if [:count] return false if [:maximum] && (Integer([:maximum]) < count) return false if [:minimum] && (Integer([:minimum]) > count) return false if [:between] && !([:between] === count) return true end |
#monotonic_time ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
131 132 133 |
# File 'lib/capybara/helpers.rb', line 131 def monotonic_time Process.clock_gettime Process::CLOCK_MONOTONIC end |
#normalize_whitespace(text) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Normalizes whitespace space by stripping leading and trailing whitespace and replacing sequences of whitespace characters with a single space.
18 19 20 |
# File 'lib/capybara/helpers.rb', line 18 def normalize_whitespace(text) text.to_s.gsub(/[[:space:]]+/, ' ').strip end |
#to_regexp(text) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Escapes any characters that would have special meaning in a regexp if text is not a regexp
30 31 32 |
# File 'lib/capybara/helpers.rb', line 30 def to_regexp(text) text.is_a?(Regexp) ? text : Regexp.new(Regexp.escape(normalize_whitespace(text))) end |