startback 1.0.0 → 1.0.2

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: 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