deimos-ruby 1.3.0.pre.beta5 → 1.4.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,124 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Deimos
4
- # Class to hold configuration.
5
- class Configuration
6
- # @return [Logger]
7
- attr_accessor :logger
8
- attr_accessor :phobos_logger
9
- attr_accessor :kafka_logger
10
-
11
- # By default, consumer errors will be consumed and logged to
12
- # the metrics provider.
13
- # Set this to true to force the error to be raised.
14
- # @return [Boolean]
15
- attr_accessor :reraise_consumer_errors
16
-
17
- # @return [String]
18
- attr_accessor :schema_registry_url
19
-
20
- # @return [String]
21
- attr_accessor :seed_broker
22
-
23
- # Local path to schemas.
24
- # @return [String]
25
- attr_accessor :schema_path
26
-
27
- # Default namespace for all producers. Can remain nil. Individual
28
- # producers can override.
29
- # @return [String]
30
- attr_accessor :producer_schema_namespace
31
-
32
- # Add a prefix to all topic names. This can be useful if you're using
33
- # the same Kafka broker for different environments that are producing
34
- # the same topics.
35
- # @return [String]
36
- attr_accessor :producer_topic_prefix
37
-
38
- # Disable all actual message producing. Useful when doing things like
39
- # mass imports or data space management when events don't need to be
40
- # fired.
41
- # @return [Boolean]
42
- attr_accessor :disable_producers
43
-
44
- # File path to the Phobos configuration file, relative to the application root.
45
- # @return [String]
46
- attr_accessor :phobos_config_file
47
-
48
- # @return [Boolean]
49
- attr_accessor :ssl_enabled
50
-
51
- # @return [String]
52
- attr_accessor :ssl_ca_cert
53
-
54
- # @return [String]
55
- attr_accessor :ssl_client_cert
56
-
57
- # @return [String]
58
- attr_accessor :ssl_client_cert_key
59
-
60
- # Currently can be set to :db, :kafka, or :async_kafka. If using Kafka
61
- # directly, set to async in your user-facing app, and sync in your
62
- # consumers or delayed workers.
63
- # @return [Symbol]
64
- attr_accessor :publish_backend
65
-
66
- # @return [Boolean]
67
- attr_accessor :report_lag
68
-
69
- # @return [Metrics::Provider]
70
- attr_accessor :metrics
71
-
72
- # @return [Tracing::Provider]
73
- attr_accessor :tracer
74
-
75
- # @return [Deimos::DbProducerConfiguration]
76
- attr_accessor :db_producer
77
-
78
- # For internal purposes only
79
- # @return [Block]
80
- attr_accessor :fatal_error_block
81
-
82
- # :nodoc:
83
- def initialize
84
- @phobos_config_file = 'config/phobos.yml'
85
- @publish_backend = :kafka_async
86
- @db_producer = DbProducerConfiguration.new
87
- fatal_error { false }
88
- end
89
-
90
- # Block taking an exception, payload and metadata and returning
91
- # true if this should be considered a fatal error and false otherwise.
92
- # Not needed if reraise_consumer_errors is set to true.
93
- def fatal_error(&block)
94
- @fatal_error_block = block
95
- end
96
-
97
- # @param other_config [Configuration]
98
- # @return [Boolean]
99
- def phobos_config_changed?(other_config)
100
- phobos_keys = %w(seed_broker phobos_config_file ssl_ca_cert ssl_client_cert ssl_client_cert_key)
101
- return true if phobos_keys.any? { |key| self.send(key) != other_config.send(key) }
102
-
103
- other_config.logger != self.logger
104
- end
105
- end
106
-
107
- # Sub-class for DB producer configs.
108
- class DbProducerConfiguration
109
- # @return [Logger]
110
- attr_accessor :logger
111
- # @return [Symbol|Array<String>] A list of topics to log all messages, or
112
- # :all to log all topics.
113
- attr_accessor :log_topics
114
- # @return [Symbol|Array<String>] A list of topics to compact messages for
115
- # before sending, or :all to compact all keyed messages.
116
- attr_accessor :compact_topics
117
-
118
- # :nodoc:
119
- def initialize
120
- @log_topics = []
121
- @compact_topics = []
122
- end
123
- end
124
- end
data/spec/rake_spec.rb DELETED
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rake'
4
- require 'rails'
5
- Rails.logger = Logger.new(STDOUT)
6
- load("#{__dir__}/../lib/tasks/deimos.rake")
7
-
8
- if Rake.application.lookup(:environment).nil?
9
- Rake::Task.define_task(:environment)
10
- end
11
-
12
- describe 'Rakefile' do # rubocop:disable RSpec/DescribeClass
13
- it 'should start listeners' do
14
- runner = instance_double(Phobos::CLI::Runner)
15
- expect(Phobos::CLI::Runner).to receive(:new).and_return(runner)
16
- expect(runner).to receive(:run!)
17
- Rake::Task['deimos:start'].invoke
18
- end
19
- end