cotton-tail 0.4.0 → 0.4.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -1
- data.tar.gz.sig +0 -0
- data/.circleci/config.yml +71 -0
- data/Gemfile.lock +9 -6
- data/README.md +4 -0
- data/cotton-tail.gemspec +2 -1
- data/examples/app_with_middleware.rb +21 -3
- data/examples/messages/intercept.with.middleware +12 -0
- data/lib/cotton_tail/dsl/queue.rb +0 -2
- data/lib/cotton_tail/version.rb +1 -1
- metadata +20 -4
- metadata.gz.sig +1 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 790abb66e618fd55310f4acbca7b7d0498f158af153c454c696ee084e13257c4
|
|
4
|
+
data.tar.gz: f12d3be7f5fbda32a435e161f95e672878e6a1a5b357880c23ee37defbd96a9f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b07dfcbe78301c9e688b3b6616a5f054961d8d77c63f4ef8e3e6c0d604bb07f7382f39986ada745e451d216e3d3ac08d12565eded41de62259d0258facbc3405
|
|
7
|
+
data.tar.gz: 0c09960c9c4733c3d9894db627e7d46edc431ba6c1c467236ee60dd52b0285ff6180ff76af80dc357e267503e3b3f6b4ec4f732879c5f34466cbd2e4b7676d4e
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
U��()v�F�`~���"��e�������.*p�^m:��)1��5TN�OO-ȽȇZ�}S��|��'�Ϧ9�ԑ�)��I��fK��c�0��6\�?�9|F苢�i�xk�����`'V"
|
|
2
|
+
v����\m֕��/<����W߉�r��l"��<�t���r��F�>��~E���O�
|
data.tar.gz.sig
CHANGED
|
Binary file
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
jobs:
|
|
3
|
+
build:
|
|
4
|
+
docker:
|
|
5
|
+
- image: circleci/ruby:2.5.1-node-browsers
|
|
6
|
+
- image: rabbitmq:3.7-management
|
|
7
|
+
|
|
8
|
+
working_directory: ~/repo
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- checkout
|
|
12
|
+
|
|
13
|
+
- run:
|
|
14
|
+
name: install dockerize
|
|
15
|
+
command: wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz && sudo tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
|
|
16
|
+
environment:
|
|
17
|
+
DOCKERIZE_VERSION: v0.6.1
|
|
18
|
+
|
|
19
|
+
- run:
|
|
20
|
+
name: Wait for rabbitmq api
|
|
21
|
+
command: dockerize -wait tcp://localhost:15672 -timeout 1m
|
|
22
|
+
|
|
23
|
+
- restore_cache:
|
|
24
|
+
keys:
|
|
25
|
+
- v1-dependencies-{{ checksum "Gemfile.lock" }}
|
|
26
|
+
- v1-dependencies-
|
|
27
|
+
|
|
28
|
+
- run:
|
|
29
|
+
name: install dependencies
|
|
30
|
+
command: |
|
|
31
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
|
32
|
+
|
|
33
|
+
- save_cache:
|
|
34
|
+
paths:
|
|
35
|
+
- ./vendor/bundle
|
|
36
|
+
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
|
37
|
+
|
|
38
|
+
- run:
|
|
39
|
+
name: rubocop
|
|
40
|
+
command: |
|
|
41
|
+
bundle exec rubocop
|
|
42
|
+
|
|
43
|
+
- run:
|
|
44
|
+
name: unit tests
|
|
45
|
+
command: |
|
|
46
|
+
mkdir /tmp/test-results
|
|
47
|
+
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
|
48
|
+
|
|
49
|
+
bundle exec rspec --format progress \
|
|
50
|
+
--format RspecJunitFormatter \
|
|
51
|
+
--out /tmp/spec-results/rspec.xml \
|
|
52
|
+
--format progress \
|
|
53
|
+
$TEST_FILES
|
|
54
|
+
|
|
55
|
+
- run:
|
|
56
|
+
name: integration tests
|
|
57
|
+
command: |
|
|
58
|
+
TEST_FILES="$(circleci tests glob "integration/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
|
59
|
+
|
|
60
|
+
bundle exec rspec --format progress \
|
|
61
|
+
--format RspecJunitFormatter \
|
|
62
|
+
--out /tmp/integration-results/rspec.xml \
|
|
63
|
+
--format progress \
|
|
64
|
+
$TEST_FILES
|
|
65
|
+
|
|
66
|
+
# collect reports
|
|
67
|
+
- store_test_results:
|
|
68
|
+
path: /tmp/test-results
|
|
69
|
+
- store_artifacts:
|
|
70
|
+
path: /tmp/test-results
|
|
71
|
+
destination: test-results
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
cotton-tail (0.4.
|
|
4
|
+
cotton-tail (0.4.1)
|
|
5
5
|
bunny (~> 2.12)
|
|
6
6
|
ibsciss-middleware (~> 0.4.2)
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@ GEM
|
|
|
12
12
|
ast (2.4.0)
|
|
13
13
|
benchmark-perf (0.4.0)
|
|
14
14
|
benchmark-trend (0.2.0)
|
|
15
|
-
bunny (2.12.
|
|
15
|
+
bunny (2.12.1)
|
|
16
16
|
amq-protocol (~> 2.3, >= 2.3.0)
|
|
17
17
|
diff-lcs (1.3)
|
|
18
18
|
effin_utf8 (1.0)
|
|
@@ -29,14 +29,14 @@ GEM
|
|
|
29
29
|
parser (2.5.3.0)
|
|
30
30
|
ast (~> 2.4.0)
|
|
31
31
|
powerpack (0.1.2)
|
|
32
|
-
rabbitmq_http_api_client (1.
|
|
32
|
+
rabbitmq_http_api_client (1.10.0)
|
|
33
33
|
effin_utf8 (~> 1.0.0)
|
|
34
34
|
faraday (~> 0.13.0)
|
|
35
35
|
faraday_middleware (~> 0.12.0)
|
|
36
36
|
hashie (~> 3.5)
|
|
37
37
|
multi_json (~> 1.12)
|
|
38
38
|
rainbow (3.0.0)
|
|
39
|
-
rake (
|
|
39
|
+
rake (12.3.2)
|
|
40
40
|
rspec (3.8.0)
|
|
41
41
|
rspec-core (~> 3.8.0)
|
|
42
42
|
rspec-expectations (~> 3.8.0)
|
|
@@ -57,7 +57,9 @@ GEM
|
|
|
57
57
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
58
58
|
rspec-support (~> 3.8.0)
|
|
59
59
|
rspec-support (3.8.0)
|
|
60
|
-
|
|
60
|
+
rspec_junit_formatter (0.4.1)
|
|
61
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
|
62
|
+
rubocop (0.61.1)
|
|
61
63
|
jaro_winkler (~> 1.5.1)
|
|
62
64
|
parallel (~> 1.10)
|
|
63
65
|
parser (>= 2.5, != 2.5.1.1)
|
|
@@ -75,10 +77,11 @@ DEPENDENCIES
|
|
|
75
77
|
bundler (~> 1.16)
|
|
76
78
|
cotton-tail!
|
|
77
79
|
rabbitmq_http_api_client (~> 1.9)
|
|
78
|
-
rake (~>
|
|
80
|
+
rake (~> 12.0)
|
|
79
81
|
rspec (~> 3.0)
|
|
80
82
|
rspec-benchmark (~> 0.4)
|
|
81
83
|
rspec-its (~> 1.2)
|
|
84
|
+
rspec_junit_formatter
|
|
82
85
|
rubocop (~> 0.60)
|
|
83
86
|
|
|
84
87
|
BUNDLED WITH
|
data/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# CottonTail
|
|
2
2
|
|
|
3
|
+
[](https://circleci.com/gh/jamesBrennan/cotton-tail)
|
|
4
|
+
[](https://depfu.com/github/jamesBrennan/cotton-tail?project_id=6465)
|
|
5
|
+
[](https://codeclimate.com/github/jamesBrennan/cotton-tail)
|
|
6
|
+
|
|
3
7
|
CottonTail provides a simple DSL for consuming messages from a RabbitMQ server.
|
|
4
8
|
|
|
5
9
|
This gem is in early development. The API will be unstable until the 1.0.0
|
data/cotton-tail.gemspec
CHANGED
|
@@ -33,9 +33,10 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
|
|
34
34
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
35
35
|
spec.add_development_dependency 'rabbitmq_http_api_client', '~> 1.9'
|
|
36
|
-
spec.add_development_dependency 'rake', '~>
|
|
36
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
|
37
37
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
38
38
|
spec.add_development_dependency 'rspec-benchmark', '~> 0.4'
|
|
39
39
|
spec.add_development_dependency 'rspec-its', '~> 1.2'
|
|
40
|
+
spec.add_development_dependency 'rspec_junit_formatter'
|
|
40
41
|
spec.add_development_dependency 'rubocop', '~> 0.60'
|
|
41
42
|
end
|
|
@@ -7,7 +7,8 @@ require 'cotton_tail'
|
|
|
7
7
|
app = CottonTail::App.new
|
|
8
8
|
|
|
9
9
|
upcase = lambda { |(env, req, res)|
|
|
10
|
-
[
|
|
10
|
+
res[:body] = res.body.upcase
|
|
11
|
+
[env, req, res]
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
print = lambda { |(env, req, res)|
|
|
@@ -15,9 +16,24 @@ print = lambda { |(env, req, res)|
|
|
|
15
16
|
[env, req, res]
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
Interceptor = Class.new do
|
|
20
|
+
def initialize(app)
|
|
21
|
+
@app = app
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def call(msg)
|
|
25
|
+
_env, req, _res = msg
|
|
26
|
+
if req.routing_key == 'intercept.with.middleware'
|
|
27
|
+
puts 'INTERCEPTED!'
|
|
28
|
+
return
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
@app.call msg
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
18
35
|
app.config.middleware do |d|
|
|
19
|
-
|
|
20
|
-
# 'message' is the return value of the handlers defined below
|
|
36
|
+
d.insert_before CottonTail::Middleware::Router, Interceptor
|
|
21
37
|
d.use upcase
|
|
22
38
|
d.use print
|
|
23
39
|
end
|
|
@@ -31,6 +47,8 @@ app.routes.draw do
|
|
|
31
47
|
handle 'say.goodbye' do
|
|
32
48
|
'Goodbye cruel world!'
|
|
33
49
|
end
|
|
50
|
+
|
|
51
|
+
bind 'intercept.with.middleware'
|
|
34
52
|
end
|
|
35
53
|
end
|
|
36
54
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
read -r -d '' MESSAGE << EOM
|
|
4
|
+
{
|
|
5
|
+
"properties":{},
|
|
6
|
+
"routing_key":"intercept.with.middleware",
|
|
7
|
+
"payload": "intercept me",
|
|
8
|
+
"payload_encoding": "string"
|
|
9
|
+
}
|
|
10
|
+
EOM
|
|
11
|
+
|
|
12
|
+
curl -i -XPOST -d"${MESSAGE}" http://guest:guest@localhost:15672/api/exchanges/%2f/amq.topic/publish
|
data/lib/cotton_tail/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cotton-tail
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- James Brennan
|
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
|
30
30
|
fXe/xr/Sc+2wCjHPVE2J+auN5hk3KCp1I4s2fKqyLIwyhTEF3shuYfCpC8rt/YdN
|
|
31
31
|
cy9/lg5LCI3OvakzxL4Xt1Sq4h/xJZ06ydTVJ1wxfk6BXHrg
|
|
32
32
|
-----END CERTIFICATE-----
|
|
33
|
-
date: 2018-
|
|
33
|
+
date: 2018-12-10 00:00:00.000000000 Z
|
|
34
34
|
dependencies:
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
36
36
|
name: bunny
|
|
@@ -94,14 +94,14 @@ dependencies:
|
|
|
94
94
|
requirements:
|
|
95
95
|
- - "~>"
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '
|
|
97
|
+
version: '12.0'
|
|
98
98
|
type: :development
|
|
99
99
|
prerelease: false
|
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
|
101
101
|
requirements:
|
|
102
102
|
- - "~>"
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: '
|
|
104
|
+
version: '12.0'
|
|
105
105
|
- !ruby/object:Gem::Dependency
|
|
106
106
|
name: rspec
|
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -144,6 +144,20 @@ dependencies:
|
|
|
144
144
|
- - "~>"
|
|
145
145
|
- !ruby/object:Gem::Version
|
|
146
146
|
version: '1.2'
|
|
147
|
+
- !ruby/object:Gem::Dependency
|
|
148
|
+
name: rspec_junit_formatter
|
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: '0'
|
|
154
|
+
type: :development
|
|
155
|
+
prerelease: false
|
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '0'
|
|
147
161
|
- !ruby/object:Gem::Dependency
|
|
148
162
|
name: rubocop
|
|
149
163
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -167,6 +181,7 @@ executables: []
|
|
|
167
181
|
extensions: []
|
|
168
182
|
extra_rdoc_files: []
|
|
169
183
|
files:
|
|
184
|
+
- ".circleci/config.yml"
|
|
170
185
|
- ".gitignore"
|
|
171
186
|
- ".rspec"
|
|
172
187
|
- ".rubocop.yml"
|
|
@@ -187,6 +202,7 @@ files:
|
|
|
187
202
|
- examples/messages/get.acked
|
|
188
203
|
- examples/messages/get.nacked
|
|
189
204
|
- examples/messages/inspect.message
|
|
205
|
+
- examples/messages/intercept.with.middleware
|
|
190
206
|
- examples/messages/say.goodbye
|
|
191
207
|
- examples/messages/say.hello
|
|
192
208
|
- lib/cotton_tail.rb
|
metadata.gz.sig
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
�=���`�XD���`�~Z-����x��b�7C��`n0z�]�Q�'��=`V>B�i���x��_��q��>$*���Y�"m
|
|
1
|
+
(�H�(2�x���Y�c����e��.ؔ�c��@�8�X��aH@H�����rU�|��r�x���_��@2ҍ��X�3.3�����rH�K�L��z��Ze \����$'&�KZW��~�SѲ��}��,p��;� y��:�6�\�*�p5�:��L�c�U*_Ԑ�&L��:C�N��4��/�T���r��& �3D�/�v�Z���!�1+�:�@.�[�n��'%m�Տ��tJT��G��P3�
|