module Calabash::Cucumber::QueryHelpers
A module of methods that can help you construct queries.
Public Instance Methods
call this method to properly escape blackslashes () in Calabash
methods (queries and uia actions). Calabash
iOS has some annoying rules for text containing single quotes, and even moreso for backslash (). This helper frees you from manual escaping. @note
In ruby it is important to remember that "\\" is a *single character* string containing a backslash: \
@example
quoted = escape_backslashes("Karl's \\ annoying problem") # => "Karl's \\\\ annoying problem"
@param {String} str string to escape @return {String} escaped version of ‘str`
# File lib/calabash-cucumber/query_helpers.rb, line 35 def escape_backslashes(str) backslash = "\\" str.gsub(backslash, backslash*4) end
call this method to properly escape newlines (n) in Calabash
methods (queries and uia actions). This helper frees you from manual escaping. Note entering a ‘newline’ character only works in iOS UITextViews @note
In ruby it is important to remember that "\n" is a *single character* string containing a new-line.
@example
quoted = escape_newlines("Karl's \n annoying problem") # => "Karl's \\n annoying problem"
@param {String} str string to escape @return {String} escaped version of ‘str`
# File lib/calabash-cucumber/query_helpers.rb, line 53 def escape_newlines(str) nl = "\n" str.gsub(nl, "\\n") end
call this method to properly escape single quotes in Calabash
queries Calabash
iOS has some annoying rules for text containing single quotes. This helper frees you from manual escaping. @example
quoted = escape_quotes("Karl's child") # => "Karl\\'s child"
@param {String} str string to escape @return {String} escaped version of ‘str`
# File lib/calabash-cucumber/query_helpers.rb, line 66 def escape_quotes(str) str.gsub("'", "\\\\'") end
call this method to properly escape strings with single quotes and black slashes in methods (queries and uia actions) Calabash
iOS has some annoying rules for text containing single quotes, and even moreso for backslash (). This helper frees you from manual escaping. @example
quoted = escape_string("Karl's \\ annoying problem") # => "Karl\\'s \\\\ annoying problem"
@param {String} str string to escape @return {String} escaped version of ‘str`
# File lib/calabash-cucumber/query_helpers.rb, line 17 def escape_string(str) escape_newlines(escape_quotes(escape_backslashes(str))) end
converts a query result or off-set hash to a point hash @!visibility private
# File lib/calabash-cucumber/query_helpers.rb, line 72 def point_from(query_result, options={}) offset_x = 0 offset_y = 0 if options[:offset] offset_x += options[:offset][:x] || 0 offset_y += options[:offset][:y] || 0 end x = offset_x y = offset_y rect = query_result['rect'] || query_result[:rect] if rect x += rect['center_x'] || rect[:center_x] || rect[:x] || 0 y += rect['center_y'] || rect[:center_y] || rect[:y] || 0 else x += query_result['center_x'] || query_result[:center_x] || query_result[:x] || 0 y += query_result['center_y'] || query_result[:center_y] || query_result[:y] || 0 end {:x => x, :y => y} end