@@ -37,35 +37,39 @@ class Driver
3737 attr_reader :app_path , :app_name , :app_package , :app_activity ,
3838 :app_wait_activity , :sauce_username , :sauce_access_key ,
3939 :port , :os , :ios_js
40- def initialize opts = { }
40+ def initialize options = { }
4141 # quit last driver
4242 $driver. driver_quit if $driver
4343
44+ opts = { }
45+ # convert to downcased symbols
46+ options . each_pair { |k , v | opts [ k . to_s . downcase . strip . intern ] = v }
47+
4448 opts = { } if opts . nil?
4549 # Path to the .apk, .app or .app.zip.
4650 # The path can be local or remote for Sauce.
47- @app_path = opts . fetch 'APP_PATH' , ENV [ 'APP_PATH' ]
51+ @app_path = opts . fetch :app_path , ENV [ 'APP_PATH' ]
4852 raise 'APP_PATH must be set.' if @app_path . nil?
4953
5054 # The name to use for the test run on Sauce.
51- @app_name = opts . fetch 'APP_NAME' , ENV [ 'APP_NAME' ]
55+ @app_name = opts . fetch :app_name , ENV [ 'APP_NAME' ]
5256
5357 # Android app package
54- @app_package = opts . fetch 'APP_PACKAGE' , ENV [ 'APP_PACKAGE' ]
58+ @app_package = opts . fetch :app_package , ENV [ 'APP_PACKAGE' ]
5559
5660 # Android app starting activity.
57- @app_activity = opts . fetch 'APP_ACTIVITY' , ENV [ 'APP_ACTIVITY' ]
61+ @app_activity = opts . fetch :app_activity , ENV [ 'APP_ACTIVITY' ]
5862
5963 # Android app waiting activity
60- @app_wait_activity = opts . fetch 'APP_WAIT_ACTIVITY' , ENV [ 'APP_WAIT_ACTIVITY' ]
64+ @app_wait_activity = opts . fetch :app_wait_activity , ENV [ 'APP_WAIT_ACTIVITY' ]
6165
6266 # Sauce Username
63- @sauce_username = opts . fetch 'SAUCE_USERNAME' , ENV [ 'SAUCE_USERNAME' ]
67+ @sauce_username = opts . fetch :sauce_username , ENV [ 'SAUCE_USERNAME' ]
6468
6569 # Sauce Key
66- @sauce_access_key = opts . fetch 'SAUCE_ACCESS_KEY' , ENV [ 'SAUCE_ACCESS_KEY' ]
70+ @sauce_access_key = opts . fetch :sauce_access_key , ENV [ 'SAUCE_ACCESS_KEY' ]
6771
68- @port = opts . fetch 'PORT' , ENV [ 'PORT' ] || 4723
72+ @port = opts . fetch :port , ENV [ 'PORT' ] || 4723
6973
7074 @os = :ios
7175 @os = :android if @app_path . end_with? ( '.apk' ) || @app_path . end_with? ( '.apk.zip' )
@@ -87,6 +91,9 @@ def initialize opts={}
8791 # apply os specific patches
8892 patch_webdriver_element
8993
94+ # enable debug patch
95+ patch_webdriver_bridge if opts . fetch :debug , defined? ( Pry )
96+
9097 # Save global reference to last created Appium driver for top level methods.
9198 $driver = self
9299
0 commit comments