appium_console 2.8.1 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7f0ad03fae68923b3dacffcf053dc97c911cf69
4
- data.tar.gz: 0b2571d22c023c322b8f4dfddae3cba62afa669d
3
+ metadata.gz: 8ec6b4722250552ced187766bbf0ceb732d78d02
4
+ data.tar.gz: e8555939b2a8b3477654283d3cd6e3e28b37255e
5
5
  SHA512:
6
- metadata.gz: 5edc6e99cd9172cbb3802ba99cdc157502bc35414f8bad4802b13df6bcd987bdb7ec9524f6af8730cc1b41d294a0723cabfb0c77092525518361a2a685847265
7
- data.tar.gz: 54b6d125ed8e3baa016d3a29ba936bf7b0da42257470e4078f6d59347a619a5da5cff164c8643a8447f5ab1924e56e80e2b70d38eff19f512996eeddc024b72a
6
+ metadata.gz: 6764060ef3fd4b50e79ce3098fd6a24e22855f63de3eaf63b37351c785695ea0488f96565b284df44954c6d3349a74cb927212b88b2b96cb4d92f444a8663c9e
7
+ data.tar.gz: 3010e49e7202a953e99923a67a15f0e2ba7473c83ef9ab23614ad4696246bdfedd501219022f753c2894f3d5f9c0db67b4c1fe62e2a595f8d583c92454696788
@@ -10,21 +10,21 @@ add_to_path 'lib'
10
10
  require 'appium_console/version'
11
11
 
12
12
  Gem::Specification.new do |s|
13
- # 1.8.x is not supported
14
13
  s.required_ruby_version = '>= 2.2'
15
14
 
16
- s.name = 'appium_console'
17
- s.version = Appium::Console::VERSION
18
- s.date = Appium::Console::DATE
19
- s.license = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
20
- s.description = s.summary = 'Appium Ruby Console'
21
- s.description += '.' # avoid identical warning
22
- s.authors = s.email = [ 'code@bootstraponline.com' ]
23
- s.homepage = 'https://github.com/appium/ruby_console' # published as appium_console
15
+ s.name = 'appium_console'
16
+ s.version = Appium::Console::VERSION
17
+ s.date = Appium::Console::DATE
18
+ s.license = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
19
+ s.description = s.summary = 'Appium Ruby Console'
20
+ s.description += '.' # avoid identical warning
21
+ s.authors = ['code@bootstraponline.com', 'Kazuaki Matsuo']
22
+ s.email = %w(code@bootstraponline.com fly.49.89.over@gmail.com)
23
+ s.homepage = 'https://github.com/appium/ruby_console' # published as appium_console
24
24
  s.require_paths = [ 'lib' ]
25
25
 
26
26
  # appium_lib version must match ruby console version.
27
- s.add_runtime_dependency 'appium_lib', '~> 9', '>= 9.8'
27
+ s.add_runtime_dependency 'appium_lib', '~> 9.15.0'
28
28
  s.add_runtime_dependency 'awesome_print', '~> 1.7'
29
29
  s.add_runtime_dependency 'pry', '~> 0.11.0'
30
30
  s.add_runtime_dependency 'bond', '~> 0.5'
@@ -44,9 +44,9 @@ module Appium
44
44
  if has_requires
45
45
  requires = parsed[:appium_lib][:require]
46
46
 
47
- if !requires.empty?
48
- load_files = requires.map { |f| %(require "#{f}";) }.join "\n"
49
- cmd += ['-e', load_files]
47
+ unless requires.empty?
48
+ load_files = requires.map {|f| %(require "#{f}";)}.join "\n"
49
+ cmd += ['-e', load_files]
50
50
  end
51
51
 
52
52
  $stdout.puts "pry #{cmd.join(' ')}"
@@ -2,6 +2,6 @@
2
2
  # Define Appium module so version can be required directly.
3
3
  module Appium; end unless defined? Appium
4
4
  module Appium::Console
5
- VERSION = '2.8.1' unless defined? ::Appium::Console::VERSION
6
- DATE = '2017-12-21' unless defined? ::Appium::Console::DATE
5
+ VERSION = '2.9.0' unless defined? ::Appium::Console::VERSION
6
+ DATE = '2018-08-16' unless defined? ::Appium::Console::DATE
7
7
  end
data/lib/cli.rb CHANGED
@@ -1,11 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'thor'
3
3
  require 'appium_console/version'
4
- begin
5
- require 'appium_lib/common/version'
6
- rescue LoadError
7
- require 'appium_lib/version'
8
- end
4
+ require 'appium_lib/version'
9
5
  require 'erb'
10
6
  require 'appium_console'
11
7
 
data/readme.md CHANGED
@@ -1,62 +1,29 @@
1
1
  [![Downloads](https://img.shields.io/gem/dt/appium_console.svg)](https://rubygems.org/gems/appium_console)
2
2
  [![Pull Requests](http://issuestats.com/github/appium/ruby_console/badge/pr?style=flat)](http://issuestats.com/github/appium/ruby_console)
3
3
  [![Issues](http://issuestats.com/github/appium/ruby_console/badge/issue?style=flat)](http://issuestats.com/github/appium/ruby_console)
4
- #### Appium Ruby Console [![Gem Version](https://badge.fury.io/rb/appium_console.svg)](http://badge.fury.io/rb/appium_console)[![Dependency Status](https://gemnasium.com/appium/ruby_console.svg)](https://gemnasium.com/appium/ruby_console)
4
+ [![Gem Version](https://badge.fury.io/rb/appium_console.svg)](http://badge.fury.io/rb/appium_console)[![Dependency Status](https://gemnasium.com/appium/ruby_console.svg)](https://gemnasium.com/appium/ruby_console)
5
5
 
6
- - [appium_console on RubyGems](https://rubygems.org/gems/appium_console)
7
-
8
- #### How to use
9
-
10
- Read the [bootcamp guide on the ruby console](https://wiki.saucelabs.com/display/DOCS/Appium+Bootcamp+2%3A+Configuring+Appium).
11
-
12
- #### Update system
13
-
14
- Paste the following into Terminal. If you're not using [RVM](https://rvm.io/), you may have to prefix gem commands with sudo.
15
-
16
- ```bash
17
- gem update --system ;\
18
- gem update bundler
19
- ```
20
-
21
- #### Pry commands
22
-
23
- Pry commands are prefixed with `%`. For example `%reset` invokes Pry's reset command.
24
- To use the ruby_lib reset, it's `reset`
6
+ # Appium Ruby Console
25
7
 
26
- #### Install / Upgrade Ruby Console
27
-
28
- ```bash
29
- gem uninstall -aIx appium_lib ;\
30
- gem uninstall -aIx appium_console ;\
31
- gem install --no-rdoc --no-ri appium_console bond
32
- ```
33
-
34
- The bond gem is necessary for proper auto complete. Installing it will fix this error `NameError: uninitialized constant Pry::BondCompleter::Bond`
35
-
36
- #### Notes
8
+ - [appium_console on RubyGems](https://rubygems.org/gems/appium_console)
37
9
 
38
- 1. You should uninstall the `ap` gem because it breaks awesome_print.
39
- - `gem uninstall -aIx ap`
40
- 2. If the statement ends in `;` then the element will not be shown in Pry
10
+ ## How to use
11
+ 1. Setup Appium
12
+ - Read [a setup guide](http://appium.io/docs/en/about-appium/getting-started/?lang=en)
13
+ 2. Install `appium_console`
14
+ ```bash
15
+ gem uninstall -aIx appium_lib ;\
16
+ gem uninstall -aIx appium_console ;\
17
+ gem install --no-rdoc --no-ri appium_console
41
18
  ```
42
- find_element(:uiautomator, 'new UiSelector().textContains("Text")'); # -- no element shown
43
- find_element(:uiautomator, 'new UiSelector().textContains("Text")') # shows element
44
- ```
45
-
46
- #### Run
47
-
48
- The `arc` command starts Appium Ruby Console.
49
-
50
- - `arc help` prints a description of all available commands
51
- - `arc version` prints the current version of appium console and appium lib.
52
- - `arc setup android` creates `appium.txt` for android in the current working dir.
53
- - `arc setup ios` creates `appium.txt` for ios in the current working dir.
54
- - `arc toml FILE` starts arc with toml FILE path
19
+ 3. Run
20
+ - The `arc` command starts Appium Ruby Console.
21
+ - `arc help` prints a description of all available commands
22
+ - `arc version` prints the current version of appium console and appium lib.
23
+ - `arc setup android` creates `appium.txt` for android in the current working dir.
24
+ - `arc setup ios` creates `appium.txt` for ios in the current working dir.
25
+ - `arc toml FILE` starts arc with toml FILE path
55
26
 
56
- #### Documentation
27
+ ## Documentation
57
28
 
58
- - [Installing Appium on OS X](https://github.com/appium/ruby_console/blob/master/osx.md)
59
- - [Overview](https://github.com/appium/ruby_lib/blob/master/docs/docs.md)
60
- - [Android methods](https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md)
61
- - [iOS methods](https://github.com/appium/ruby_lib/blob/master/docs/ios_docs.md)
62
- - [Appium docs](https://github.com/appium/appium/tree/master/docs)
29
+ - [ruby_lib](https://github.com/appium/ruby_lib)
data/release_notes.md CHANGED
@@ -1,3 +1,11 @@
1
+ #### v2.9.0 2018-08-16
2
+
3
+ - [6f9d1a6](https://github.com/appium/ruby_console/commit/6f9d1a63def0498381db3e004872150d2ab7ffa1) Release 2.9.0
4
+ - [5fdcf53](https://github.com/appium/ruby_console/commit/5fdcf53188e0b72e50f98417491c4f4a65595103) bump up
5
+ - [ec7e883](https://github.com/appium/ruby_console/commit/ec7e8832611d09136bae73aaec68ca41aa10d472) tweak gemspec (#92)
6
+ - [b445f3d](https://github.com/appium/ruby_console/commit/b445f3dbae43f07289ab16adf2142eade9d8da86) delete outdated documentation (#91)
7
+
8
+
1
9
  #### v2.8.1 2017-12-21
2
10
 
3
11
  - [9b840d2](https://github.com/appium/ruby_console/commit/9b840d23b12a6942ca2cf1fc6eafc31aecdf789d) Release 2.8.1
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_console
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
+ - Kazuaki Matsuo
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-12-21 00:00:00.000000000 Z
12
+ date: 2018-08-16 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: appium_lib
@@ -16,20 +17,14 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '9'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: '9.8'
20
+ version: 9.15.0
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
24
  requirements:
27
25
  - - "~>"
28
26
  - !ruby/object:Gem::Version
29
- version: '9'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '9.8'
27
+ version: 9.15.0
33
28
  - !ruby/object:Gem::Dependency
34
29
  name: awesome_print
35
30
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +152,7 @@ dependencies:
157
152
  description: Appium Ruby Console.
158
153
  email:
159
154
  - code@bootstraponline.com
155
+ - fly.49.89.over@gmail.com
160
156
  executables:
161
157
  - arc
162
158
  extensions: []
@@ -170,13 +166,10 @@ files:
170
166
  - bin/arc
171
167
  - img/avd_settings.png
172
168
  - img/packages.png
173
- - ios_v_android.md
174
169
  - lib/appium_console.rb
175
170
  - lib/appium_console/version.rb
176
171
  - lib/cli.rb
177
172
  - lib/start.rb
178
- - osx.md
179
- - osx_install.rake
180
173
  - readme.md
181
174
  - release_notes.md
182
175
  - templates/appium.txt.erb
@@ -201,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
194
  version: '0'
202
195
  requirements: []
203
196
  rubyforge_project:
204
- rubygems_version: 2.6.8
197
+ rubygems_version: 2.6.14
205
198
  signing_key:
206
199
  specification_version: 4
207
200
  summary: Appium Ruby Console
data/ios_v_android.md DELETED
@@ -1,58 +0,0 @@
1
- #### Notes on iOS and Android Appium compatibility
2
-
3
- #### iOS Ghosting
4
-
5
- It's not uncommon to have multiple elements from different pages. To find the correct back button for example,
6
- it's necessary to find all the back buttons `names('Back')` and then return the first one that's displayed.
7
-
8
- This has implications for searching by index. If you select textfield 1 for the 1st textfield, then you may
9
- be getting a textfield from a previous page. The solution is to ensure each element has a unique accessibility identifier
10
- and to verify visibility and type.
11
-
12
- #### iPhone vs iPad
13
-
14
- iPad will contain elements from visible background screens. iPhone will have only one screen, however the keyboard can only be dismissed by clicking somewhere.
15
- The iPad has a hide keyboard button. The iPhone will use `Next` and `Go` on a typical login screen via the on screen keyboard.
16
-
17
- - setValue will immediately set the value
18
- - hideKeyboard will attempt to hide the iPad keyboard and fail on iPhone
19
- - find_element(:tag_name, :window).click should work everywhere
20
-
21
- ##### Tag Names
22
-
23
- `secure` is not possible to implement on Android using uiautomator. `textfield` and `secure` are both considered `edittext`.
24
-
25
- `textfield` returns all textfields, including secure on Android. `secure` will error on Android.
26
- on iOS `textfield` will not match secure text fields.
27
-
28
- ##### Search strategy
29
-
30
- Android
31
-
32
- - `android:id` is not accessible via uiautomator
33
- - `name` content description (defined in activity XML or dynamically)
34
- - `text` text content of the UI widget
35
- - `tag_name` the android class
36
-
37
- `text` is [not a selenium search strategy](https://github.com/appium/appium/issues/241#issuecomment-14582659) so use XPath.
38
-
39
- `secure` on iOS will return value.
40
-
41
- `EditText` used as password field on Andorid will always return an empty string.
42
-
43
- --
44
-
45
- iOS .name returns the [accessibility attribute](http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIAElementClassReference/UIAElement/UIAElement.html#//apple_ref/javascript/instm/UIAElement/name) if it's set. if not set, the string value is used.
46
-
47
- Android .name returns the accessibility attribute and nothing if it's not set.
48
-
49
- #### More options button
50
-
51
- The android `options` button will be hidden if the device has a hardware menu button. To work around this:
52
-
53
- ```ruby
54
- # see abs__action_menu_overflow_description in ActionBarSherlock
55
- # click more options if it exists. if it doesn't then the device has a hardware menu button that must be pressed instead.
56
- exists { name 'more options' } ? name('more options').click : mobile(:keyevent, keycode: 82)
57
- ```
58
-
data/osx.md DELETED
@@ -1,260 +0,0 @@
1
- ### Getting Started
2
-
3
- This document is written for OS X 10.9.2 or better. iOS testing requires OS X. Android testing works on OS X, Windows, and Linux.
4
-
5
- #### Steps to install
6
-
7
- Install `Xcode` 5.1.1.
8
-
9
- - Xcode 5.0.0 shouldn't be used for iOS 6 as it's flaky.
10
- - Xcode 5.0.1 is broken.
11
- - Xcode 4.6.3 doesn't support iOS 7.
12
-
13
- After that, install the command line build tools for your version of OS X (Xcode -> Open Developer Tools -> More Developer Tools).
14
-
15
- - Install Java 7 if there's no Java on the system.
16
- - [JDK 7](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
17
-
18
- - Install stable release of Ruby.
19
-
20
- `$ \curl -L https://get.rvm.io | bash -s stable --ruby`
21
-
22
- - Make sure RVM is using the correct Ruby by default
23
-
24
- ```
25
- $ rvm list
26
- $ rvm --default use 2.3.0
27
- ```
28
-
29
- - If you have an old ruby, you can installing Ruby 2.3.0 instead
30
-
31
- ```
32
- $ rvm get head
33
- $ rvm autolibs homebrew
34
- $ rvm install 2.3.0
35
- ```
36
-
37
- - Check that it's installed properly by printing the ruby version.
38
-
39
- `$ ruby --version`
40
-
41
- - Update RubyGems and Bundler.
42
-
43
- ```ruby
44
- gem update --system ;\
45
- gem install --no-rdoc --no-ri bundler ;\
46
- gem update ;\
47
- gem cleanup
48
- ```
49
-
50
- - Check that RubyGems is >= 2.1.5
51
-
52
- ```bash
53
- $ gem --version
54
- 2.6.4
55
- ```
56
-
57
- - Install appium_console gem.
58
-
59
- ```ruby
60
- gem uninstall -aIx appium_lib ;\
61
- gem uninstall -aIx appium_console ;\
62
- gem install --no-rdoc --no-ri appium_console
63
- ```
64
-
65
- - Install [flaky](https://github.com/appium/flaky) gem.
66
-
67
- ```ruby
68
- gem uninstall -aIx flaky ;\
69
- gem install --no-rdoc --no-ri flaky
70
- ```
71
-
72
- - Install [brew](http://mxcl.github.io/homebrew/)
73
-
74
- `ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"`
75
-
76
- - Install [nodejs](http://nodejs.org/) using brew.
77
-
78
- ```
79
- brew update ;\
80
- brew upgrade node ;\
81
- brew install node
82
- ```
83
-
84
- - Node should be `v0.10.5` or better.
85
- Don't use the big green install button on nodejs.org or all npm commands will require sudo.
86
-
87
- `$ node --version`
88
-
89
- `$ npm --version`
90
-
91
- - Install grunt.
92
-
93
- `npm install -g grunt grunt-cli`
94
-
95
- - Run the version command from the appium folder. If you're not in that folder, the grunt version will not display.
96
-
97
- ```bash
98
- $ grunt --version
99
- grunt-cli v0.1.6
100
- grunt v0.4.1
101
- ```
102
-
103
- - Install [ant](http://ant.apache.org/) if it's not already installed.
104
- - Install [maven 3.1.1 or better](http://maven.apache.org/download.cgi) if it's not already installed. Old maven will not work.
105
-
106
- Ant and maven can be installed manually or using brew.
107
-
108
- ```bash
109
- $ brew update
110
- $ brew install ant
111
- $ brew install maven
112
- ```
113
-
114
- ```
115
- $ ant -version
116
- Apache Ant(TM) version 1.9.7 compiled on April 9 2016
117
- $ mvn -version
118
- Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T09:41:47-07:00)
119
- ```
120
-
121
- - Clone appium
122
-
123
- `$ git clone git://github.com/appium/appium.git`
124
-
125
- - Run reset.sh. When running reset.sh, make sure to be on Xcode 5.0.2 for best results. You may have problems if you reset on Xcode 4.6.3 and then switch to a newer Xcode.
126
-
127
- `cd appium; ./reset.sh`
128
-
129
- If you see config errors, try cleaning git. `git clean -dfx; git reset --hard`
130
-
131
- You can also reset by platform. `./reset.sh --android`
132
-
133
- If npm is having issues, you may have to disable https. I don't recommend this, however if you must this is how to do so:
134
-
135
- `npm config set registry http://registry.npmjs.org/`
136
-
137
-
138
- - Authorize for iOS testing. Must run reset.sh as mentioned above before running the grunt task.
139
-
140
- > sudo \`which grunt\` authorize
141
-
142
- - Start appium.
143
-
144
- `node .`
145
-
146
-
147
- #### Bash Profile
148
- - Add the Android SDK tools folder to your path so you can run `android`.
149
- - Define the `ANDROID_HOME` env var pointing to SDK root. On OSX place it in `~/.bash_profile`
150
- - You may have to add grunt as well `/usr/local/share/npm/bin/grunt`
151
-
152
- ```
153
- # ~/.bash_profile
154
- export ANDROID_HOME=$HOME/Downloads/android-sdk-macosx
155
- export ANDROID_SDK=$ANDROID_HOME
156
- PATH=$PATH:/Applications/apache-ant-1.8.4/bin
157
- PATH=$PATH:/usr/local/share/npm/bin/
158
- PATH=$PATH:$ANDROID_HOME/build-tools
159
- PATH=$PATH:$ANDROID_HOME/platform-tools
160
- PATH=$PATH:$ANDROID_HOME/tools
161
- export JAVA_HOME="`/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home`"
162
-
163
- export PATH
164
- ```
165
-
166
- - Run `android` to open the SDK manager.
167
- - Install `Intel x86 Emulator Accelerator (HAXM)` under Extras
168
- - Install API 19 `SDK Platform`, `Intel x86 Atom System Image`, `Google APIs`
169
- If there are any problems viewing or downloading the packages, go to `Packages -> Reload` and try again.
170
-
171
- ![](img/packages.png)
172
-
173
- - Create a new Android virtual device that uses the Intel image. Note that some apps may have issues when `Use Host GPU` is enabled or SD cards [aren't formatted properly](http://stackoverflow.com/questions/5744298/what-does-this-mean-failure-install-failed-container-error). Set `VM Heap` to `64`. `32` is too small. The emulator is very slow when Use Host GPU is disabled. If you have to disable it then consider testing on a physical device which will be faster.
174
-
175
- ![](img/avd_settings.png)
176
-
177
- `android avd`
178
-
179
- - Check that `hax is working` If it's not, install hax [directly from Intel](http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager)
180
-
181
- ```bash
182
- $ emulator @android
183
- HAX is working and emulator runs in fast virt mode
184
- ```
185
-
186
- - Launch the emulator with `emulator @android`
187
-
188
- - After launching the emulator, check that it's listed in adb devices. Run the following commands a few times until it's listed.
189
-
190
- `adb kill-server; adb devices`
191
-
192
- If you see `error: protocol fault (no status)` just keep running the command until the emulator is detected.
193
-
194
- - With both the Android emulator running and the Appium server started, it's time to launch the appium console. Make sure the ENV vars are exported.
195
-
196
- - Start appium console
197
-
198
- `arc`
199
-
200
- - See [running on OS X](https://github.com/appium/appium/blob/master/docs/en/appium-setup/running-on-osx.md)
201
-
202
- #### Troubleshooting
203
-
204
- - If install fails, keep trying to install a few times.
205
-
206
- When using `Appium.app` make sure to set Appium -> Preferences... -> Check "Use External Appium Package" and set it to the path of Appium cloned from GitHub.
207
-
208
- Fix permission errors. npm shouldn't require sudo.
209
-
210
- ```bash
211
- brew uninstall node
212
- brew install node
213
- rm -rf ./node_modules # run from the appium folder
214
- rm -rf "/Users/`whoami`/.npm"
215
- rm -rf /usr/local/lib/node_modules/
216
- ./reset.sh --ios
217
- ./reset.sh --android
218
- ```
219
-
220
- - [Helper bash methods](https://gist.github.com/bootstraponline/5580587)
221
-
222
- #### SSL Issues
223
-
224
- > Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
225
-
226
- - [Fix SSL issues](http://railsapps.github.io/openssl-certificate-verify-failed.html) with:
227
-
228
- ```bash
229
- $ rvm osx-ssl-certs update all
230
- $ rvm osx-ssl-certs status all
231
- ```
232
-
233
- #### Maven on OS X 10.9
234
-
235
- ```bash
236
- $ cd /usr/local
237
- $ git reset --hard origin/master
238
-
239
- $ brew update
240
- $ brew install maven
241
- ```
242
-
243
- #### HAXM on OS X 10.9
244
-
245
- Install the [HAXM 10.9 hotfix](http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-end-user-license-agreement-macos-hotfix
246
- ).
247
-
248
- #### Restore dev tools on 10.9
249
-
250
- `xcode-select --install`
251
-
252
- - [Install specific node version](https://coderwall.com/p/lqphzg)
253
-
254
- #### Corrupt ruby gems
255
-
256
- If you see:
257
-
258
- > invalid gem: package is corrupt, exception while verifying: undefined method
259
-
260
- Then run `$ rm -rf ~/.rvm` and reinstall RVM.
data/osx_install.rake DELETED
@@ -1,135 +0,0 @@
1
- # For OS X, installs all the dependencies for Appium's ruby console, per these instructions:
2
- #
3
- # https://github.com/appium/ruby_console/blob/master/osx.md
4
- #
5
- # Changes to this file might imply changes to those instructions as well.
6
-
7
- def sh_success(cmd)
8
- success = false
9
- begin
10
- success, status = sh cmd
11
- rescue
12
- # do nothing
13
- end
14
-
15
- success
16
- end
17
-
18
- def has_cmd(cmd)
19
- sh_success "which #{cmd}"
20
- end
21
-
22
- THIS_DIR = File.expand_path(File.dirname(__FILE__))
23
- APPIUM_DIR = "#{THIS_DIR}/appium"
24
-
25
- GCC = '/usr/bin/gcc'
26
- GCC42_CMD = 'gcc-4.2'
27
- GCC42 = "/usr/local/bin/#{GCC42_CMD}"
28
-
29
- file GCC do
30
- fail "#{GCC} does not exist. This is likely because you do not have Xcode command line tools installed."
31
- end
32
-
33
- file GCC42 => [GCC] do
34
- sh "ln -s #{GCC} #{GCC42}"
35
- end
36
-
37
- task :gcc do
38
- if !has_cmd('gcc-4.2') then
39
- Rake::Task[GCC42].invoke
40
- end
41
- end
42
-
43
- task :java do
44
- if !has_cmd('java') then
45
- puts "You must install java to continue."
46
- puts "cf. http://www.oracle.com/technetwork/java/javase/downloads/index.html"
47
- end
48
- end
49
-
50
- task :ruby => [:gcc] do
51
- if has_cmd('rvm') then
52
- # doesn't hurt anything if already installed
53
- sh 'rvm install 2.0.0'
54
- else
55
- sh '\curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0'
56
- end
57
-
58
- system '/bin/bash --login -i -c "rvm use --default 2.0.0"'
59
- sh 'rvm osx-ssl-certs update all'
60
- end
61
-
62
- task :gems => [:ruby] do
63
- sh 'gem update --system'
64
- sh 'gem install --no-rdoc --no-ri bundler'
65
- sh 'gem update'
66
- sh 'gem cleanup'
67
- sh 'gem uninstall -aIx appium_lib'
68
- sh 'gem uninstall -aIx appium_console'
69
- sh 'gem install --no-rdoc --no-ri appium_console'
70
- sh 'gem uninstall -aIx flaky'
71
- sh 'gem install --no-rdoc --no-ri flaky'
72
- end
73
-
74
- task :brew do
75
- if has_cmd('brew') then
76
- sh 'brew update'
77
- else
78
- sh 'ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"'
79
- end
80
- end
81
-
82
- task :ant do
83
- if !has_cmd('ant') then
84
- fail "Ant must be installed to complete this setup."
85
- end
86
- end
87
-
88
- task :maven do
89
- if !has_cmd('mvn') then
90
- Rake::Task[:brew].invoke
91
- sh 'brew install maven'
92
- end
93
- end
94
-
95
- task :nodejs => [:brew] do
96
- sh 'brew install node' # noop if already installed
97
- if sh_success 'brew outdated | grep node' then
98
- sh 'brew upgrade node'
99
- end if
100
-
101
- # make sure it's installed
102
- sh 'node --version'
103
- sh 'npm --version'
104
- end
105
-
106
- task :grunt => [:nodejs] do
107
- if !sh_success('grunt --version') then
108
- sh 'npm install -g grunt grunt-cli'
109
- sh 'grunt --version'
110
- end
111
- end
112
-
113
- # we only clone when the directory doesn't already exist
114
- directory APPIUM_DIR do
115
- cd THIS_DIR
116
- sh 'git clone git://github.com/appium/appium.git'
117
- end
118
-
119
- # appium goes into the directory below where this Rakefile is
120
- desc 'Downloads appium and all dependencies, and starts up appium. May require a superuser password.'
121
- task :appium => [APPIUM_DIR, :grunt, :maven, :ant, :gems, :ruby, :java] do
122
- cd APPIUM_DIR
123
- sh 'git pull origin master'
124
- sh './reset.sh'
125
-
126
- begin
127
- sh 'sudo `which grunt` authorize'
128
- rescue
129
- # grunt errors if it has already been authorized, so ... I guess we'll ignore errors then
130
- end
131
-
132
- sh 'node server.js'
133
- end
134
-
135
- task :default => :appium