freddy 1.7.0 → 2.2.1

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.
data/.npmignore DELETED
@@ -1,8 +0,0 @@
1
- .git*
2
- .rspec
3
- .ruby*
4
- Gemfile*
5
- *.gemspec
6
- spec/
7
- *.rb
8
- lib/messaging
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.5.6
4
- - jruby-9.2.8.0
5
- addons:
6
- code_climate:
7
- repo_token: 1f3842b985fdeff6a36168165d491ca5f444667e9381a85c899a61706a9dd285
8
- apt:
9
- packages:
10
- - rabbitmq-server
11
- services:
12
- - rabbitmq
13
- before_script:
14
- - gem install bundler
15
- - bundle install
16
- script: bundle exec rake
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'march_hare'
4
-
5
- class Freddy
6
- module Adapters
7
- class MarchHareAdapter
8
- def self.connect(config)
9
- hare = MarchHare.connect(config)
10
- new(hare)
11
- end
12
-
13
- def initialize(hare)
14
- @hare = hare
15
- end
16
-
17
- def create_channel(prefetch: nil)
18
- hare_channel = @hare.create_channel
19
- hare_channel.basic_qos(prefetch) if prefetch
20
- Channel.new(hare_channel)
21
- end
22
-
23
- def close
24
- @hare.close
25
- end
26
-
27
- class Channel
28
- extend Forwardable
29
-
30
- NO_ROUTE = 312
31
-
32
- def initialize(channel)
33
- @channel = channel
34
- end
35
-
36
- def_delegators :@channel, :topic, :default_exchange, :consumers, :acknowledge, :reject
37
-
38
- def queue(*args)
39
- Queue.new(@channel.queue(*args))
40
- end
41
-
42
- def on_no_route
43
- @channel.on_return do |reply_code, _, exchange_name, _, properties|
44
- if exchange_name != Freddy::FREDDY_TOPIC_EXCHANGE_NAME && reply_code == NO_ROUTE
45
- yield(properties.correlation_id)
46
- end
47
- end
48
- end
49
- end
50
-
51
- class Queue < Shared::Queue
52
- def subscribe(manual_ack: false)
53
- @queue.subscribe(manual_ack: manual_ack) do |meta, payload|
54
- parsed_payload = Payload.parse(payload)
55
- delivery = Delivery.new(
56
- parsed_payload, meta, meta.routing_key, meta.delivery_tag
57
- )
58
- yield(delivery)
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Freddy
4
- # Carrier for rabbitmq following OpenTracing API
5
- # See https://github.com/opentracing/opentracing-ruby/blob/master/lib/opentracing/carrier.rb
6
- class TraceCarrier
7
- def initialize(properties)
8
- @properties = properties
9
- end
10
-
11
- def [](key)
12
- @properties.headers && @properties.headers["x-trace-#{key}"]
13
- end
14
-
15
- def []=(key, value)
16
- @properties[:headers] ||= {}
17
- @properties[:headers]["x-trace-#{key}"] = value
18
- end
19
-
20
- def each(&block)
21
- Hash[
22
- (@properties.headers || {})
23
- .select { |key, _| key =~ /^x-trace/ }
24
- .map { |key, value| [key.sub(/x-trace-/, ''), value] }
25
- ].each(&block)
26
- end
27
- end
28
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Freddy::TraceCarrier do
4
- subject(:carrier) { described_class.new(properties) }
5
-
6
- context 'when adding trace information' do
7
- let(:properties) { { x: 'y' } }
8
- let(:key_name) { 'some-key' }
9
- let(:key_value) { 'some-key' }
10
-
11
- it 'adds a header with x-trace- prefix' do
12
- carrier[key_name] = key_value
13
- expect(properties[:headers]["x-trace-#{key_name}"]).to eq(key_value)
14
- end
15
- end
16
-
17
- context 'when extracting trace information' do
18
- let(:key_name) { 'some-key' }
19
- let(:serialized_key_name) { "x-trace-#{key_name}" }
20
- let(:key_value) { 'some-key' }
21
-
22
- let(:properties) do
23
- double(headers: { serialized_key_name => key_value })
24
- end
25
-
26
- it 'extracts a header with x-trace- prefix' do
27
- expect(carrier[key_name]).to eq(key_value)
28
- end
29
- end
30
-
31
- describe '#each' do
32
- context 'when headers are present' do
33
- let(:properties) do
34
- double(
35
- headers: {
36
- 'x-trace-key1' => 'value1',
37
- 'x-trace-key2' => 'value2',
38
- 'other-key' => 'value3'
39
- }
40
- )
41
- end
42
-
43
- it 'iterates over keys starting with x-trace- prefix' do
44
- expect(carrier.each.count).to eq(2)
45
- end
46
- end
47
-
48
- context 'when no headers' do
49
- let(:properties) { double(headers: nil) }
50
-
51
- it 'iterates over an empty list' do
52
- expect(carrier.each.count).to eq(0)
53
- end
54
- end
55
- end
56
- end