informant-rails 2.0.1 → 2.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 508ce7cb53f750ba6b422a41c966b1fbdd46b623dcb311c4410d80c9b3b95f2f
4
- data.tar.gz: 28662decb01dd5ae5b943a0f099bf68eaf3bbbfd1b6cb31172eb7d1673238b24
3
+ metadata.gz: '09cbcd0c5777f13bb8349e55a5ce8fcb632a9440e2e74b3d689caa42a827dcd7'
4
+ data.tar.gz: 271fbd0dbfb43bfd7b77b3baa557838b6edd00c8c14bfd1086e66e018ff9dccf
5
5
  SHA512:
6
- metadata.gz: babd9a69b4121f59f3dae1bddc3933d33c083d2f86ad8cc95cd265b8dc7c13c795b8f6803c81764c91a0868357d27f11863bac12c9e83b55bbfbfbfb8f6f2010
7
- data.tar.gz: ec774a339d41ba6c95f82bb37f78eb90280f4c238dcbf4b31f1a7b71abdc5c3ee05bbddeb888e99232cffdceb4a112df59de270c7963623deb130b4eb1765ed0
6
+ metadata.gz: b4c230402306aedf9f97ac782ed3326d422a6af5ba616555c99f0daa4e6a102cce4b97ac63c0410a3581e651253e4f75b635cf6ace522626cb5ada7aeab64441
7
+ data.tar.gz: 607df63cd48e566a382040bb5953a3e194536ce5a8f3dfc6f72e4b51b09e8713fb748710eb6c82f311e960c1cddaf9978956fb8b36c99e0d42ef3c8da83bb970
@@ -2,13 +2,17 @@ require 'net/http'
2
2
 
3
3
  module InformantRails
4
4
  class Client
5
+ def self.enabled?; @enabled end
6
+ def self.disable!; @enabled = false end
7
+ def self.enable!; @enabled = true end
8
+ enable!
5
9
 
6
10
  def self.supported_request_methods
7
11
  @supported_request_methods ||= %w(POST PATCH PUT DELETE)
8
12
  end
9
13
 
10
14
  def self.record(env)
11
- new_request if supported_request_methods.include?(env['REQUEST_METHOD'])
15
+ new_request if enabled? && supported_request_methods.include?(env['REQUEST_METHOD'])
12
16
  end
13
17
 
14
18
  def self.record_action(controller_name, action)
@@ -25,7 +29,7 @@ module InformantRails
25
29
  def self.process
26
30
  if request && request.models.any?
27
31
  this_request = request
28
- Thread.new { transmit(this_request) }
32
+ transmit(this_request)
29
33
  end
30
34
  ensure
31
35
  cleanup
@@ -40,8 +44,12 @@ module InformantRails
40
44
  end
41
45
 
42
46
  def self.transmit(event)
43
- Net::HTTP.start(*event.net_http_start_arguments) do |http|
44
- http.request(event.post_request)
47
+ Thread.new(Client) do |client_class|
48
+ Net::HTTP.start(*event.net_http_start_arguments) do |http|
49
+ response = http.request(event.post_request)
50
+ client_class.disable! if response.code == '401'
51
+ response
52
+ end
45
53
  end
46
54
  end
47
55
 
@@ -58,6 +66,5 @@ module InformantRails
58
66
  def self.new_request
59
67
  Thread.current[:informant_request] = Event::FormSubmission.new
60
68
  end
61
-
62
69
  end
63
70
  end
@@ -1,3 +1,15 @@
1
+ class TestClass
2
+ def errors
3
+ {
4
+ field_name: 'must be unique'
5
+ }
6
+ end
7
+
8
+ def [](field)
9
+ 'field_value'
10
+ end
11
+ end
12
+
1
13
  module InformantRails
2
14
  class Diagnostic
3
15
  def self.run; new.run end
@@ -6,13 +18,11 @@ module InformantRails
6
18
  if Config.api_token.blank?
7
19
  Rails.logger.info missing_api_token_message
8
20
  else
9
- Client.record('REQUEST_METHOD' => 'POST')
10
- Client.record_action('Connectivity', 'test')
11
- Client.request.instance_variable_set('@models', [{
12
- name: 'TestClass',
13
- errors: [name: 'field_name', value: 'field_value', message: 'must be unique']
14
- }])
15
- response = Client.transmit(Client.request)
21
+ form_submission = InformantRails::Event::FormSubmission.new
22
+ form_submission.filename = 'Connectivity'
23
+ form_submission.action = 'test'
24
+ form_submission.process_model(TestClass.new)
25
+ response = Client.transmit(form_submission).join.value
16
26
 
17
27
  if response.code == '204'
18
28
  Rails.logger.info success_message
@@ -1,6 +1,6 @@
1
1
  module InformantRails::Event
2
2
  class FormSubmission < Base
3
- attr_accessor :request_url, :filename, :action
3
+ attr_accessor :filename, :action
4
4
 
5
5
  def process_model(model)
6
6
  if model && untracked?(model)
@@ -1,3 +1,3 @@
1
1
  module InformantRails
2
- VERSION = '2.0.1'
2
+ VERSION = '2.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: informant-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Informant, LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-01 00:00:00.000000000 Z
11
+ date: 2019-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails