pact-mock_service 3.9.1 → 3.10.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
  SHA256:
3
- metadata.gz: 27e87ccc6396fefe1efbf08fdec3565431f999d0baece2f465f3c60c93af5887
4
- data.tar.gz: c6b4c99af70294e44082cec35e1b94e7626cf2a90f491804294120bcde2c6ae6
3
+ metadata.gz: d16d00c403d1d26138138585d3d47c523d07c22d68e86bbe03281cb365602045
4
+ data.tar.gz: 8de64b754a090f75feec4ba1da30cf63647ee8e9d0bab378ddcab461427bb4d9
5
5
  SHA512:
6
- metadata.gz: 84a2589c7758219995e685dcb817b839540a502b38364795a81579245dc3b9f3baf3517e06705580c29a714493be009618c5c7ab2d356b389db0d20d46061f84
7
- data.tar.gz: 2c0261cd92e97aadda278032f0098912f9d088e835dac58912fa96ad028613c01d1f423378d5b9cbde7c6d20b772e70ab93a997c5b5b7203974248f97f734d0e
6
+ metadata.gz: 945a1bff98624e8274039efd472e1e58a3882f60ab4ac95c8c3c374ec3a213c2e0b877bfa0b3b025f8aed1aa5af78bcd5bb77f7e3e91e6494f71df9d104231eb
7
+ data.tar.gz: c4594ee0cc987482f35b92e460116e1a48c52f743850850bd3b949e3a070b53fdf008f833cb0adc837ea886633ee496126c0419ec5b6ace83f57e90c6fcd3762
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ <a name="v3.10.0"></a>
2
+ ### v3.10.0 (2022-02-21)
3
+
4
+ #### Features
5
+
6
+ * add telemetry ([db5dfa5](/../../commit/db5dfa5))
7
+
1
8
  <a name="v3.9.1"></a>
2
9
  ### v3.9.1 (2021-06-03)
3
10
 
@@ -4,6 +4,7 @@ require 'pact/logging'
4
4
  require 'pact/consumer/server'
5
5
  require 'singleton'
6
6
  require 'pact/mock_service/app'
7
+ require 'pact/support/metrics'
7
8
 
8
9
  module Pact
9
10
  module MockService
@@ -29,6 +30,8 @@ module Pact
29
30
  pact_dir: pact_dir,
30
31
  pact_specification_version: options.fetch(:pact_specification_version)
31
32
  )
33
+
34
+ Pact::Support::Metrics.report_metric("Pact mock server started", "ConsumerTest", "MockServerStarted")
32
35
  register(app, uri.host, uri.port)
33
36
  end
34
37
 
@@ -4,6 +4,7 @@ require 'pact/consumer/mock_service/set_location'
4
4
  require 'pact/mock_service/run'
5
5
  require 'pact/mock_service/server/webrick_request_monkeypatch'
6
6
  require 'pact/specification_version'
7
+ require 'pact/support/metrics'
7
8
 
8
9
  module Pact
9
10
  module MockService
@@ -35,6 +36,7 @@ module Pact
35
36
  def mock_service
36
37
  @mock_service ||= begin
37
38
  mock_service = Pact::MockService.new(service_options)
39
+ Pact::Support::Metrics.report_metric("Pact mock server started", "ConsumerTest", "MockServerStarted")
38
40
  Pact::Consumer::SetLocation.new(mock_service, base_url)
39
41
  end
40
42
  end
@@ -1,5 +1,5 @@
1
1
  module Pact
2
2
  module MockService
3
- VERSION = "3.9.1"
3
+ VERSION = "3.10.0"
4
4
  end
5
5
  end
@@ -0,0 +1,85 @@
1
+ require 'securerandom'
2
+ require 'digest'
3
+ require 'socket'
4
+ require 'pact/support/metrics'
5
+ require 'pact/mock_service/version'
6
+ require 'net/http'
7
+
8
+ module Pact
9
+ module Support
10
+ class Metrics
11
+
12
+ def self.report_metric(event, category, action, value = 1)
13
+ in_thread do
14
+ begin
15
+ if track_events?
16
+ Pact.configuration.output_stream.puts "WARN: Please note: we are tracking events anonymously to gather important usage statistics like Pact-Ruby version and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment variable to 'true'."
17
+
18
+ uri = URI('https://www.google-analytics.com/collect')
19
+ req = Net::HTTP::Post.new(uri)
20
+ req.set_form_data(create_tracking_event(event, category, action, value))
21
+
22
+ Net::HTTP.start(uri.hostname, uri.port, read_timeout:2, open_timeout:2, :use_ssl => true ) do |http|
23
+ http.request(req)
24
+ end
25
+ end
26
+ rescue StandardError => e
27
+ handle_error(e)
28
+ end
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def self.handle_error e
35
+ if ENV['PACT_METRICS_DEBUG'] == 'true'
36
+ Pact.configuration.output_stream.puts("DEBUG: #{e.inspect}\n" + e.backtrace.join("\n"))
37
+ end
38
+ end
39
+
40
+ def self.in_thread
41
+ Thread.new do
42
+ yield
43
+ end
44
+ end
45
+
46
+ def self.create_tracking_event(event, category, action, value)
47
+ {
48
+ "v" => 1,
49
+ "t" => "event",
50
+ "tid" => "UA-117778936-1",
51
+ "cid" => calculate_cid,
52
+ "an" => "Pact Mock Service",
53
+ "av" => Pact::MockService::VERSION,
54
+ "aid" => "pact-mock_service",
55
+ "aip" => 1,
56
+ "ds" => ENV['PACT_EXECUTING_LANGUAGE'] ? "client" : "cli",
57
+ "cd2" => ENV['CI'] == "true" ? "CI" : "unknown",
58
+ "cd3" => RUBY_PLATFORM,
59
+ "cd6" => ENV['PACT_EXECUTING_LANGUAGE'] || "unknown",
60
+ "cd7" => ENV['PACT_EXECUTING_LANGUAGE_VERSION'],
61
+ "el" => event,
62
+ "ec" => category,
63
+ "ea" => action,
64
+ "ev" => value
65
+ }
66
+ end
67
+
68
+ def self.track_events?
69
+ ENV['PACT_DO_NOT_TRACK'] != 'true'
70
+ end
71
+
72
+ def self.calculate_cid
73
+ if RUBY_PLATFORM.include? "windows"
74
+ hostname = ENV['COMPUTERNAME']
75
+ else
76
+ hostname = ENV['HOSTNAME']
77
+ end
78
+ if !hostname
79
+ hostname = Socket.gethostname
80
+ end
81
+ Digest::MD5.hexdigest hostname || SecureRandom.urlsafe_base64(5)
82
+ end
83
+ end
84
+ end
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact-mock_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.1
4
+ version: 3.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Fraser
@@ -9,10 +9,10 @@ authors:
9
9
  - Brent Snook
10
10
  - Ronald Holshausen
11
11
  - Beth Skurrie
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-06-03 00:00:00.000000000 Z
15
+ date: 2022-02-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rack
@@ -312,7 +312,7 @@ dependencies:
312
312
  - - "~>"
313
313
  - !ruby/object:Gem::Version
314
314
  version: '0.5'
315
- description:
315
+ description:
316
316
  email:
317
317
  - james.fraser@alumni.swinburne.edu
318
318
  - sergei.matheson@gmail.com
@@ -392,11 +392,12 @@ files:
392
392
  - lib/pact/mock_service/version.rb
393
393
  - lib/pact/stub_service/cli.rb
394
394
  - lib/pact/support/expand_file_list.rb
395
+ - lib/pact/support/metrics.rb
395
396
  homepage: https://github.com/bethesque/pact-mock_service
396
397
  licenses:
397
398
  - MIT
398
399
  metadata: {}
399
- post_install_message:
400
+ post_install_message:
400
401
  rdoc_options: []
401
402
  require_paths:
402
403
  - lib
@@ -411,8 +412,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
411
412
  - !ruby/object:Gem::Version
412
413
  version: '0'
413
414
  requirements: []
414
- rubygems_version: 3.2.19
415
- signing_key:
415
+ rubygems_version: 3.3.7
416
+ signing_key:
416
417
  specification_version: 4
417
418
  summary: Provides a mock service for use with Pact
418
419
  test_files: []