dryrun 0.6.5 → 0.7.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a82bf4d7e5bf344587e52b51b8f51158ddd823f
4
- data.tar.gz: a1b1e5e4ac6a8799729cc3cb571d4cff148bf009
3
+ metadata.gz: 036e595b962647744176802351d6e161da574fe9
4
+ data.tar.gz: 242399841f07ea231618a27f6b2c75ba7d83f5b6
5
5
  SHA512:
6
- metadata.gz: cf77b30f4b44a504c84907254b89518771fa33437d56c25a89e08e05bb7a9065f7caeec293fd5adec950222ab1e294c157f2a3bfd27872f3d8bb3044f29d77ad
7
- data.tar.gz: ef0ac730b9d866d48090bdc7388179557b1878710c954830ea4c4b519894c4da3f40ed809f6ad826de3c08238eb397df1c5715765d890b4255338dbba38fd068
6
+ metadata.gz: b397ce280f7d1584c3dd8111bf0ccfcf2a523624cde0ba16e14ded13d33857c7ff5f0671f090984d8aaa946292ec9e1428845f598f5f6d6f65c4c3f373bd155b
7
+ data.tar.gz: e4a92ddc5395763d8d6d12722f04d634b286480b26c57a32446530b9ab666b98a440039f7cea371ab7073eb4748ff44a372b461960094aa28cea0b555fa48e65
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.3.0
@@ -1,4 +1,4 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  rvm:
4
- - 2.2.1
4
+ - 2.3.0
@@ -33,5 +33,8 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'bundler', '~> 1.7'
34
34
  spec.add_dependency 'colorize', '~> 0.7'
35
35
  spec.add_dependency 'oga', '~> 1.3.1'
36
+ spec.add_dependency 'highline', '~> 1.7'
37
+ spec.add_dependency 'adb-sdklib', '~> 0.0.3'
38
+ spec.add_dependency 'rjb', '>= 1.5.4'
36
39
 
37
40
  end
@@ -1,3 +1,4 @@
1
+ require 'adb-sdklib'
1
2
  require 'optparse'
2
3
  require 'colorize'
3
4
  require 'tmpdir'
@@ -5,11 +6,12 @@ require 'fileutils'
5
6
  require 'dryrun/github'
6
7
  require 'dryrun/version'
7
8
  require 'dryrun/android_project'
9
+ require "highline/import"
8
10
 
9
11
  module DryRun
10
12
  class MainApp
11
13
  def initialize(arguments)
12
-
14
+ outdated_verification
13
15
  @url = ['-h', '--help', '-v', '--version'].include?(arguments.first) ? nil : arguments.shift
14
16
 
15
17
  # defaults
@@ -65,6 +67,64 @@ module DryRun
65
67
  end
66
68
  end
67
69
 
70
+ def outdated_verification
71
+ is_up_to_date = DryrunUtils.is_up_to_date
72
+
73
+ if is_up_to_date
74
+ return
75
+ end
76
+
77
+ input = nil
78
+
79
+ begin
80
+ input = ask "\n#{'Your Dryrun version is outdated, want to update?'.yellow} #{'[Y/n]:'.white}"
81
+ end while !['y', 'n', 's'].include?(input.downcase)
82
+
83
+ if input.downcase.eql? 'y'
84
+ DryrunUtils.execute('gem update dryrun')
85
+ end
86
+
87
+ end
88
+
89
+ def pick_device()
90
+ if !Gem.win_platform?
91
+ sdk = `echo $ANDROID_HOME`.gsub("\n",'')
92
+ sdk = sdk + "/platform-tools/adb";
93
+ else
94
+ sdk = `echo %ANDROID_HOME%`.gsub("\n",'')
95
+ sdk = sdk + "/platform-tools/adb.exe"
96
+ end
97
+
98
+ puts "Searching for devices...".yellow
99
+ adb = AdbSdkLib::Adb.new(sdk)
100
+ devices = adb.devices;
101
+
102
+ if devices.empty?
103
+ puts "No devices attached, but I'll run anyway"
104
+ end
105
+
106
+ @device = nil
107
+
108
+ if devices.size >= 2
109
+ puts "Pick your device (1,2,3...):"
110
+
111
+ devices.each_with_index.map {|key, index| puts "#{index.to_s.green} - #{key} \n"}
112
+
113
+ a = gets.chomp
114
+
115
+ if a.match(/^\d+$/) && a.to_i <= (devices.length - 1) && a.to_i >= 0
116
+ @device = devices.to_a.at((a.to_i))[1]
117
+ else
118
+ @device = devices.first
119
+ end
120
+ else
121
+ @device = devices.first
122
+ end
123
+
124
+ puts "Picked #{@device.to_s.green}" if @device
125
+ end
126
+
127
+
68
128
  def android_home_is_defined
69
129
  if !Gem.win_platform?
70
130
  sdk = `echo $ANDROID_HOME`.gsub("\n",'')
