informant-rails 2.0.1 → 2.1.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: 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