freddy 1.7.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
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