eyes_core 3.6.5 → 3.6.6
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 +4 -4
- data/lib/applitools/connectivity/server_connector.rb +6 -7
- data/lib/applitools/core/batch_info.rb +2 -1
- data/lib/applitools/core/eyes_base.rb +30 -20
- data/lib/applitools/core/eyes_screenshot.rb +7 -0
- data/lib/applitools/core/match_single_check_data.rb +51 -51
- data/lib/applitools/core/match_single_task.rb +3 -3
- data/lib/applitools/core/match_window_data.rb +16 -18
- data/lib/applitools/core/match_window_task.rb +11 -7
- data/lib/applitools/eyes_logger.rb +1 -1
- data/lib/applitools/images/eyes.rb +3 -3
- data/lib/applitools/images/eyes_images_screenshot.rb +2 -1
- data/lib/applitools/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0af160a9d4c23132f0157a2f7c1f9c3e6ee5a70
|
4
|
+
data.tar.gz: b784261c4ab25b34cb427b86a5c5ed516c34db5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f071a1df3b3d861ab0d898f83c1d894efdb6a47e33c28b85424472f958bd6bc18b06cd226941fa93d70fa36dd7574533c8716b5f1903f1494b39ed2882f427d
|
7
|
+
data.tar.gz: 39f1310318b3ac8c2c8aae040c8f4ce12fd606944849580d7f1a566840e50fa71636ecb6c667dbefc1bdec37ac4fe573457ef2d004f467f3f36df08fb6ef4bc9
|
@@ -5,12 +5,9 @@ Oj.default_options = { :mode => :compat }
|
|
5
5
|
require 'uri'
|
6
6
|
|
7
7
|
module Applitools::Connectivity
|
8
|
-
|
9
|
-
extend self
|
10
|
-
|
8
|
+
class ServerConnector
|
11
9
|
DEFAULT_SERVER_URL = 'https://eyessdk.applitools.com'.freeze
|
12
10
|
|
13
|
-
|
14
11
|
SSL_CERT = File.join(File.dirname(File.expand_path(__FILE__)), '../../../certs/cacert.pem').to_s.freeze
|
15
12
|
DEFAULT_TIMEOUT = 300
|
16
13
|
|
@@ -26,6 +23,10 @@ module Applitools::Connectivity
|
|
26
23
|
attr_reader :endpoint_url
|
27
24
|
attr_reader :proxy
|
28
25
|
|
26
|
+
def initialize(url = nil)
|
27
|
+
self.server_url = url
|
28
|
+
end
|
29
|
+
|
29
30
|
def server_url=(url)
|
30
31
|
@server_url = url.nil? ? DEFAULT_SERVER_URL : url
|
31
32
|
unless @server_url.is_a? String
|
@@ -53,7 +54,7 @@ module Applitools::Connectivity
|
|
53
54
|
json_data = Oj.dump(Applitools::Utils.camelcase_hash_keys(data.to_hash)).force_encoding('BINARY')
|
54
55
|
body = [json_data.length].pack('L>') + json_data + data.screenshot
|
55
56
|
Applitools::EyesLogger.debug 'Sending match data...'
|
56
|
-
#Applitools::EyesLogger.debug json_data
|
57
|
+
# Applitools::EyesLogger.debug json_data
|
57
58
|
res = post(URI.join(endpoint_url, session.id.to_s), content_type: 'application/octet-stream', body: body)
|
58
59
|
raise Applitools::EyesError.new("Request failed: #{res.status} #{res.headers}") unless res.success?
|
59
60
|
Applitools::MatchResult.new Oj.load(res.body)
|
@@ -139,7 +140,5 @@ module Applitools::Connectivity
|
|
139
140
|
delay = [MAX_LONG_REQUEST_DELAY, (delay * LONG_REQUEST_DELAY_MULTIPLICATIVE_INCREASE_FACTOR).round].min
|
140
141
|
end
|
141
142
|
end
|
142
|
-
|
143
|
-
include Applitools::MethodTracer
|
144
143
|
end
|
145
144
|
end
|
@@ -22,7 +22,7 @@ module Applitools
|
|
22
22
|
CONTEXT_RELATIVE = Applitools::EyesScreenshot::COORDINATE_TYPES[:context_relative].freeze
|
23
23
|
|
24
24
|
def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
|
25
|
-
def_delegators '
|
25
|
+
def_delegators '@server_connector', :api_key, :api_key=, :server_url, :server_url=,
|
26
26
|
:set_proxy, :proxy, :proxy=
|
27
27
|
|
28
28
|
# @!attribute [rw] verbose_results
|
@@ -42,7 +42,7 @@ module Applitools
|
|
42
42
|
abstract_method :get_viewport_size, true
|
43
43
|
|
44
44
|
def initialize(server_url = nil)
|
45
|
-
Applitools::Connectivity::ServerConnector.server_url
|
45
|
+
self.server_connector = Applitools::Connectivity::ServerConnector.new(server_url)
|
46
46
|
self.disabled = false
|
47
47
|
@viewport_size = nil
|
48
48
|
self.match_timeout = DEFAULT_MATCH_TIMEOUT
|
@@ -124,7 +124,7 @@ module Applitools
|
|
124
124
|
end
|
125
125
|
|
126
126
|
logger.info 'Aborting server session...'
|
127
|
-
|
127
|
+
server_connector.stop_session(running_session, true, false)
|
128
128
|
logger.info '---Test aborted'
|
129
129
|
|
130
130
|
rescue Applitools::EyesError => e
|
@@ -184,7 +184,10 @@ module Applitools
|
|
184
184
|
raise Applitools::EyesError.new 'Eyes not open' unless open?
|
185
185
|
Applitools::ArgumentGuard.not_nil region_provider, 'region_provider'
|
186
186
|
|
187
|
-
logger.info
|
187
|
+
logger.info(
|
188
|
+
"check_window_base(#{region_provider}, #{match_window_data.tag}, #{match_window_data.ignore_mismatch}," \
|
189
|
+
" #{retry_timeout})"
|
190
|
+
)
|
188
191
|
|
189
192
|
tag = '' if tag.nil?
|
190
193
|
|
@@ -196,16 +199,18 @@ module Applitools
|
|
196
199
|
logger,
|
197
200
|
running_session,
|
198
201
|
match_timeout,
|
199
|
-
app_output_provider
|
202
|
+
app_output_provider,
|
203
|
+
server_connector
|
200
204
|
)
|
201
205
|
end
|
202
206
|
|
203
207
|
logger.info 'Calling match_window...'
|
204
|
-
result = @match_window_task.match_window(
|
208
|
+
result = @match_window_task.match_window(
|
209
|
+
match_window_data,
|
205
210
|
last_screenshot: last_screenshot,
|
206
211
|
region_provider: region_provider,
|
207
212
|
should_match_window_run_once_on_timeout: should_match_window_run_once_on_timeout,
|
208
|
-
retry_timeout: retry_timeout
|
213
|
+
retry_timeout: retry_timeout
|
209
214
|
)
|
210
215
|
logger.info 'match_window done!'
|
211
216
|
|
@@ -232,7 +237,6 @@ module Applitools
|
|
232
237
|
result
|
233
238
|
end
|
234
239
|
|
235
|
-
|
236
240
|
def check_single_base(region_provider, retry_timeout, match_window_data)
|
237
241
|
if disabled?
|
238
242
|
logger.info "#{__method__} Ignored"
|
@@ -244,7 +248,10 @@ module Applitools
|
|
244
248
|
raise Applitools::EyesError.new 'Eyes not open' unless open?
|
245
249
|
Applitools::ArgumentGuard.not_nil region_provider, 'region_provider'
|
246
250
|
|
247
|
-
logger.info
|
251
|
+
logger.info(
|
252
|
+
"check_single_base(#{region_provider}, #{match_window_data.tag}, #{match_window_data.ignore_mismatch}," \
|
253
|
+
" #{retry_timeout})"
|
254
|
+
)
|
248
255
|
|
249
256
|
tag = '' if tag.nil?
|
250
257
|
|
@@ -258,17 +265,19 @@ module Applitools
|
|
258
265
|
match_window_data.update_baseline_if_new = save_new_tests
|
259
266
|
match_window_data.update_baseline_if_different = save_failed_tests
|
260
267
|
match_window_task = Applitools::MatchSingleTask.new(
|
261
|
-
|
262
|
-
|
263
|
-
|
268
|
+
logger,
|
269
|
+
match_timeout,
|
270
|
+
app_output_provider,
|
271
|
+
server_connector
|
264
272
|
)
|
265
273
|
|
266
274
|
logger.info 'Calling match_window...'
|
267
|
-
result = match_window_task.match_window(
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
275
|
+
result = match_window_task.match_window(
|
276
|
+
match_window_data,
|
277
|
+
last_screenshot: last_screenshot,
|
278
|
+
region_provider: region_provider,
|
279
|
+
should_match_window_run_once_on_timeout: should_match_window_run_once_on_timeout,
|
280
|
+
retry_timeout: retry_timeout
|
272
281
|
) do |match_results|
|
273
282
|
results = match_results.original_results
|
274
283
|
not_aborted = !results['isAborted']
|
@@ -336,7 +345,7 @@ module Applitools
|
|
336
345
|
|
337
346
|
logger.info "Automatically save test? #{save}"
|
338
347
|
|
339
|
-
results =
|
348
|
+
results = server_connector.stop_session running_session, false, save
|
340
349
|
|
341
350
|
results.is_new = is_new_session
|
342
351
|
results.url = session_results_url
|
@@ -370,7 +379,8 @@ module Applitools
|
|
370
379
|
private
|
371
380
|
|
372
381
|
attr_accessor :running_session, :last_screenshot, :current_app_name, :test_name, :session_type,
|
373
|
-
:scale_provider, :session_start_info, :should_match_window_run_once_on_timeout, :app_output_provider,
|
382
|
+
:scale_provider, :session_start_info, :should_match_window_run_once_on_timeout, :app_output_provider,
|
383
|
+
:failed, :server_connector
|
374
384
|
|
375
385
|
attr_reader :user_inputs
|
376
386
|
|
@@ -489,7 +499,7 @@ module Applitools
|
|
489
499
|
branch_name: branch_name, parent_branch_name: parent_branch_name
|
490
500
|
|
491
501
|
logger.info 'Starting server session...'
|
492
|
-
self.running_session =
|
502
|
+
self.running_session = server_connector.start_session session_start_info
|
493
503
|
|
494
504
|
logger.info "Server session ID is #{running_session.id}"
|
495
505
|
test_info = "'#{test_name}' of '#{app_name}' #{app_env}"
|
@@ -21,6 +21,13 @@ module Applitools
|
|
21
21
|
abstract_method :location_in_screenshot, false
|
22
22
|
abstract_method :intersected_region, false
|
23
23
|
|
24
|
+
def sub_screenshots(regions, coordinate_type)
|
25
|
+
Applitools::ArgumentGuard.is_a? regions, 'regions', Enumerable
|
26
|
+
regions.map do |region|
|
27
|
+
sub_screenshot(region, coordinate_type, false, true)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
24
31
|
def convert_region_location(region, from, to)
|
25
32
|
Applitools::ArgumentGuard.not_nil region, 'region'
|
26
33
|
Applitools::ArgumentGuard.is_a? region, 'region', Applitools::Region
|
@@ -4,59 +4,59 @@ module Applitools
|
|
4
4
|
class << self
|
5
5
|
def default_data
|
6
6
|
{
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
'UserInputs' => [],
|
24
|
-
'ImageMatchSettings' => {
|
25
|
-
'MatchLevel' => 'None',
|
26
|
-
'SplitTopHeight' => 0,
|
27
|
-
'SplitBottomHeight' => 0,
|
28
|
-
'IgnoreCaret' => false,
|
29
|
-
'Ignore' => [],
|
30
|
-
'Exact' => {
|
31
|
-
'MinDiffIntensity' => 0,
|
32
|
-
'MinDiffWidth' => 0,
|
33
|
-
'MinDiffHeight' => 0,
|
34
|
-
'MatchThreshold' => 0
|
35
|
-
}
|
36
|
-
},
|
37
|
-
'IgnoreExpectedOutputSettings' => false,
|
38
|
-
'ForceMatch' => false,
|
39
|
-
'ForceMismatch' => false,
|
40
|
-
'IgnoreMatch' => false,
|
41
|
-
'IgnoreMismatch' => false,
|
42
|
-
'Trim' => {
|
43
|
-
'Enabled' => false,
|
44
|
-
'ForegroundIntensity' => 0,
|
45
|
-
'MinEdgeLength' => 0
|
46
|
-
}
|
47
|
-
},
|
48
|
-
'Id' => nil,
|
7
|
+
'startInfo' => {
|
8
|
+
'agentId' => nil,
|
9
|
+
'appIdOrName' => nil,
|
10
|
+
'verId' => nil,
|
11
|
+
'scenarioIdOrName' => nil,
|
12
|
+
'batchInfo' => {},
|
13
|
+
'envName' => nil,
|
14
|
+
'environment' => {},
|
15
|
+
'defaultMatchSettings' => nil,
|
16
|
+
'branchName' => nil,
|
17
|
+
'parentBranchName' => nil
|
18
|
+
},
|
19
|
+
'IgnoreMismatch' => false,
|
20
|
+
'MismatchWait' => 0,
|
21
|
+
'Options' => {
|
22
|
+
'Name' => nil,
|
49
23
|
'UserInputs' => [],
|
50
|
-
'
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
24
|
+
'ImageMatchSettings' => {
|
25
|
+
'MatchLevel' => 'None',
|
26
|
+
'SplitTopHeight' => 0,
|
27
|
+
'SplitBottomHeight' => 0,
|
28
|
+
'IgnoreCaret' => false,
|
29
|
+
'Ignore' => [],
|
30
|
+
'Exact' => {
|
31
|
+
'MinDiffIntensity' => 0,
|
32
|
+
'MinDiffWidth' => 0,
|
33
|
+
'MinDiffHeight' => 0,
|
34
|
+
'MatchThreshold' => 0
|
35
|
+
}
|
56
36
|
},
|
57
|
-
'
|
58
|
-
'
|
59
|
-
'
|
37
|
+
'IgnoreExpectedOutputSettings' => false,
|
38
|
+
'ForceMatch' => false,
|
39
|
+
'ForceMismatch' => false,
|
40
|
+
'IgnoreMatch' => false,
|
41
|
+
'IgnoreMismatch' => false,
|
42
|
+
'Trim' => {
|
43
|
+
'Enabled' => false,
|
44
|
+
'ForegroundIntensity' => 0,
|
45
|
+
'MinEdgeLength' => 0
|
46
|
+
}
|
47
|
+
},
|
48
|
+
'Id' => nil,
|
49
|
+
'UserInputs' => [],
|
50
|
+
'AppOutput' => {
|
51
|
+
'Screenshot64' => nil,
|
52
|
+
'ScreenshotUrl' => nil,
|
53
|
+
'Title' => nil,
|
54
|
+
'IsPrimary' => false,
|
55
|
+
'Elapsed' => 0
|
56
|
+
},
|
57
|
+
'Tag' => nil,
|
58
|
+
'updateBaselineIfDifferent' => false,
|
59
|
+
'updateBaselineIfNew' => false
|
60
60
|
}
|
61
61
|
end
|
62
62
|
end
|
@@ -2,15 +2,15 @@ require 'base64'
|
|
2
2
|
require_relative 'match_window_task'
|
3
3
|
module Applitools
|
4
4
|
class MatchSingleTask < MatchWindowTask
|
5
|
-
def initialize(logger, retry_timeout, app_output_provider)
|
6
|
-
super(logger, 'nil', retry_timeout, app_output_provider)
|
5
|
+
def initialize(logger, retry_timeout, app_output_provider, server_connector)
|
6
|
+
super(logger, 'nil', retry_timeout, app_output_provider, server_connector)
|
7
7
|
end
|
8
8
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def perform_match(match_window_data)
|
12
12
|
Applitools::ArgumentGuard.is_a? match_window_data, 'match_window_data', Applitools::MatchSingleCheckData
|
13
|
-
|
13
|
+
server_connector.match_single_window match_window_data
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -35,7 +35,7 @@ module Applitools
|
|
35
35
|
'IgnoreMatch' => false,
|
36
36
|
'IgnoreMismatch' => false,
|
37
37
|
'Trim' => {
|
38
|
-
'Enabled' => false
|
38
|
+
'Enabled' => false
|
39
39
|
}
|
40
40
|
},
|
41
41
|
'Id' => nil,
|
@@ -51,11 +51,11 @@ module Applitools
|
|
51
51
|
}
|
52
52
|
end
|
53
53
|
|
54
|
-
def valid_region(
|
54
|
+
def valid_region(_r)
|
55
55
|
true
|
56
56
|
end
|
57
57
|
|
58
|
-
def valid_input(
|
58
|
+
def valid_input(_i)
|
59
59
|
true
|
60
60
|
end
|
61
61
|
end
|
@@ -111,36 +111,32 @@ module Applitools
|
|
111
111
|
end
|
112
112
|
|
113
113
|
def read_target(target, driver)
|
114
|
-
#options
|
114
|
+
# options
|
115
115
|
%w(trim).each do |field|
|
116
116
|
send("#{field}=", target.options[field.to_sym])
|
117
117
|
end
|
118
|
-
#ignored regions
|
118
|
+
# ignored regions
|
119
119
|
target.ignored_regions.each do |r|
|
120
120
|
case r
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
121
|
+
when Proc
|
122
|
+
region = r.call(driver)
|
123
|
+
@ignored_regions << Applitools::Region.from_location_size(region.location, region.size)
|
124
|
+
@need_convert_ignored_regions_coordinates = true
|
125
|
+
when Applitools::Region
|
126
|
+
@ignored_regions << r
|
127
|
+
@need_convert_ignored_regions_coordinates = true
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
132
|
def ignore_mismatch
|
133
|
-
|
133
|
+
current_data['IgnoreMismatch']
|
134
134
|
end
|
135
135
|
|
136
136
|
def tag
|
137
137
|
current_data['Tag']
|
138
138
|
end
|
139
139
|
|
140
|
-
def screenshot
|
141
|
-
app_output.screenshot.image.to_blob
|
142
|
-
end
|
143
|
-
|
144
140
|
def trim=(value)
|
145
141
|
current_data['Options']['Trim']['Enabled'] = value ? true : false
|
146
142
|
end
|
@@ -154,7 +150,9 @@ module Applitools
|
|
154
150
|
end
|
155
151
|
|
156
152
|
def to_hash
|
157
|
-
raise Applitools::EyesError.new
|
153
|
+
raise Applitools::EyesError.new(
|
154
|
+
'You should convert coordinates for ignored_regions!'
|
155
|
+
) if @need_convert_ignored_regions_coordinates
|
158
156
|
current_data.dup
|
159
157
|
end
|
160
158
|
|
@@ -6,12 +6,14 @@ module Applitools
|
|
6
6
|
|
7
7
|
attr_reader :logger, :running_session, :default_retry_timeout, :app_output_provider
|
8
8
|
|
9
|
-
def initialize(logger, running_session, retry_timeout, app_output_provider)
|
9
|
+
def initialize(logger, running_session, retry_timeout, app_output_provider, server_connector)
|
10
|
+
Applitools::ArgumentGuard.is_a? server_connector, 'server_connector', Applitools::Connectivity::ServerConnector
|
10
11
|
@logger = logger
|
11
12
|
@running_session = running_session
|
12
13
|
# @driver = driver
|
13
14
|
@default_retry_timeout = retry_timeout
|
14
15
|
@app_output_provider = app_output_provider
|
16
|
+
self.server_connector = server_connector
|
15
17
|
|
16
18
|
ArgumentGuard.not_nil logger, 'logger'
|
17
19
|
ArgumentGuard.not_nil running_session, 'running_session'
|
@@ -50,11 +52,11 @@ module Applitools
|
|
50
52
|
match_result = perform_match(match_window_data)
|
51
53
|
retry_time = Time.now - start
|
52
54
|
|
53
|
-
if block_given?
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
block_retry = if block_given?
|
56
|
+
yield(match_result)
|
57
|
+
else
|
58
|
+
false
|
59
|
+
end
|
58
60
|
|
59
61
|
while retry_time < retry_timeout && !(block_retry || match_result.as_expected?)
|
60
62
|
sleep MATCH_INTERVAL
|
@@ -83,9 +85,11 @@ module Applitools
|
|
83
85
|
|
84
86
|
private
|
85
87
|
|
88
|
+
attr_accessor :server_connector
|
89
|
+
|
86
90
|
def perform_match(match_window_data)
|
87
91
|
Applitools::ArgumentGuard.is_a? match_window_data, 'match_window_data', Applitools::MatchWindowData
|
88
|
-
|
92
|
+
server_connector.match_window running_session, match_window_data
|
89
93
|
end
|
90
94
|
end
|
91
95
|
end
|
@@ -14,7 +14,7 @@ module Applitools::EyesLogger
|
|
14
14
|
def self.add_thread_id_to_log_handler!(log_handler)
|
15
15
|
original_formatter = Logger::Formatter.new
|
16
16
|
log_handler.formatter = proc do |severity, datetime, progname, msg|
|
17
|
-
updated_progname = "#{progname
|
17
|
+
updated_progname = "#{progname} (#{Thread.current.object_id})"
|
18
18
|
original_formatter.call(severity, datetime, updated_progname, msg.dump)
|
19
19
|
end
|
20
20
|
end
|
@@ -97,9 +97,9 @@ module Applitools::Images
|
|
97
97
|
self.screenshot = EyesImagesScreenshot.new image
|
98
98
|
|
99
99
|
mr = check_single_base(
|
100
|
-
|
101
|
-
|
102
|
-
|
100
|
+
region_provider,
|
101
|
+
target.options[:timeout] || Applitools::EyesBase::USE_DEFAULT_TIMEOUT,
|
102
|
+
match_window_data
|
103
103
|
)
|
104
104
|
mr
|
105
105
|
end
|
@@ -73,13 +73,14 @@ module Applitools::Images
|
|
73
73
|
convert_location location, CONTEXT_RELATIVE, SCREENSHOT_AS_IS
|
74
74
|
end
|
75
75
|
|
76
|
-
def sub_screenshot(region, coordinates_type, throw_if_clipped)
|
76
|
+
def sub_screenshot(region, coordinates_type, throw_if_clipped = false, force_nil_if_clipped = false)
|
77
77
|
Applitools::ArgumentGuard.not_nil region, 'region'
|
78
78
|
Applitools::ArgumentGuard.not_nil coordinates_type, 'coordinates_type'
|
79
79
|
|
80
80
|
sub_screen_region = intersected_region region, coordinates_type, SCREENSHOT_AS_IS
|
81
81
|
|
82
82
|
if sub_screen_region.empty? || (throw_if_clipped && !region.size_equals?(sub_screen_region))
|
83
|
+
return nil if force_nil_if_clipped
|
83
84
|
Applitools::OutOfBoundsException.new "Region #{sub_screen_region} (#{coordinates_type}) is out of " \
|
84
85
|
" screenshot bounds #{bounds}"
|
85
86
|
end
|
data/lib/applitools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyes_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.6.
|
4
|
+
version: 3.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oily_png
|
@@ -270,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
270
|
version: '0'
|
271
271
|
requirements: []
|
272
272
|
rubyforge_project:
|
273
|
-
rubygems_version: 2.
|
273
|
+
rubygems_version: 2.5.1
|
274
274
|
signing_key:
|
275
275
|
specification_version: 4
|
276
276
|
summary: Applitools Ruby SDK
|