blade-sauce_labs_plugin 0.6.3 → 0.7.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: b312e1db63e11d119708eacf8c5f2486afff8d5d
4
- data.tar.gz: 87cbcd980f4de9aef283c6ca90c961d0042bcfe4
3
+ metadata.gz: e13a784ec9bda8cf14efc6a5102650249b77ef8a
4
+ data.tar.gz: 4acbde7b286b404ff8ceb2c3af154e4f3c2836dc
5
5
  SHA512:
6
- metadata.gz: c5d781465516ef2bbb225c6ba6cd322c074fe9625efe1b24a8fa480be2811c6b5d6780d49708be0d89ee177219de41e9aa5b2b1100217de6d5b75362f766264f
7
- data.tar.gz: a1591257f7ebd9db176777f5ee5d2899f25198075d32fc87882d28468b51de66029daf794d2c175a492614549e8a7eb860ab8f3fd8bfd4a4fbda233d2fe09054
6
+ metadata.gz: 6ae0ebe2054a00738274df8386e83617c2012ae26ca9f480b98264d0d56bab64e2cc12299cc95776d752e051397b84e42e44e8fd6e0a85214331582d11485142
7
+ data.tar.gz: b17d0ee9c25efaa8da7812798953a8892defd55f6f6d166d8fff40c918cb7fd902f5f4f3864afed22428876bc0230a4ddc512411203256db06b914018ed42915
@@ -4,13 +4,6 @@ require "json"
4
4
  module Blade::SauceLabsPlugin::Client
5
5
  extend self
6
6
 
7
- ALIASES = {
8
- "ie" => "Internet Explorer",
9
- "IE" => "Internet Explorer"
10
- }
11
-
12
- MOBILE_PATTERN = /iphone|ipad|android/i
13
-
14
7
  delegate :config, :username, :access_key, :debug?, to: Blade::SauceLabsPlugin
15
8
 
16
9
  def request(method, path, params = {})
@@ -68,8 +61,7 @@ module Blade::SauceLabsPlugin::Client
68
61
  end
69
62
 
70
63
  def platforms_for_browser(browser)
71
- long_name = find_browser_long_name(browser[:name])
72
- platforms = available_platforms_by_browser[long_name]
64
+ platforms = available_platforms_for_browser(browser)
73
65
 
74
66
  versions_by_os = {}
75
67
  platforms.each do |os, details|
@@ -112,19 +104,32 @@ module Blade::SauceLabsPlugin::Client
112
104
  end
113
105
  end
114
106
 
115
- def find_browser_long_name(name)
116
- if match = ALIASES[name.to_s]
117
- match
118
- else
119
- available_platforms_by_browser.keys.detect do |long_name|
120
- long_name =~ Regexp.new(name, Regexp::IGNORECASE)
107
+ def available_platforms_for_browser(browser)
108
+ {}.tap do |platforms|
109
+ find_browser_long_names(browser[:name]).each do |long_name|
110
+ available_platforms_by_browser[long_name].each do |os, details|
111
+
112
+ if platforms[os]
113
+ platforms[os][:versions] = (platforms[os][:versions] + details[:versions]).compact.uniq
114
+
115
+ details[:api].each do |key, values|
116
+ if platforms[os][:api][key]
117
+ platforms[os][:api][key] = (platforms[os][:api][key] + values).compact.uniq
118
+ else
119
+ platforms[os][:api][key] = values
120
+ end
121
+ end
122
+ else
123
+ platforms[os] = details
124
+ end
125
+ end
121
126
  end
122
127
  end
123
128
  end
124
129
 
125
130
  def available_platforms_by_browser
126
131
  @available_platforms_by_browser ||= {}.tap do |by_browser|
127
- available_platforms.group_by { |p| p[:api_name] }.each do |api_name, platforms|
132
+ available_platforms.group_by { |p| [ p[:device], p[:api_name] ].compact.join(":") }.each do |api_name, platforms|
128
133
  long_name = platforms.first[:long_name]
129
134
  by_browser[long_name] = {}
130
135
 
@@ -158,6 +163,14 @@ module Blade::SauceLabsPlugin::Client
158
163
  end
159
164
  end
160
165
 
166
+ def find_browser_long_names(name)
167
+ pattern = Regexp.new(name, Regexp::IGNORECASE)
168
+ available_platforms_by_browser.keys.select do |long_name|
169
+ long_name =~ pattern
170
+ end
171
+ end
172
+
173
+
161
174
  def available_platforms
162
175
  @available_platforms ||= JSON.parse(connection.get("/rest/v1/info/platforms/webdriver").body).map(&:symbolize_keys)
163
176
  end
@@ -1,5 +1,5 @@
1
1
  module Blade
2
2
  module SauceLabsPlugin
3
- VERSION = "0.6.3"
3
+ VERSION = "0.7.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blade-sauce_labs_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javan Makhmali
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-04 00:00:00.000000000 Z
11
+ date: 2017-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  version: '0'
193
193
  requirements: []
194
194
  rubyforge_project:
195
- rubygems_version: 2.5.1
195
+ rubygems_version: 2.6.10
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: Blade Runner plugin for Sauce Labs (saucelabs.com)