cotton-tail 0.4.0 → 0.4.1

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
  SHA256:
3
- metadata.gz: e850fbee254829b5680d9ef8b653f7112d839340070c63133e1615d02a2717d8
4
- data.tar.gz: bcf0010028eb6b98a227764f951b5a9b2d50a0b1cc0beface95838295dfbee48
3
+ metadata.gz: 790abb66e618fd55310f4acbca7b7d0498f158af153c454c696ee084e13257c4
4
+ data.tar.gz: f12d3be7f5fbda32a435e161f95e672878e6a1a5b357880c23ee37defbd96a9f
5
5
  SHA512:
6
- metadata.gz: 9fff4b3fec0934022cd1255e95557f9fd7e0be9011a91affcb30be960b8e5ff84c149f83ab7bc047a13909999292f57f51b32b31271c888820176e0f22ea854a
7
- data.tar.gz: f5a658bbb3f3473fc9aac6331f76c435aa0cc297a5be6dbe783972ae895761b54eac3c5577b2d23ab6f7e4d46c6bdb62baf6fd8a57113cbf29f9022ad32420aa
6
+ metadata.gz: b07dfcbe78301c9e688b3b6616a5f054961d8d77c63f4ef8e3e6c0d604bb07f7382f39986ada745e451d216e3d3ac08d12565eded41de62259d0258facbc3405
7
+ data.tar.gz: 0c09960c9c4733c3d9894db627e7d46edc431ba6c1c467236ee60dd52b0285ff6180ff76af80dc357e267503e3b3f6b4ec4f732879c5f34466cbd2e4b7676d4e
checksums.yaml.gz.sig CHANGED
@@ -1 +1,2 @@
1
- >V���f7U��2����.*�؜�g4W���M<I2�8Y���[�Q*��H�����z�O��!@�A� ���:�"l���� zF�����蹑P#�I��P�.��k����(�������G����^F*������߁�K��l ��ϻL0Bm}�ƾ�{'��H���`��cBir�4(��)yD{��`�$ Y�����6�d�\��<�_?[(
1
+ U��()vF�`~���"��e ������.*p�^m:��)1��5TN�OO-ȽȇZ�}S��|��'�Ϧ9�ԑ�)��I��fK��c0��6\�?�9|F苢�i�x޽k�����`'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.0)
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.0)
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.9.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 (10.5.0)
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
- rubocop (0.60.0)
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 (~> 10.0)
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
+ [![CircleCI](https://img.shields.io/circleci/project/github/jamesBrennan/cotton-tail.svg?style=svg)](https://circleci.com/gh/jamesBrennan/cotton-tail)
4
+ [![Depfu](https://badges.depfu.com/badges/4a33988ba774e985f135172f5f17d86f/overview.svg)](https://depfu.com/github/jamesBrennan/cotton-tail?project_id=6465)
5
+ [![Code Climate](https://codeclimate.com/github/codeclimate/codeclimate/badges/gpa.svg)](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', '~> 10.0'
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
- [env, req, CottonTail::Response.new(res.body.upcase)]
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
- # This is added to the end of the middleware stack
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
@@ -20,8 +20,6 @@ module CottonTail
20
20
  topic.instance_eval(&block)
21
21
  end
22
22
 
23
- private
24
-
25
23
  def bind(key)
26
24
  return unless @queue.respond_to?(:bind)
27
25
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CottonTail
4
- VERSION = '0.4.0'
4
+ VERSION = '0.4.1'
5
5
  end
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.0
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-11-30 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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
- L���wT�>+�Xd��g��S�c�Gܤ̧��W�15��/��t���]DkZ�Of��
2
- �=���`�XD���`�~Z-����x��b�7C��`n0z�]�Q�'��=`V>B�i���x��_��q��>$*���Y�"m
1
+ (�H�(2�x���Yc����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