startback 1.0.0 → 1.0.2

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: 85db266a4c72694e948fc85a4bd7e4923f0ecce7afeb9976a1d6033d120a8191
4
- data.tar.gz: fb68dc41bc6acc1bd6dda521146d5f0f444f81c6824137d64dd1393d78db0199
3
+ metadata.gz: a162a8ab216ec2a85da27179246324ec3d9a4e9f3a8b4b169b3ecb62d30c2718
4
+ data.tar.gz: '08018c87f0feb186e026bd03ee3393c546ba7172660bb6bdf9ba759c4b0b9cf9'
5
5
  SHA512:
6
- metadata.gz: a56a2fc06d115226421684fc78441ee22b111fd3fd8a2d1ab18cf5a44ab5f699df7b43e5eebb6be2ac5e968c157f4c6c20e1e74f5b44faabc7130965099c9c59
7
- data.tar.gz: 0c75bea563030c189613f45d29f61fed3869777f4987f8e6bc6af1b169fbf3184e4f561d2c655d3efdadfd250cfe44d397cff03d40e8048c6f80a0d597a31d5a
6
+ metadata.gz: 7fca430945a88c9c6eddb3ad2f1907854a3e6f6f08246a2d9358ffeb953c9eff94bf3e4b75cdaee3344e264d8509019877a3e769e3ae5cd8b00177f98ed3dee4
7
+ data.tar.gz: 7c750aa83925058090b685b44e4d14b7a2f836d98de3e10741c76c7d0ef0f6bf337654a798dbda7c2bfb2ad92eb3b3a189fdea09ea8e62eff8ecd174e7a5621b
@@ -97,6 +97,10 @@ module Startback
97
97
  @bunny.close if @bunny
98
98
  end
99
99
 
100
+ def connected?
101
+ @bunny && @bunny.connected?
102
+ end
103
+
100
104
  def channel
101
105
  unless @bunny
102
106
  raise Startback::Errors::Error, "Please connect your bus first, or use autoconnect: true"
@@ -24,6 +24,10 @@ module Startback
24
24
  def connect
25
25
  end
26
26
 
27
+ def connected?
28
+ true
29
+ end
30
+
27
31
  def emit(event)
28
32
  (@listeners[event.type.to_s] || []).each do |l|
29
33
  stop_errors(self, "emit", event) {
@@ -16,6 +16,10 @@ module Startback
16
16
  def connect
17
17
  end
18
18
 
19
+ def connected?
20
+ true
21
+ end
22
+
19
23
  def emit(event)
20
24
  (@listeners[event.type.to_s] || []).each do |l|
21
25
  l.call(event)
@@ -69,6 +69,16 @@ module Startback
69
69
  async.connect if async
70
70
  end
71
71
 
72
+ def connected?
73
+ if sync && async
74
+ sync.connected? && async.connected?
75
+ elsif sync
76
+ sync.connected?
77
+ elsif async
78
+ async.connected?
79
+ end
80
+ end
81
+
72
82
  # Emits a particular event to the listeners.
73
83
  #
74
84
  # @arg event an event, should be an Event instance (through duck
@@ -58,7 +58,7 @@ module Startback
58
58
  end
59
59
 
60
60
  def connect
61
- log(:info, self, "Connecting to the bus now!")
61
+ log(:debug, "Connecting to the bus now!", self)
62
62
  bus.connect
63
63
  end
64
64
 
@@ -6,9 +6,10 @@ module Startback
6
6
  pretty_print: nil
7
7
  }
8
8
 
9
- def initialize(options = {})
9
+ def initialize(options = {}, redactor = default_redactor)
10
10
  @options = DEFAULT_OPTIONS.merge(options)
11
11
  @options[:pretty_print] = auto_pretty_print unless @options.has_key?(:pretty_print)
12
+ @redactor = redactor
12
13
  end
13
14
 
14
15
  def pretty_print?
@@ -24,6 +25,7 @@ module Startback
24
25
  }.merge(msg)
25
26
  .merge(error: error_to_json(msg[:error], severity))
26
27
  .compact
28
+ data = @redactor.redact(data)
27
29
  if pretty_print?
28
30
  JSON.pretty_generate(data) << "\n"
29
31
  else
@@ -48,6 +50,10 @@ module Startback
48
50
 
49
51
  private
50
52
 
53
+ def default_redactor
54
+ Support::Redactor.new
55
+ end
56
+
51
57
  def auto_pretty_print
52
58
  development?
53
59
  end
@@ -21,6 +21,8 @@ module Startback
21
21
  }]
22
22
  when Enumerable
23
23
  data.map{|elm| redact(elm) }.compact
24
+ when /:\/\//
25
+ data.gsub(/:\/\/([^@]+[@])/){|m| "://--redacted--@" }
24
26
  else
25
27
  data
26
28
  end
@@ -2,7 +2,7 @@ module Startback
2
2
  module Version
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 0
5
+ TINY = 2
6
6
  end
7
7
  VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::TINY}"
8
8
  end
@@ -79,6 +79,17 @@ module Startback
79
79
  })
80
80
  end
81
81
 
82
+ it 'redacts urls as expected' do
83
+ r = Redactor.new
84
+ expect(r.redact('hello')).to eql('hello')
85
+ expect(r.redact('http://google.com')).to eql('http://google.com')
86
+ expect(r.redact('http://google.com/a/path')).to eql('http://google.com/a/path')
87
+ expect(r.redact('http://user@google.com')).to eql('http://--redacted--@google.com')
88
+ expect(r.redact('http://user@google.com/a/path')).to eql('http://--redacted--@google.com/a/path')
89
+ expect(r.redact('http://user:password@google.com')).to eql('http://--redacted--@google.com')
90
+ expect(r.redact('http://user:password@google.com/a/path')).to eql('http://--redacted--@google.com/a/path')
91
+ end
92
+
82
93
  end # class Redactor
83
94
  end # module Support
84
95
  end # module Startback
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: startback
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernard Lambeau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-23 00:00:00.000000000 Z
11
+ date: 2024-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec