protoboard 0.1.4 → 0.1.5

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
  SHA1:
3
- metadata.gz: 25a45012618f03a8e53549822a78acaaa9459beb
4
- data.tar.gz: 6bfb8b60a987715d6d9d81336375cd86f23b0c82
3
+ metadata.gz: c81cf53f96503f2eb2e797e9e7034abe3f1fde97
4
+ data.tar.gz: d394dde7965c0a5334cbe7dc2ce1fa5ee1f656f0
5
5
  SHA512:
6
- metadata.gz: ef9621414c1bcf91a36bb9cdc491fd324b453410d3d8c6f9dd9fc31361e4f17294b77ea1c1b103e5998378e6bd59f36f929288849a78973b8f9498577c37cc58
7
- data.tar.gz: fd93416742ece1862979cbff05b5b39f65d6e06c1049034beb5ffc5d84429974c2219b4430df6b761b53f62ded29f00abe92f7a3dc121d91d226c947fa7c0798
6
+ metadata.gz: e4e889e92fa0a9f0e255bb30b25a965d244b05987d4edad86f2f0906f2258704c1892b81a2b325e44f9088febe06b365dfdc293bdd34ff53150cc550b233b01c
7
+ data.tar.gz: 31095568cddf438c81fd6b5794674874eed45e870fe2647154bbbfa75cc04307ba7fefdab85e4609c2c1d8e19df45dc5c6ecbdf4ce51ded17cbbe5489220f47a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- protoboard (0.1.4)
4
+ protoboard (0.1.5)
5
5
  dry-configurable (~> 0.7.0)
6
6
  stoplight (~> 2.1.3)
7
7
 
data/README.md CHANGED
@@ -103,13 +103,15 @@ If you want to check the services and circuits registered in Protoboard you can
103
103
  'my_service_name' => {
104
104
  'circuits' => {
105
105
  'some_namespace/my_service_name/SomeClass#some_method' => 'OK',
106
- 'my_custom_name' => 'NOT_OK'
106
+ 'some_namespace/my_custom_name' => 'NOT_OK'
107
107
  }
108
108
  }
109
109
  }
110
110
  }
111
111
  ```
112
112
 
113
+ PS: You can also disable the project namespace to be shown in `Protoboard::CircuitBreaker.services_healthcheck` passing the option `with_namespace: false`
114
+
113
115
 
114
116
  ## Configuration
115
117
 
@@ -54,8 +54,8 @@ module Protoboard
54
54
  class << self
55
55
  ##
56
56
  # Returns a hash with the +circuits+ names and its states.
57
- def services_healthcheck
58
- Protoboard::Helpers::ServicesHealthcheckGenerator.new.call
57
+ def services_healthcheck(with_namespace: true)
58
+ Protoboard::Helpers::ServicesHealthcheckGenerator.new.call(with_namespace: with_namespace)
59
59
  end
60
60
 
61
61
  ##
@@ -91,7 +91,7 @@ module Protoboard
91
91
  memo.merge(value.to_sym => "#{formatted_namespace}#{options[:service]}/#{class_name}\##{value}")
92
92
  end
93
93
  when Hash
94
- circuit_methods
94
+ circuit_methods.map { |key, value| [key, "#{formatted_namespace}#{value}"] }.to_h
95
95
  else
96
96
  raise ArgumentError, 'Invalid input for circuit methods'
97
97
  end
@@ -22,7 +22,7 @@ module Protoboard
22
22
  # }
23
23
  # ====
24
24
  #
25
- def call
25
+ def call(with_namespace:)
26
26
  circuits_hash = Protoboard::CircuitBreaker.registered_circuits.map do |circuit|
27
27
  state = Protoboard.config.adapter.check_state(circuit.name)
28
28
 
@@ -31,12 +31,24 @@ module Protoboard
31
31
  services_hash = circuits_hash
32
32
  .group_by { |circuit| circuit[:service] }
33
33
  .map do |service, circuits_hash|
34
- circuits = circuits_hash.each_with_object({}) { |circuit, memo| memo[circuit[:name]] = circuit[:status] }
34
+
35
+ circuits = circuits_hash.each_with_object({}) do |circuit, memo|
36
+ circuit_name = format_circuit_name(circuit[:name], with_namespace: with_namespace)
37
+ memo[circuit_name] = circuit[:status]
38
+ end
35
39
  { service => { 'circuits' => circuits } }
36
40
  end.reduce(:merge)
37
41
 
38
42
  { 'services' => services_hash.to_h }
39
43
  end
44
+
45
+ private
46
+
47
+ def format_circuit_name(circuit_name, with_namespace:)
48
+ return circuit_name if with_namespace
49
+
50
+ circuit_name.sub("#{Protoboard.config.namespace}/", '')
51
+ end
40
52
  end
41
53
  end
42
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Protoboard
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protoboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Atkinson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-06-08 00:00:00.000000000 Z
12
+ date: 2018-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-configurable