@@ -82,6 +142,8 @@ module DryRun
82
142
  exit 1
83
143
  end
84
144
 
145
+ pick_device()
146
+
85
147
  github = Github.new(@url)
86
148
 
87
149
  unless github.is_valid
@@ -92,7 +154,7 @@ module DryRun
92
154
  # clone the repository
93
155
  repository_path = github.clone(@branch, @tag)
94
156
 
95
- android_project = AndroidProject.new(repository_path, @app_path, @custom_module, @flavour)
157
+ android_project = AndroidProject.new(repository_path, @app_path, @custom_module, @flavour, @device)
96
158
 
97
159
  # is a valid android project?
98
160
  unless android_project.is_valid
@@ -1,3 +1,4 @@
1
+ require 'adb-sdklib'
1
2
  require 'oga'
2
3
  require 'fileutils'
3
4
  require 'tempfile'
@@ -6,12 +7,13 @@ require_relative 'dryrun_utils'
6
7
 
7
8
  module DryRun
8
9
  class AndroidProject
9
- def initialize(path, custom_app_path, custom_module, flavour)
10
+ def initialize(path, custom_app_path, custom_module, flavour, device)
10
11
 
11
12
  @custom_app_path = custom_app_path
12
13
  @custom_module = custom_module
13
14
  @base_path = path
14
15
  @flavour = flavour
16
+ @device = device
15
17
 
16
18
  @settings_gradle_path = settings_gradle_file
17
19
 
@@ -113,10 +115,9 @@ module DryRun
113
115
  clear_app_data
114
116
 
115
117
  puts "Installing #{@package.green}...\n"
116
- puts "executing: #{execute_line.green}\n\n"
117
-
118
- DryrunUtils.execute(execute_line)
118
+ puts "executing: #{execute_line.green}\n"
119
119
 
120
+ @device.shell("#{execute_line}")
120
121
  end
121
122
 
122
123
  def is_gradle_wrapped
@@ -141,20 +142,16 @@ module DryRun
141
142
  [false, false]
142
143
  end
143
144
 
144
- def get_clear_app_command
145
- "adb shell pm clear #{@package}"
146
- end
147
-
148
145
  def get_uninstall_command
149
- "adb uninstall #{@package}"
146
+ "adb uninstall \"#{@package}\""
150
147
  end
151
148
 
152
149
  def clear_app_data
153
- system(get_clear_app_command)
150
+ @device.shell("pm clear #{@package}")
154
151
  end
155
152
 
156
153
  def uninstall_application
157
- DryrunUtils.execute(get_uninstall_command) # > /dev/null 2>&1")
154
+ @device.shell("pm uninstall #{@package}")
158
155
  end
159
156
 
160
157
  def get_execution_line_command(path_to_sample)
@@ -175,7 +172,7 @@ module DryRun
175
172
 
176
173
  manifest_file.close
177
174
 
178
- "adb shell am start -n \"#{get_launchable_activity}\" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER"
175
+ return "am start -n \"#{get_launchable_activity}\" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER"
179
176
  end
180
177
 
181
178
  def get_manifest(path_to_sample)
@@ -1,3 +1,6 @@
1
+ require 'open-uri'
2
+ require 'dryrun/version'
3
+
1
4
  module DryRun
2
5
  class DryrunUtils
3
6
 
@@ -9,7 +12,23 @@ module DryRun
9
12
  puts " $ #{command}\n".yellow
10
13
  puts "======================================================\n\n"
11
14
  exit 1
12
- end
15
+ end
16
+ end
17
+
18
+ def self.get_latest_version
19
+ url = 'https://raw.githubusercontent.com/cesarferreira/dryrun/master/lib/dryrun/version.rb'
20
+ page_string = nil
21
+
22
+ open(url) do |f|
23
+ page_string = f.read
24
+ end
25
+
26
+ page_string[/#{Regexp.escape('\'')}(.*?)#{Regexp.escape('\'')}/m, 1]
27
+ end
28
+
29
+ def self.is_up_to_date
30
+ latest = get_latest_version
31
+ latest.eql? DryRun::VERSION
13
32
  end
14
- end
15
- end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module DryRun
2
- VERSION = '0.6.5'
2
+ VERSION = '0.7.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dryrun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - cesar ferreira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-12 00:00:00.000000000 Z
11
+ date: 2016-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -94,6 +94,48 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.3.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: highline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.7'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: adb-sdklib
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.0.3
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.0.3
125
+ - !ruby/object:Gem::Dependency
126
+ name: rjb
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.5.4
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.5.4
97
139
  description: Tool to try any android library hosted online directly from the command
98
140
  line
99
141
  email:
@@ -144,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
186
  version: '0'
145
187
  requirements: []
146
188
  rubyforge_project:
147
- rubygems_version: 2.4.5.1
189
+ rubygems_version: 2.5.1
148
190
  signing_key:
149
191
  specification_version: 4
150
192
  summary: Tool to try any android library hosted online directly from the command line