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 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