calabash-cucumber 0.14.3 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dylibs/libCalabashDyn.dylib +0 -0
- data/dylibs/libCalabashDynSim.dylib +0 -0
- data/features-skeleton/support/01_launch.rb +1 -1
- data/lib/calabash-cucumber/core.rb +48 -10
- data/lib/calabash-cucumber/ipad_1x_2x.rb +4 -1
- data/lib/calabash-cucumber/keyboard_helpers.rb +18 -0
- data/lib/calabash-cucumber/launcher.rb +22 -8
- data/lib/calabash-cucumber/map.rb +43 -35
- data/lib/calabash-cucumber/rotation_helpers.rb +4 -12
- data/lib/calabash-cucumber/utils/logging.rb +1 -1
- data/lib/calabash-cucumber/version.rb +2 -2
- data/staticlib/calabash.framework.zip +0 -0
- data/staticlib/libFrankCalabash.a +0 -0
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1162678765d96a589e12bdf06d092d2f0eba972a
|
4
|
+
data.tar.gz: 4c68a868778d5fac3f875a2c709c1329e4330791
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da411ca25785cad3d76cbc52745708a9af974d1aed3d9d855e0231afb6d21486ec71a9ff9f980bf25c2bdad61742d244695c9f799e763f42f12328c3f82a8335
|
7
|
+
data.tar.gz: 0cca1e98616a717243bb4727e64ce41a2befaecc9f6fc6b54f5421723ff696c53435b42e986daa43a72bb55387f177058233119af367b80989d43cb62ac55c56
|
data/dylibs/libCalabashDyn.dylib
CHANGED
Binary file
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# When running calabash-ios tests at #
|
6
6
|
# www.xamarin.com/test-cloud #
|
7
7
|
# the methods invoked by #
|
8
|
-
# CalabashLauncher are
|
8
|
+
# CalabashLauncher are overridden. #
|
9
9
|
# It will automatically ensure #
|
10
10
|
# running on device, installing apps #
|
11
11
|
# etc. #
|
@@ -336,12 +336,27 @@ module Calabash
|
|
336
336
|
# @option options {Hash} :offset (nil) optional offset to touch point. Offset supports an `:x` and `:y` key
|
337
337
|
# and causes the touch to be offset with `(x,y)` relative to the center (`center + (offset[:x], offset[:y])`).
|
338
338
|
# @option options {String} :query (nil) if specified, the swipe will be made relative to this query.
|
339
|
+
# @option options [Symbol] :force (nil) Indicates the force of the swipe.
|
340
|
+
# Valid values are :strong, :normal, :light.
|
341
|
+
#
|
339
342
|
# @return {Array<Hash>,String} array containing the serialized version of the touched view if `options[:query]` is given.
|
340
343
|
def swipe(dir, options={})
|
344
|
+
merged_options = options.dup
|
345
|
+
|
346
|
+
# I don't understand why the :status_bar_orientation value is being overwritten
|
341
347
|
unless uia_available?
|
342
|
-
|
348
|
+
merged_options[:status_bar_orientation] = status_bar_orientation
|
349
|
+
end
|
350
|
+
|
351
|
+
force = merged_options[:force]
|
352
|
+
if force
|
353
|
+
unless [:light, :strong, :normal].include?(force)
|
354
|
+
raise ArgumentError,
|
355
|
+
"Expected :force option '#{force}' to be :light, :strong, or :normal"
|
356
|
+
end
|
343
357
|
end
|
344
|
-
|
358
|
+
|
359
|
+
launcher.actions.swipe(dir.to_sym, merged_options)
|
345
360
|
end
|
346
361
|
|
347
362
|
|
@@ -393,9 +408,17 @@ module Calabash
|
|
393
408
|
# @note this is implemented by calling the Obj-C `setContentOffset:animated:` method and can do things users cant.
|
394
409
|
#
|
395
410
|
# @param {String} uiquery query describing view scroll (should be UIScrollView or a web view).
|
411
|
+
# @param [Symbol] direction The direction to scroll. Valid directions are:
|
412
|
+
# :up, :down, :left, and :right
|
396
413
|
def scroll(uiquery, direction)
|
397
|
-
|
398
|
-
|
414
|
+
allowed_directions = [:up, :down, :left, :right]
|
415
|
+
dir_symbol = direction.to_sym
|
416
|
+
unless allowed_directions.include?(dir_symbol)
|
417
|
+
raise ArgumentError, "Expected '#{direction} to be one of #{allowed_directions}"
|
418
|
+
end
|
419
|
+
|
420
|
+
views_touched=map(uiquery, :scroll, dir_symbol)
|
421
|
+
msg = "could not find view to scroll: '#{uiquery}', args: #{dir_symbol}"
|
399
422
|
assert_map_results(views_touched, msg)
|
400
423
|
views_touched
|
401
424
|
end
|
@@ -790,18 +813,33 @@ module Calabash
|
|
790
813
|
# backdoor("calabashBackdoor:", '')
|
791
814
|
# @example
|
792
815
|
# backdoor("calabashBackdoor:", {example:'param'})
|
793
|
-
# @param {String}
|
794
|
-
# @param {Object}
|
816
|
+
# @param {String} selector the selector to perform on the app delegate
|
817
|
+
# @param {Object} argument the argument to pass to the selector
|
795
818
|
# @return {Object} the result of performing the selector with the argument (serialized)
|
796
|
-
def backdoor(
|
819
|
+
def backdoor(selector, argument)
|
820
|
+
|
821
|
+
unless selector.end_with?(':')
|
822
|
+
messages =
|
823
|
+
[
|
824
|
+
"Selector '#{selector}' is missing a trailing ':'",
|
825
|
+
'Valid backdoor selectors must take one argument.',
|
826
|
+
"Before 0.15.0, the server will append a trailing ':'.",
|
827
|
+
' After 0.15.0, this behavior is scheduled to change.',
|
828
|
+
'',
|
829
|
+
'http://developer.xamarin.com/guides/testcloud/calabash/working-with/backdoors/#backdoor_in_iOS',
|
830
|
+
''
|
831
|
+
]
|
832
|
+
_deprecated('0.15.0', messages.join("\n"), :warn)
|
833
|
+
end
|
834
|
+
|
797
835
|
json = {
|
798
|
-
:selector =>
|
799
|
-
:arg =>
|
836
|
+
:selector => selector,
|
837
|
+
:arg => argument
|
800
838
|
}
|
801
839
|
res = http({:method => :post, :path => 'backdoor'}, json)
|
802
840
|
res = JSON.parse(res)
|
803
841
|
if res['outcome'] != 'SUCCESS'
|
804
|
-
screenshot_and_raise "backdoor #{json} failed because
|
842
|
+
screenshot_and_raise "backdoor #{json} failed because:\n\n#{res['reason']}\n#{res['details']}"
|
805
843
|
end
|
806
844
|
res['result']
|
807
845
|
end
|
@@ -49,6 +49,9 @@ module Calabash
|
|
49
49
|
:emulated_2x => '1X'}
|
50
50
|
}
|
51
51
|
|
52
|
+
# accessibility key = fullscreen.zoom => 2x => Switch to full screen mode
|
53
|
+
# accessibility key = normal.zoom => 1x => Switch to normal mode
|
54
|
+
|
52
55
|
# @!visibility private
|
53
56
|
# @!attribute [r] scale
|
54
57
|
# The current 1X or 2X scale represented as a Symbol.
|
@@ -242,4 +245,4 @@ module Calabash
|
|
242
245
|
|
243
246
|
end
|
244
247
|
end
|
245
|
-
end
|
248
|
+
end
|
@@ -898,6 +898,24 @@ module Calabash
|
|
898
898
|
end
|
899
899
|
end
|
900
900
|
|
901
|
+
# Waits for a keyboard to appear and returns the localized name of the
|
902
|
+
# `key_code` signifier
|
903
|
+
#
|
904
|
+
# @param [String] key_code Maps to a specific name in some localization
|
905
|
+
def lookup_key_name(key_code)
|
906
|
+
wait_for_keyboard
|
907
|
+
begin
|
908
|
+
response_json = JSON.parse(http(:path => 'keyboard-language'))
|
909
|
+
rescue JSON::ParserError
|
910
|
+
raise RuntimeError, "Could not parse output of keyboard-language route. Did the app crash?"
|
911
|
+
end
|
912
|
+
if response_json['outcome'] != 'SUCCESS'
|
913
|
+
screenshot_and_raise "failed to retrieve the keyboard localization"
|
914
|
+
end
|
915
|
+
localized_lang = response_json['results']['input_mode']
|
916
|
+
RunLoop::L10N.new.lookup_localization_name(key_code, localized_lang)
|
917
|
+
end
|
918
|
+
|
901
919
|
# @!visibility private
|
902
920
|
# Returns the the text in the first responder.
|
903
921
|
#
|
@@ -55,6 +55,7 @@ class Calabash::Cucumber::Launcher
|
|
55
55
|
attr_accessor :actions
|
56
56
|
attr_accessor :launch_args
|
57
57
|
attr_accessor :simulator_launcher
|
58
|
+
attr_reader :xcode
|
58
59
|
|
59
60
|
# @!visibility private
|
60
61
|
# Generated when calabash cannot launch the app.
|
@@ -76,6 +77,10 @@ class Calabash::Cucumber::Launcher
|
|
76
77
|
class CalabashLauncherTimeoutErr < Timeout::Error
|
77
78
|
end
|
78
79
|
|
80
|
+
def xcode
|
81
|
+
@xcode ||= RunLoop::Xcode.new
|
82
|
+
end
|
83
|
+
|
79
84
|
# @!visibility private
|
80
85
|
def initialize
|
81
86
|
@simulator_launcher = Calabash::Cucumber::SimulatorLauncher.new
|
@@ -274,7 +279,7 @@ class Calabash::Cucumber::Launcher
|
|
274
279
|
|
275
280
|
sim_control = opts.fetch(:sim_control, RunLoop::SimControl.new)
|
276
281
|
if sim_control.xcode_version_gte_6?
|
277
|
-
default_sim = RunLoop::Core.default_simulator(
|
282
|
+
default_sim = RunLoop::Core.default_simulator(xcode)
|
278
283
|
name_or_udid = merged_opts[:udid] || ENV['DEVICE_TARGET'] || default_sim
|
279
284
|
|
280
285
|
target_simulator = nil
|
@@ -487,7 +492,7 @@ class Calabash::Cucumber::Launcher
|
|
487
492
|
return :instruments if major && major >= 7 # Only instruments supported for iOS7+
|
488
493
|
return :sim_launcher if major # and then we have <= 6
|
489
494
|
|
490
|
-
if RunLoop::
|
495
|
+
if RunLoop::Xcode.new.version_gte_51?
|
491
496
|
return use_sim_launcher_env? ? :sim_launcher : :instruments
|
492
497
|
end
|
493
498
|
|
@@ -535,11 +540,11 @@ class Calabash::Cucumber::Launcher
|
|
535
540
|
|
536
541
|
# RunLoop::Core.run_with_options can reuse the SimControl instance. Many
|
537
542
|
# of the Xcode tool calls, like instruments -s templates, take a long time
|
538
|
-
# to execute.
|
539
|
-
# the results of many of these time-consuming calls so they only need to
|
540
|
-
# be called 1 time per launch.
|
543
|
+
# to execute.
|
541
544
|
# @todo Use SimControl in Launcher in place of methods like simulator_target?
|
542
545
|
args[:sim_control] = RunLoop::SimControl.new
|
546
|
+
args[:instruments] = RunLoop::Instruments.new
|
547
|
+
args[:xcode] = xcode
|
543
548
|
|
544
549
|
if args[:app]
|
545
550
|
if !File.exist?(args[:app])
|
@@ -624,7 +629,7 @@ class Calabash::Cucumber::Launcher
|
|
624
629
|
if run_with_instruments?(args)
|
625
630
|
# Patch for bug in Xcode 6 GM + iOS 8 device testing.
|
626
631
|
# http://openradar.appspot.com/radar?id=5891145586442240
|
627
|
-
uia_strategy = default_uia_strategy(args, args[:sim_control])
|
632
|
+
uia_strategy = default_uia_strategy(args, args[:sim_control], args[:instruments])
|
628
633
|
args[:uia_strategy] ||= uia_strategy
|
629
634
|
calabash_info "Using uia strategy: '#{args[:uia_strategy]}'" if debug_logging?
|
630
635
|
|
@@ -656,14 +661,18 @@ class Calabash::Cucumber::Launcher
|
|
656
661
|
#
|
657
662
|
# rdar://18296714
|
658
663
|
# http://openradar.appspot.com/radar?id=5891145586442240
|
659
|
-
|
664
|
+
#
|
665
|
+
# @param [Hash] launch_args The launch arguments.
|
666
|
+
# @param [RunLoop::SimControl] sim_control Used to find simulators.
|
667
|
+
# @param [RunLoop::Instruments] instruments Used to find physical devices.
|
668
|
+
def default_uia_strategy(launch_args, sim_control, instruments)
|
660
669
|
# Preferences strategy works on Xcode iOS Simulators.
|
661
670
|
if RunLoop::Core.simulator_target?(launch_args, sim_control)
|
662
671
|
:preferences
|
663
672
|
else
|
664
673
|
target_udid = launch_args[:device_target]
|
665
674
|
target_device = nil
|
666
|
-
devices_connected =
|
675
|
+
devices_connected = instruments.physical_devices
|
667
676
|
devices_connected.each do |device|
|
668
677
|
if device.udid == target_udid
|
669
678
|
target_device = device
|
@@ -787,6 +796,11 @@ class Calabash::Cucumber::Launcher
|
|
787
796
|
begin
|
788
797
|
connected = (ping_app == '200')
|
789
798
|
break if connected
|
799
|
+
rescue StandardError => e
|
800
|
+
if full_console_logging?
|
801
|
+
puts "Could not connect. #{e.message}"
|
802
|
+
puts "Will retry ..."
|
803
|
+
end
|
790
804
|
ensure
|
791
805
|
sleep 1 unless connected
|
792
806
|
end
|
@@ -6,32 +6,60 @@ module Calabash
|
|
6
6
|
# @!visibility private
|
7
7
|
module Map
|
8
8
|
|
9
|
-
#
|
9
|
+
# Returns an array of views matched by the `query` or the result of
|
10
10
|
# performing the Objective-C sequence defined by the `method_name` and
|
11
|
-
# `method_args` on all the views matched by the `query
|
11
|
+
# `method_args` on all the views matched by the `query`.
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# This is not a method that users should be calling directly.
|
14
14
|
#
|
15
|
-
#
|
15
|
+
# The `method_name` is typically mapped to an LPOperation on the server.
|
16
|
+
# Some examples of LPOperations are:
|
16
17
|
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
18
|
+
# * :flash
|
19
|
+
# * :scrollToRowWithMark
|
20
|
+
# * :changeDatePickerDate
|
21
|
+
#
|
22
|
+
# If `method_name` maps to no LPOperation, then it is treated a selector
|
23
|
+
# and is performed on any view that matches `query`.
|
24
|
+
#
|
25
|
+
# @examples
|
26
|
+
#
|
27
|
+
# # Calls 'text' on any visible UITextField, because :text is not a defined operation.
|
28
|
+
# > map("textField", :text)
|
29
|
+
# => [ "old text" ]
|
30
|
+
#
|
31
|
+
# # Does not call 'setText:', because :setText is a defined operation.
|
32
|
+
# > map("textField", :setText, 'new text')
|
33
|
+
# => [ <UITextField ... > ]
|
34
|
+
#
|
35
|
+
# # Calls 'setText:', because 'setText:' is not a defined operation.
|
36
|
+
# > map("textField", 'setText:', 'newer text')
|
37
|
+
# => [ "<VOID>" ]
|
38
|
+
#
|
39
|
+
# # Will return [] because :unknownSelector is not defined on UITextField.
|
40
|
+
# > map("textField", :unknownSelector)
|
41
|
+
# => []
|
42
|
+
#
|
43
|
+
# # Will return [] because 'setAlpha' requires 1 argument and none was provided.
|
44
|
+
# # An error will be logged by the server in the device logs.
|
45
|
+
# > map("textField", 'setAlpha:')
|
46
|
+
# => []
|
47
|
+
#
|
48
|
+
#
|
49
|
+
# Well behaved LPOperations should return the view as JSON objects.
|
50
|
+
#
|
51
|
+
# @todo Calabash LPOperations should return 'views touched' in JSON format
|
21
52
|
def map(query, method_name, *method_args)
|
22
|
-
#todo calabash operations should return 'views touched' in JSON format
|
23
53
|
raw_map(query, method_name, *method_args)['results']
|
24
54
|
end
|
25
55
|
|
26
|
-
#
|
56
|
+
# Returns a JSON object the represents the result of performing an http
|
27
57
|
# query against the calabash server.
|
28
58
|
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
# raises an error and takes a screenshot if the value of the `outcome` key
|
59
|
+
# Raises an error and takes a screenshot if the value of the `outcome` key
|
32
60
|
# is _not_ 'SUCCESS'
|
33
61
|
#
|
34
|
-
#
|
62
|
+
# The JSON object contains the following keys:
|
35
63
|
#
|
36
64
|
# `outcome` => indicates the success or failure of the query
|
37
65
|
#
|
@@ -42,27 +70,7 @@ module Calabash
|
|
42
70
|
# the `method_name` with arguments defined in
|
43
71
|
# `method_args` on all views matched by the `query`
|
44
72
|
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
# here are some examples that clarify how the `method_name` and `method_args`
|
48
|
-
# influence the value of the `results` key
|
49
|
-
#
|
50
|
-
# simple examples:
|
51
|
-
#
|
52
|
-
# raw_map('label')['result'] #=> [ all visible UILabels ]
|
53
|
-
# raw_map('label', :text) #=> [ the 'text' of all visible UILabels ]
|
54
|
-
#
|
55
|
-
# example of calling a selector with arguments:
|
56
|
-
#
|
57
|
-
# <tt>raw_map("tableView marked:'cheeses'", {'numberOfRowsInSection' => 0})) =></tt>
|
58
|
-
# <tt>[ the number of rows in the first section of the 'cheeses' table ]</tt>
|
59
|
-
#
|
60
|
-
# example of calling a selector on view to return an object and then calling
|
61
|
-
# another selector on the returned object:
|
62
|
-
#
|
63
|
-
# <tt>raw_map("pickerView marked:'cheeses'", :delegate, [{pickerView:nil},{titleForRow:1},{forComponent:0}]) =></tt>
|
64
|
-
# objc call: <tt>[[pickerView delegate] pickerView:nil titleForRow:1 forComponent:0] =></tt>
|
65
|
-
# <tt>['French']</tt>
|
73
|
+
# @see Calabash::Cucumber::Map#map for examples.
|
66
74
|
def raw_map(query, method_name, *method_args)
|
67
75
|
operation_map = {
|
68
76
|
:method_name => method_name,
|
@@ -87,7 +87,6 @@ module Calabash
|
|
87
87
|
puts "try to rotate to '#{dir_sym}' using '#{candidate}'"
|
88
88
|
end
|
89
89
|
playback(candidate)
|
90
|
-
# need a longer sleep for cloud testing
|
91
90
|
sleep(0.4)
|
92
91
|
recalibrate_after_rotation()
|
93
92
|
|
@@ -117,17 +116,10 @@ module Calabash
|
|
117
116
|
# @example rotate right
|
118
117
|
# rotate :right
|
119
118
|
#
|
120
|
-
# @
|
121
|
-
# rotate :down
|
119
|
+
# @param [Symbol] dir The direction to rotate. Can be :left or :right.
|
122
120
|
#
|
123
|
-
# @
|
124
|
-
#
|
125
|
-
#
|
126
|
-
# @note For legacy support the `dir` argument can be a String or Symbol.
|
127
|
-
# Please update your code to pass a Symbol.
|
128
|
-
#
|
129
|
-
# @param [Symbol] dir The position of the home button after the rotation.
|
130
|
-
# Can be one of `{:down | :left | :right | :up }`.
|
121
|
+
# @return [Symbol] The position of the home button relative to the status
|
122
|
+
# bar after the rotation. Can be one of `{:down | :left | :right | :up }`.
|
131
123
|
def rotate(dir)
|
132
124
|
dir = dir.to_sym
|
133
125
|
current_orientation = status_bar_orientation().to_sym
|
@@ -173,4 +165,4 @@ module Calabash
|
|
173
165
|
|
174
166
|
end
|
175
167
|
end
|
176
|
-
end
|
168
|
+
end
|
@@ -3,10 +3,10 @@ module Calabash
|
|
3
3
|
|
4
4
|
# @!visibility public
|
5
5
|
# The Calabash iOS gem version.
|
6
|
-
VERSION = '0.
|
6
|
+
VERSION = '0.15.0'
|
7
7
|
|
8
8
|
# @!visibility public
|
9
9
|
# The minimum required version of the Calabash embedded server.
|
10
|
-
MIN_SERVER_VERSION = '0.
|
10
|
+
MIN_SERVER_VERSION = '0.15.0'
|
11
11
|
end
|
12
12
|
end
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calabash-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Krukow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
40
|
+
version: 0.0.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: edn
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,7 +146,7 @@ dependencies:
|
|
146
146
|
requirements:
|
147
147
|
- - ">="
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: 1.
|
149
|
+
version: 1.5.0
|
150
150
|
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '2.0'
|
@@ -156,7 +156,7 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.
|
159
|
+
version: 1.5.0
|
160
160
|
- - "<"
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '2.0'
|
@@ -236,14 +236,14 @@ dependencies:
|
|
236
236
|
requirements:
|
237
237
|
- - ">="
|
238
238
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
239
|
+
version: 1.1.0
|
240
240
|
type: :development
|
241
241
|
prerelease: false
|
242
242
|
version_requirements: !ruby/object:Gem::Requirement
|
243
243
|
requirements:
|
244
244
|
- - ">="
|
245
245
|
- !ruby/object:Gem::Version
|
246
|
-
version:
|
246
|
+
version: 1.1.0
|
247
247
|
- !ruby/object:Gem::Dependency
|
248
248
|
name: rake
|
249
249
|
requirement: !ruby/object:Gem::Requirement
|
@@ -551,7 +551,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
551
551
|
version: '0'
|
552
552
|
requirements: []
|
553
553
|
rubyforge_project:
|
554
|
-
rubygems_version: 2.4.
|
554
|
+
rubygems_version: 2.4.8
|
555
555
|
signing_key:
|
556
556
|
specification_version: 4
|
557
557
|
summary: Client for calabash-ios-server for automated functional testing on iOS
|