browserstack-local 0.1.1 → 0.2.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.
Files changed (3) hide show
  1. checksums.yaml +7 -7
  2. data/lib/browserstack/local.rb +35 -24
  3. metadata +21 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- data.tar.gz: 5d165e23a715b330fcf2c3dbe33860e2e2f5a0c8
4
- metadata.gz: 8be0a0a95c792545d44b01d8b43556122f415c4d
5
- SHA512:
6
- data.tar.gz: 0b76a4768326160eda7215882342bb014171c208e515b7557ec9fdab85c258b0589bb88eef0dc4671f942009334b358e667913bb9b81beff227dda22e02f93dc
7
- metadata.gz: e244686c43bbfaf5c5b38f41ad23f9e328696a2b9b37e7b19d5f4eccfe3605658dd4283c03bead096cdfa2895fe7eef326d96c179cbb0b9fd2ed8a84324ffc0c
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d541957388e64cbdad7bc093668847a766e7f9c5
4
+ data.tar.gz: f2bcb422bfc207099bd1c0b6850df622604c273c
5
+ SHA512:
6
+ metadata.gz: 95efa89f9cfd3caae8aa800138560b5a77ba079d7d37664b92105dd1d6bb4097f620d4c0741ea13d4394a92be655f114b04276934a8fb7a7f5b93b5ecea81953
7
+ data.tar.gz: 437c1c49a5c1fbb67d80e326a7128a19c21cea2a30cbe72577987066d7b5a94cded3508ffa9bfe1dedb2a889364a0874a94c6b178b88dd5c25a6167408487ef9
@@ -1,5 +1,6 @@
1
1
  require 'browserstack/localbinary'
2
2
  require 'browserstack/localexception'
3
+ require 'json'
3
4
 
4
5
  module BrowserStack
5
6
 
@@ -75,36 +76,29 @@ class Local
75
76
  end
76
77
 
77
78
  if defined? spawn
78
- @process = IO.popen(command_args)
79
+ @process = IO.popen(start_command_args)
79
80
  else
80
- @process = IO.popen(command)
81
+ @process = IO.popen(start_command)
81
82
  end
82
- @stdout = File.open(@logfile, "r")
83
83
 
84
84
  while true
85
85
  begin
86
- line = @stdout.readline
86
+ line = @process.readline
87
87
  rescue EOFError => e
88
88
  sleep 1
89
89
  next
90
90
  end
91
- break if line.nil?
92
- if line.match(/\*\*\* Error\:/)
93
- @stdout.close
94
- raise BrowserStack::LocalException.new(line)
91
+
92
+ data = JSON.parse(line) rescue {"message" => "Unable to parse daemon mode JSON output"}
93
+ if data['state'].to_s != "connected"
94
+ @process.close
95
+ raise BrowserStack::LocalException.new(data["message"])
95
96
  return
96
- end
97
- if line.strip == "Press Ctrl-C to exit"
98
- @pid = @process.pid
99
- @stdout.close
97
+ else
98
+ @pid = data["pid"]
100
99
  break
101
100
  end
102
101
  end
103
-
104
- while true
105
- break if self.isRunning
106
- sleep 1
107
- end
108
102
  end
109
103
 
110
104
  def isRunning
@@ -113,20 +107,37 @@ class Local
113
107
 
114
108
  def stop
115
109
  return if @pid.nil?
116
- Process.kill("TERM", @pid) rescue Process.kill(9, @pid)
117
110
  @process.close
118
- @pid = nil if @is_windows
119
- while self.isRunning
120
- sleep 1
111
+ if defined? spawn
112
+ @process = IO.popen(stop_command_args)
113
+ else
114
+ @process = IO.popen(stop_command)
121
115
  end
116
+ @process.close
117
+ @pid = nil
122
118
  end
123
119
 
124
120
  def command
125
- "#{@exec} #{@binary_path} -logFile '#{@logfile}' #{@folder_flag} #{@key} #{@folder_path} #{@force_local_flag} #{@local_identifier_flag} #{@only_flag} #{@only_automate_flag} #{@proxy_host} #{@proxy_port} #{@proxy_user} #{@proxy_pass} #{@force_proxy_flag} #{@force_flag} #{@verbose_flag} #{@hosts} #{@user_arguments.join(" ")}".strip
121
+ start_command
122
+ end
123
+
124
+ def start_command
125
+ "#{@binary_path} -d start -logFile '#{@logfile}' #{@folder_flag} #{@key} #{@folder_path} #{@force_local_flag} #{@local_identifier_flag} #{@only_flag} #{@only_automate_flag} #{@proxy_host} #{@proxy_port} #{@proxy_user} #{@proxy_pass} #{@force_proxy_flag} #{@force_flag} #{@verbose_flag} #{@hosts} #{@user_arguments.join(" ")} 2>&1".strip
126
+ end
127
+
128
+ def start_command_args
129
+ args = ["#{@binary_path}", "-d", "start", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_proxy_flag}","#{@force_flag}", "#{@verbose_flag}", "#{@hosts}", "#{@user_arguments.join(" ")}"]
130
+ args = args.select {|a| a.to_s != "" }
131
+ args.push(:err => [:child, :out])
132
+ args
133
+ end
134
+
135
+ def stop_command
136
+ "#{@binary_path} -d stop #{@local_identifier_flag}".strip
126
137
  end
127
138
 
128
- def command_args
129
- args = ["#{@binary_path}", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_proxy_flag}","#{@force_flag}", "#{@verbose_flag}", "#{@hosts}", "#{@user_arguments.join(" ")}"]
139
+ def stop_command_args
140
+ args = ["#{@binary_path}", "-d", "stop", "#{@local_identifier_flag}"]
130
141
  args = args.select {|a| a.to_s != "" }
131
142
  args.push(:err => [:child, :out])
132
143
  args
metadata CHANGED
@@ -1,54 +1,47 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: browserstack-local
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  platform: ruby
6
- authors:
7
- - ""
6
+ authors:
7
+ - BrowserStack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2016-05-04 00:00:00 Z
11
+ date: 2016-05-04 00:00:00.000000000 Z
13
12
  dependencies: []
14
-
15
13
  description: Ruby bindings for BrowserStack Local
16
14
  email: support@browserstack.com
17
15
  executables: []
18
-
19
16
  extensions: []
20
-
21
17
  extra_rdoc_files: []
22
-
23
- files:
18
+ files:
24
19
  - lib/browserstack/local.rb
25
20
  - lib/browserstack/localbinary.rb
26
21
  - lib/browserstack/localexception.rb
27
22
  homepage: http://rubygems.org/gems/browserstack-local
28
- licenses:
23
+ licenses:
29
24
  - MIT
30
25
  metadata: {}
31
-
32
26
  post_install_message:
33
27
  rdoc_options: []
34
-
35
- require_paths:
28
+ require_paths:
36
29
  - lib
37
- required_ruby_version: !ruby/object:Gem::Requirement
38
- requirements:
39
- - &id001
40
- - ">="
41
- - !ruby/object:Gem::Version
42
- version: "0"
43
- required_rubygems_version: !ruby/object:Gem::Requirement
44
- requirements:
45
- - *id001
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
46
40
  requirements: []
47
-
48
41
  rubyforge_project:
49
- rubygems_version: 2.0.14
42
+ rubygems_version: 2.4.5
50
43
  signing_key:
51
44
  specification_version: 4
52
45
  summary: BrowserStack Local
53
46
  test_files: []
54
-
47
+ has_rdoc: