pub_sub_model_sync 0.5.10 → 1.0

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.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +43 -0
  3. data/.github/workflows/ruby.yml +1 -1
  4. data/.rubocop.yml +1 -0
  5. data/CHANGELOG.md +34 -1
  6. data/Dockerfile +6 -0
  7. data/Gemfile.lock +150 -134
  8. data/README.md +372 -192
  9. data/docker-compose.yaml +12 -0
  10. data/docs/notifications-diagram.png +0 -0
  11. data/lib/pub_sub_model_sync.rb +3 -1
  12. data/lib/pub_sub_model_sync/base.rb +4 -7
  13. data/lib/pub_sub_model_sync/config.rb +17 -8
  14. data/lib/pub_sub_model_sync/initializers/before_commit.rb +23 -0
  15. data/lib/pub_sub_model_sync/message_processor.rb +34 -10
  16. data/lib/pub_sub_model_sync/message_publisher.rb +90 -29
  17. data/lib/pub_sub_model_sync/mock_google_service.rb +4 -0
  18. data/lib/pub_sub_model_sync/mock_kafka_service.rb +13 -0
  19. data/lib/pub_sub_model_sync/payload.rb +35 -16
  20. data/lib/pub_sub_model_sync/payload_builder.rb +62 -0
  21. data/lib/pub_sub_model_sync/publisher_concern.rb +77 -47
  22. data/lib/pub_sub_model_sync/railtie.rb +6 -0
  23. data/lib/pub_sub_model_sync/run_subscriber.rb +108 -0
  24. data/lib/pub_sub_model_sync/service_base.rb +19 -37
  25. data/lib/pub_sub_model_sync/service_google.rb +53 -17
  26. data/lib/pub_sub_model_sync/service_kafka.rb +40 -13
  27. data/lib/pub_sub_model_sync/service_rabbit.rb +41 -33
  28. data/lib/pub_sub_model_sync/subscriber.rb +14 -66
  29. data/lib/pub_sub_model_sync/subscriber_concern.rb +23 -23
  30. data/lib/pub_sub_model_sync/tasks/worker.rake +11 -0
  31. data/lib/pub_sub_model_sync/transaction.rb +73 -0
  32. data/lib/pub_sub_model_sync/version.rb +1 -1
  33. data/samples/README.md +50 -0
  34. data/samples/app1/.gitattributes +8 -0
  35. data/samples/app1/.gitignore +28 -0
  36. data/samples/app1/Dockerfile +13 -0
  37. data/samples/app1/Gemfile +37 -0
  38. data/samples/app1/Gemfile.lock +171 -0
  39. data/samples/app1/README.md +24 -0
  40. data/samples/app1/Rakefile +6 -0
  41. data/samples/app1/app/models/application_record.rb +3 -0
  42. data/samples/app1/app/models/concerns/.keep +0 -0
  43. data/samples/app1/app/models/post.rb +19 -0
  44. data/samples/app1/app/models/user.rb +29 -0
  45. data/samples/app1/bin/bundle +114 -0
  46. data/samples/app1/bin/rails +5 -0
  47. data/samples/app1/bin/rake +5 -0
  48. data/samples/app1/bin/setup +33 -0
  49. data/samples/app1/bin/spring +14 -0
  50. data/samples/app1/config.ru +6 -0
  51. data/samples/app1/config/application.rb +40 -0
  52. data/samples/app1/config/boot.rb +4 -0
  53. data/samples/app1/config/credentials.yml.enc +1 -0
  54. data/samples/app1/config/database.yml +25 -0
  55. data/samples/app1/config/environment.rb +5 -0
  56. data/samples/app1/config/environments/development.rb +63 -0
  57. data/samples/app1/config/environments/production.rb +105 -0
  58. data/samples/app1/config/environments/test.rb +57 -0
  59. data/samples/app1/config/initializers/application_controller_renderer.rb +8 -0
  60. data/samples/app1/config/initializers/backtrace_silencers.rb +8 -0
  61. data/samples/app1/config/initializers/cors.rb +16 -0
  62. data/samples/app1/config/initializers/filter_parameter_logging.rb +6 -0
  63. data/samples/app1/config/initializers/inflections.rb +16 -0
  64. data/samples/app1/config/initializers/mime_types.rb +4 -0
  65. data/samples/app1/config/initializers/pubsub.rb +4 -0
  66. data/samples/app1/config/initializers/wrap_parameters.rb +14 -0
  67. data/samples/app1/config/locales/en.yml +33 -0
  68. data/samples/app1/config/puma.rb +43 -0
  69. data/samples/app1/config/routes.rb +3 -0
  70. data/samples/app1/config/spring.rb +6 -0
  71. data/samples/app1/db/migrate/20210513080700_create_users.rb +12 -0
  72. data/samples/app1/db/migrate/20210513134332_create_posts.rb +11 -0
  73. data/samples/app1/db/schema.rb +34 -0
  74. data/samples/app1/db/seeds.rb +7 -0
  75. data/samples/app1/docker-compose.yml +32 -0
  76. data/samples/app1/log/.keep +0 -0
  77. data/samples/app2/.gitattributes +8 -0
  78. data/samples/app2/.gitignore +28 -0
  79. data/samples/app2/Dockerfile +13 -0
  80. data/samples/app2/Gemfile +37 -0
  81. data/samples/app2/Gemfile.lock +171 -0
  82. data/samples/app2/README.md +24 -0
  83. data/samples/app2/Rakefile +6 -0
  84. data/samples/app2/app/models/application_record.rb +9 -0
  85. data/samples/app2/app/models/concerns/.keep +0 -0
  86. data/samples/app2/app/models/customer.rb +28 -0
  87. data/samples/app2/app/models/post.rb +10 -0
  88. data/samples/app2/bin/bundle +114 -0
  89. data/samples/app2/bin/rails +5 -0
  90. data/samples/app2/bin/rake +5 -0
  91. data/samples/app2/bin/setup +33 -0
  92. data/samples/app2/bin/spring +14 -0
  93. data/samples/app2/config.ru +6 -0
  94. data/samples/app2/config/application.rb +40 -0
  95. data/samples/app2/config/boot.rb +4 -0
  96. data/samples/app2/config/credentials.yml.enc +1 -0
  97. data/samples/app2/config/database.yml +25 -0
  98. data/samples/app2/config/environment.rb +5 -0
  99. data/samples/app2/config/environments/development.rb +63 -0
  100. data/samples/app2/config/environments/production.rb +105 -0
  101. data/samples/app2/config/environments/test.rb +57 -0
  102. data/samples/app2/config/initializers/application_controller_renderer.rb +8 -0
  103. data/samples/app2/config/initializers/backtrace_silencers.rb +8 -0
  104. data/samples/app2/config/initializers/cors.rb +16 -0
  105. data/samples/app2/config/initializers/filter_parameter_logging.rb +6 -0
  106. data/samples/app2/config/initializers/inflections.rb +16 -0
  107. data/samples/app2/config/initializers/mime_types.rb +4 -0
  108. data/samples/app2/config/initializers/pubsub.rb +4 -0
  109. data/samples/app2/config/initializers/wrap_parameters.rb +14 -0
  110. data/samples/app2/config/locales/en.yml +33 -0
  111. data/samples/app2/config/puma.rb +43 -0
  112. data/samples/app2/config/routes.rb +3 -0
  113. data/samples/app2/config/spring.rb +6 -0
  114. data/samples/app2/db/migrate/20210513080956_create_customers.rb +10 -0
  115. data/samples/app2/db/migrate/20210513135203_create_posts.rb +10 -0
  116. data/samples/app2/db/schema.rb +31 -0
  117. data/samples/app2/db/seeds.rb +7 -0
  118. data/samples/app2/docker-compose.yml +20 -0
  119. data/samples/app2/log/.keep +0 -0
  120. metadata +97 -3
  121. data/lib/pub_sub_model_sync/publisher.rb +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3cb9b467f173cf208d051aead1d069868b9dfd6cc319311aac4fdaa3431d05f
4
- data.tar.gz: b5f6dad938ee545ab4f99c6cd51b84e574856c63f044f5a46e784ca17a01076c
3
+ metadata.gz: caaffd468399e03dbf5582bf6973339ec61348a6dcc67a87bda1d930f9271aae
4
+ data.tar.gz: 9db2cb5f4a70c218d720130761a24ad7f6450531d845f9517e74968f409c9743
5
5
  SHA512:
6
- metadata.gz: c548cd499bfde36a4d0db4a8dc75e8ad3cadc389cfffb55c95db9ab306ecc7ce338274603e66ebb1f45932fd1de61cc5f6d4ad123c6ed0931ad3284cbdc957f3
7
- data.tar.gz: 62ced05bba4175c69d4453e35f5c9fa3414b1d2f123d40ada555e75bc876488d78f388e87a20a01c1bf895ab2991eeb1a0f2287cbd593aaec8d0429aec7519ee
6
+ metadata.gz: ac6c2b0087e411969e4a0fbe6fa4aa57e3fe46b6ff93f4d675e2a213cd0fd75786b5e16e1a4c1df6aee92296eac0c94a054a6b62543a0f7f643ba2ea0bc8ff7b
7
+ data.tar.gz: 9816c7cedd0d6289d0d73a55f35ede63a46bca7f38805c4c566012fed04a58595498a80fd272ce89b617e34b1d1487ff2ee7f6e050c9712bfd6d75b364ad910a
@@ -0,0 +1,43 @@
1
+ on:
2
+ push:
3
+ tags: # triggered once a git tag is published
4
+ - '*'
5
+
6
+ name: Create Release
7
+
8
+ jobs:
9
+ build:
10
+ name: Create Release
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v2
15
+ with:
16
+ fetch-depth: 0
17
+
18
+ # Changelog action adaptations
19
+ - name: Create required package.json
20
+ run: test -f package.json || echo '{}' >package.json
21
+ - name: Detect Previous Tag (action not detecting very well)
22
+ run: echo "::set-output name=previous_tag::$(git describe --abbrev=0 --tags `git rev-list --tags --skip=1 --max-count=1`)"
23
+ id: tag_checker
24
+
25
+ - name: Generate Changelog
26
+ uses: scottbrenner/generate-changelog-action@master
27
+ id: Changelog
28
+ with:
29
+ from-tag: ${{steps.tag_checker.outputs.previous_tag}}
30
+ to-tag: HEAD
31
+
32
+ - name: Create Release
33
+ id: create_release
34
+ uses: actions/create-release@latest
35
+ env:
36
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
37
+ with:
38
+ tag_name: ${{ github.ref }}
39
+ release_name: Release ${{ github.ref }}
40
+ body: |
41
+ ${{ steps.Changelog.outputs.changelog }}
42
+ draft: false
43
+ prerelease: false
@@ -24,7 +24,7 @@ jobs:
24
24
  steps:
25
25
  - uses: actions/checkout@v2
26
26
  - name: Set up Ruby
27
- uses: actions/setup-ruby@v1
27
+ uses: ruby/setup-ruby@v1
28
28
  with:
29
29
  ruby-version: ${{ matrix.ruby }}
30
30
  - name: Install sqlite3
data/.rubocop.yml CHANGED
@@ -7,6 +7,7 @@ AllCops:
7
7
  - 'Gemfile'
8
8
  - 'Rakefile'
9
9
  - 'bin/*'
10
+ - 'samples/**/*'
10
11
 
11
12
  Metrics/BlockLength:
12
13
  Exclude:
data/CHANGELOG.md CHANGED
@@ -1,10 +1,43 @@
1
1
  # Change Log
2
2
 
3
+ # 1.0 (June 13, 2021)
4
+ This version includes many changes that was refactored from previous version, and thus it needs manual changes to migrate into this version.
5
+ - Refactor: Subscribers param renamed `from_action` into `to_action` and added support for block or lambda
6
+ - Feat: Improved `ps_subscribe` to accept new arguments and support for property mappings
7
+ - Refactor: Refactored `ps_publish` to be called manually (removes notification assumptions) and accept for new arguments
8
+ - Feat: Added `ps_after_action` to listen CRUD events to send notifications in the expected order
9
+ - Feat: Added `config.default_topic_name` to define default topic name whe publishing (by default `config.topic_name`)
10
+ - Refactor: Refactored PubSub Transactions to support rollbacks (any exception inside transactions can automatically cancel all pending notifications: configurable through `config.transactions_use_buffer`)
11
+ - Feat: Improved CRUD transactions to deliver inner notifications in the expected order to keep data consistency
12
+ - System refactor: Added subscriber runner
13
+ - Fix: Class notifications can only be listened by class subscriptions
14
+ - Refactor: Removed `publish_model_data` to have a unique model publisher `ps_publish`
15
+ - Refactor: Renamed `ps_before_sync` into `ps_before_publish`, `ps_after_sync` into `ps_after_publish`
16
+ - Refactor: Renamed `payload.attributes` into `payload.info`
17
+ - Feat: Support for plain Ruby Objects (Non ActiveRecord models)
18
+ - Fix: Retry errors for 5 times before exiting notifications listener
19
+ - Feat: Added transactions max_buffer
20
+ - Feat: add `ps_perform_publish` to perform the callback for a specific action
21
+ - Feat: Removed `ps_skip_sync` callback
22
+
23
+ # 0.6.0 (March 03, 2021)
24
+ - feat: add support to include custom payload headers
25
+ - feat: add pubsub transactions to process all payloads inside in the same order they were published
26
+ - feat: when a model is created/updated/destroyed, process all related payloads in a single transaction
27
+ - feat: add method to save processed payload (:ps_processing_payload) when saving sync
28
+ - feat: add "ordering_key" support to process all payloads with the same key in the same order
29
+ - feat: start multiple workers to process async kafka messages when starting service listeners
30
+ - feat: make async publisher by reusing exchange connection (rabbit)
31
+ - feat: add support for forced_ordering_key to always be used as the ordering_key if defined
32
+ - feat: add feature to publish a message to a custom and/or multiple topics
33
+ - feat: add model custom action subscriber and publisher
34
+ - feat: add docker compose settings
35
+
3
36
  # 0.5.10 (February 13, 2021)
4
37
  - feat: remove duplicated callback :ps_before_save_sync (same result can be achieved with :ps_before_save_sync)
5
38
  - feat: improve message starter to retry when failed or exit system when persists
6
39
  - feat: fix and retry when database connection error (PG::UnableToSend)
7
- - feat: add method to save processed payload (:ps_processed_payload) when saving sync
40
+ - feat: add method to save processed payload (:ps_processing_payload) when saving sync
8
41
  - chore: improved readme (Thanks @CharlieIGG)
9
42
 
10
43
  # 0.5.9.1 (February 10, 2021)
data/Dockerfile ADDED
@@ -0,0 +1,6 @@
1
+ FROM ruby:2.5
2
+ RUN apt-get update -qq
3
+ WORKDIR /app
4
+ COPY . /app
5
+ RUN gem update bundler
6
+ RUN bundle update
data/Gemfile.lock CHANGED
@@ -1,201 +1,217 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pub_sub_model_sync (0.5.10)
4
+ pub_sub_model_sync (1.0)
5
5
  rails
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actioncable (6.0.2.2)
11
- actionpack (= 6.0.2.2)
10
+ actioncable (6.1.3.2)
11
+ actionpack (= 6.1.3.2)
12
+ activesupport (= 6.1.3.2)
12
13
  nio4r (~> 2.0)
13
14
  websocket-driver (>= 0.6.1)
14
- actionmailbox (6.0.2.2)
15
- actionpack (= 6.0.2.2)
16
- activejob (= 6.0.2.2)
17
- activerecord (= 6.0.2.2)
18
- activestorage (= 6.0.2.2)
19
- activesupport (= 6.0.2.2)
15
+ actionmailbox (6.1.3.2)
16
+ actionpack (= 6.1.3.2)
17
+ activejob (= 6.1.3.2)
18
+ activerecord (= 6.1.3.2)
19
+ activestorage (= 6.1.3.2)
20
+ activesupport (= 6.1.3.2)
20
21
  mail (>= 2.7.1)
21
- actionmailer (6.0.2.2)
22
- actionpack (= 6.0.2.2)
23
- actionview (= 6.0.2.2)
24
- activejob (= 6.0.2.2)
22
+ actionmailer (6.1.3.2)
23
+ actionpack (= 6.1.3.2)
24
+ actionview (= 6.1.3.2)
25
+ activejob (= 6.1.3.2)
26
+ activesupport (= 6.1.3.2)
25
27
  mail (~> 2.5, >= 2.5.4)
26
28
  rails-dom-testing (~> 2.0)
27
- actionpack (6.0.2.2)
28
- actionview (= 6.0.2.2)
29
- activesupport (= 6.0.2.2)
30
- rack (~> 2.0, >= 2.0.8)
29
+ actionpack (6.1.3.2)
30
+ actionview (= 6.1.3.2)
31
+ activesupport (= 6.1.3.2)
32
+ rack (~> 2.0, >= 2.0.9)
31
33
  rack-test (>= 0.6.3)
32
34
  rails-dom-testing (~> 2.0)
33
35
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
34
- actiontext (6.0.2.2)
35
- actionpack (= 6.0.2.2)
36
- activerecord (= 6.0.2.2)
37
- activestorage (= 6.0.2.2)
38
- activesupport (= 6.0.2.2)
36
+ actiontext (6.1.3.2)
37
+ actionpack (= 6.1.3.2)
38
+ activerecord (= 6.1.3.2)
39
+ activestorage (= 6.1.3.2)
40
+ activesupport (= 6.1.3.2)
39
41
  nokogiri (>= 1.8.5)
40
- actionview (6.0.2.2)
41
- activesupport (= 6.0.2.2)
42
+ actionview (6.1.3.2)
43
+ activesupport (= 6.1.3.2)
42
44
  builder (~> 3.1)
43
45
  erubi (~> 1.4)
44
46
  rails-dom-testing (~> 2.0)
45
47
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
46
- activejob (6.0.2.2)
47
- activesupport (= 6.0.2.2)
48
+ activejob (6.1.3.2)
49
+ activesupport (= 6.1.3.2)
48
50
  globalid (>= 0.3.6)
49
- activemodel (6.0.2.2)
50
- activesupport (= 6.0.2.2)
51
- activerecord (6.0.2.2)
52
- activemodel (= 6.0.2.2)
53
- activesupport (= 6.0.2.2)
54
- activestorage (6.0.2.2)
55
- actionpack (= 6.0.2.2)
56
- activejob (= 6.0.2.2)
57
- activerecord (= 6.0.2.2)
58
- marcel (~> 0.3.1)
59
- activesupport (6.0.2.2)
51
+ activemodel (6.1.3.2)
52
+ activesupport (= 6.1.3.2)
53
+ activerecord (6.1.3.2)
54
+ activemodel (= 6.1.3.2)
55
+ activesupport (= 6.1.3.2)
56
+ activestorage (6.1.3.2)
57
+ actionpack (= 6.1.3.2)
58
+ activejob (= 6.1.3.2)
59
+ activerecord (= 6.1.3.2)
60
+ activesupport (= 6.1.3.2)
61
+ marcel (~> 1.0.0)
62
+ mini_mime (~> 1.0.2)
63
+ activesupport (6.1.3.2)
60
64
  concurrent-ruby (~> 1.0, >= 1.0.2)
61
- i18n (>= 0.7, < 2)
62
- minitest (~> 5.1)
63
- tzinfo (~> 1.1)
64
- zeitwerk (~> 2.2)
65
+ i18n (>= 1.6, < 2)
66
+ minitest (>= 5.1)
67
+ tzinfo (~> 2.0)
68
+ zeitwerk (~> 2.3)
65
69
  addressable (2.7.0)
66
70
  public_suffix (>= 2.0.2, < 5.0)
67
- amq-protocol (2.3.0)
68
- ast (2.4.1)
71
+ amq-protocol (2.3.2)
72
+ ast (2.4.2)
69
73
  builder (3.2.4)
70
- bunny (2.14.3)
71
- amq-protocol (~> 2.3, >= 2.3.0)
72
- concurrent-ruby (1.1.6)
74
+ bunny (2.17.0)
75
+ amq-protocol (~> 2.3, >= 2.3.1)
76
+ concurrent-ruby (1.1.8)
73
77
  crass (1.0.6)
74
- database_cleaner (1.8.4)
75
- database_cleaner-active_record (1.8.0)
76
- activerecord
77
- database_cleaner (~> 1.8.0)
78
- diff-lcs (1.3)
79
- digest-crc (0.5.1)
78
+ database_cleaner-active_record (2.0.1)
79
+ activerecord (>= 5.a)
80
+ database_cleaner-core (~> 2.0.0)
81
+ database_cleaner-core (2.0.1)
82
+ diff-lcs (1.4.4)
83
+ digest-crc (0.6.3)
84
+ rake (>= 12.0.0, < 14.0.0)
80
85
  erubi (1.10.0)
81
- faraday (1.1.0)
86
+ faraday (1.4.1)
87
+ faraday-excon (~> 1.1)
88
+ faraday-net_http (~> 1.0)
89
+ faraday-net_http_persistent (~> 1.1)
82
90
  multipart-post (>= 1.2, < 3)
83
- ruby2_keywords
84
- gapic-common (0.3.4)
85
- google-protobuf (~> 3.12, >= 3.12.2)
86
- googleapis-common-protos (>= 1.3.9, < 2.0)
87
- googleapis-common-protos-types (>= 1.0.4, < 2.0)
88
- googleauth (~> 0.9)
89
- grpc (~> 1.25)
91
+ ruby2_keywords (>= 0.0.4)
92
+ faraday-excon (1.1.0)
93
+ faraday-net_http (1.0.1)
94
+ faraday-net_http_persistent (1.1.0)
95
+ gapic-common (0.4.1)
96
+ faraday (~> 1.3)
97
+ google-protobuf (~> 3.15, >= 3.15.2)
98
+ googleapis-common-protos (>= 1.3.11, < 2.0)
99
+ googleapis-common-protos-types (>= 1.0.6, < 2.0)
100
+ googleauth (~> 0.15, >= 0.15.1)
101
+ grpc (~> 1.36)
90
102
  globalid (0.4.2)
91
103
  activesupport (>= 4.2.0)
92
- google-cloud-core (1.5.0)
104
+ google-cloud-core (1.6.0)
93
105
  google-cloud-env (~> 1.0)
94
106
  google-cloud-errors (~> 1.0)
95
- google-cloud-env (1.4.0)
107
+ google-cloud-env (1.5.0)
96
108
  faraday (>= 0.17.3, < 2.0)
97
- google-cloud-errors (1.0.1)
98
- google-cloud-pubsub (2.3.0)
109
+ google-cloud-errors (1.1.0)
110
+ google-cloud-pubsub (2.6.1)
99
111
  concurrent-ruby (~> 1.1)
100
112
  google-cloud-core (~> 1.5)
101
113
  google-cloud-pubsub-v1 (~> 0.0)
102
- google-cloud-pubsub-v1 (0.1.2)
114
+ google-cloud-pubsub-v1 (0.4.0)
103
115
  gapic-common (~> 0.3)
104
116
  google-cloud-errors (~> 1.0)
105
117
  grpc-google-iam-v1 (>= 0.6.10, < 2.0)
106
- google-protobuf (3.14.0-universal-darwin)
107
- googleapis-common-protos (1.3.10)
108
- google-protobuf (~> 3.11)
109
- googleapis-common-protos-types (>= 1.0.5, < 2.0)
118
+ google-protobuf (3.17.0)
119
+ google-protobuf (3.17.0-x86_64-linux)
120
+ googleapis-common-protos (1.3.11)
121
+ google-protobuf (~> 3.14)
122
+ googleapis-common-protos-types (>= 1.0.6, < 2.0)
110
123
  grpc (~> 1.27)
111
- googleapis-common-protos-types (1.0.5)
112
- google-protobuf (~> 3.11)
113
- googleauth (0.14.0)
124
+ googleapis-common-protos-types (1.0.6)
125
+ google-protobuf (~> 3.14)
126
+ googleauth (0.16.2)
114
127
  faraday (>= 0.17.3, < 2.0)
115
128
  jwt (>= 1.4, < 3.0)
116
129
  memoist (~> 0.16)
117
130
  multi_json (~> 1.11)
118
131
  os (>= 0.9, < 2.0)
119
132
  signet (~> 0.14)
120
- grpc (1.34.0-universal-darwin)
121
- google-protobuf (~> 3.13)
133
+ grpc (1.37.1)
134
+ google-protobuf (~> 3.15)
122
135
  googleapis-common-protos-types (~> 1.0)
123
- grpc-google-iam-v1 (0.6.10)
124
- google-protobuf (~> 3.11)
125
- googleapis-common-protos (>= 1.3.10, < 2.0)
136
+ grpc (1.37.1-x86_64-linux)
137
+ google-protobuf (~> 3.15)
138
+ googleapis-common-protos-types (~> 1.0)
139
+ grpc-google-iam-v1 (0.6.11)
140
+ google-protobuf (~> 3.14)
141
+ googleapis-common-protos (>= 1.3.11, < 2.0)
126
142
  grpc (~> 1.27)
127
- i18n (1.8.2)
143
+ i18n (1.8.10)
128
144
  concurrent-ruby (~> 1.0)
129
- jwt (2.2.2)
130
- loofah (2.8.0)
145
+ jwt (2.2.3)
146
+ loofah (2.9.1)
131
147
  crass (~> 1.0.2)
132
148
  nokogiri (>= 1.5.9)
133
149
  mail (2.7.1)
134
150
  mini_mime (>= 0.1.1)
135
- marcel (0.3.3)
136
- mimemagic (~> 0.3.2)
151
+ marcel (1.0.1)
137
152
  memoist (0.16.2)
138
153
  method_source (1.0.0)
139
- mimemagic (0.3.5)
140
- mini_mime (1.0.2)
141
- mini_portile2 (2.4.0)
142
- minitest (5.14.0)
154
+ mini_mime (1.0.3)
155
+ minitest (5.14.4)
143
156
  multi_json (1.15.0)
144
157
  multipart-post (2.1.1)
145
- nio4r (2.5.4)
146
- nokogiri (1.10.10)
147
- mini_portile2 (~> 2.4.0)
158
+ nio4r (2.5.7)
159
+ nokogiri (1.11.3-x86_64-darwin)
160
+ racc (~> 1.4)
161
+ nokogiri (1.11.3-x86_64-linux)
162
+ racc (~> 1.4)
148
163
  os (1.1.1)
149
164
  parallel (1.20.1)
150
- parser (2.7.2.0)
165
+ parser (3.0.1.1)
151
166
  ast (~> 2.4.1)
152
167
  public_suffix (4.0.6)
168
+ racc (1.5.2)
153
169
  rack (2.2.3)
154
170
  rack-test (1.1.0)
155
171
  rack (>= 1.0, < 3)
156
- rails (6.0.2.2)
157
- actioncable (= 6.0.2.2)
158
- actionmailbox (= 6.0.2.2)
159
- actionmailer (= 6.0.2.2)
160
- actionpack (= 6.0.2.2)
161
- actiontext (= 6.0.2.2)
162
- actionview (= 6.0.2.2)
163
- activejob (= 6.0.2.2)
164
- activemodel (= 6.0.2.2)
165
- activerecord (= 6.0.2.2)
166
- activestorage (= 6.0.2.2)
167
- activesupport (= 6.0.2.2)
168
- bundler (>= 1.3.0)
169
- railties (= 6.0.2.2)
172
+ rails (6.1.3.2)
173
+ actioncable (= 6.1.3.2)
174
+ actionmailbox (= 6.1.3.2)
175
+ actionmailer (= 6.1.3.2)
176
+ actionpack (= 6.1.3.2)
177
+ actiontext (= 6.1.3.2)
178
+ actionview (= 6.1.3.2)
179
+ activejob (= 6.1.3.2)
180
+ activemodel (= 6.1.3.2)
181
+ activerecord (= 6.1.3.2)
182
+ activestorage (= 6.1.3.2)
183
+ activesupport (= 6.1.3.2)
184
+ bundler (>= 1.15.0)
185
+ railties (= 6.1.3.2)
170
186
  sprockets-rails (>= 2.0.0)
171
187
  rails-dom-testing (2.0.3)
172
188
  activesupport (>= 4.2.0)
173
189
  nokogiri (>= 1.6)
174
190
  rails-html-sanitizer (1.3.0)
175
191
  loofah (~> 2.3)
176
- railties (6.0.2.2)
177
- actionpack (= 6.0.2.2)
178
- activesupport (= 6.0.2.2)
192
+ railties (6.1.3.2)
193
+ actionpack (= 6.1.3.2)
194
+ activesupport (= 6.1.3.2)
179
195
  method_source
180
196
  rake (>= 0.8.7)
181
- thor (>= 0.20.3, < 2.0)
197
+ thor (~> 1.0)
182
198
  rainbow (3.0.0)
183
- rake (13.0.1)
184
- regexp_parser (2.0.1)
185
- rexml (3.2.4)
186
- rspec (3.9.0)
187
- rspec-core (~> 3.9.0)
188
- rspec-expectations (~> 3.9.0)
189
- rspec-mocks (~> 3.9.0)
190
- rspec-core (3.9.1)
191
- rspec-support (~> 3.9.1)
192
- rspec-expectations (3.9.0)
199
+ rake (13.0.3)
200
+ regexp_parser (2.1.1)
201
+ rexml (3.2.5)
202
+ rspec (3.10.0)
203
+ rspec-core (~> 3.10.0)
204
+ rspec-expectations (~> 3.10.0)
205
+ rspec-mocks (~> 3.10.0)
206
+ rspec-core (3.10.1)
207
+ rspec-support (~> 3.10.0)
208
+ rspec-expectations (3.10.1)
193
209
  diff-lcs (>= 1.2.0, < 2.0)
194
- rspec-support (~> 3.9.0)
195
- rspec-mocks (3.9.1)
210
+ rspec-support (~> 3.10.0)
211
+ rspec-mocks (3.10.2)
196
212
  diff-lcs (>= 1.2.0, < 2.0)
197
- rspec-support (~> 3.9.0)
198
- rspec-support (3.9.2)
213
+ rspec-support (~> 3.10.0)
214
+ rspec-support (3.10.2)
199
215
  rubocop (1.6.1)
200
216
  parallel (~> 1.10)
201
217
  parser (>= 2.7.1.5)
@@ -205,13 +221,13 @@ GEM
205
221
  rubocop-ast (>= 1.2.0, < 2.0)
206
222
  ruby-progressbar (~> 1.7)
207
223
  unicode-display_width (>= 1.4.0, < 2.0)
208
- rubocop-ast (1.3.0)
209
- parser (>= 2.7.1.5)
210
- ruby-kafka (1.0.0)
224
+ rubocop-ast (1.5.0)
225
+ parser (>= 3.0.1.1)
226
+ ruby-kafka (1.3.0)
211
227
  digest-crc
212
- ruby-progressbar (1.10.1)
213
- ruby2_keywords (0.0.2)
214
- signet (0.14.0)
228
+ ruby-progressbar (1.11.0)
229
+ ruby2_keywords (0.0.4)
230
+ signet (0.15.0)
215
231
  addressable (~> 2.3)
216
232
  faraday (>= 0.17.3, < 2.0)
217
233
  jwt (>= 1.5, < 3.0)
@@ -224,18 +240,18 @@ GEM
224
240
  activesupport (>= 4.0)
225
241
  sprockets (>= 3.0.0)
226
242
  sqlite3 (1.4.2)
227
- thor (1.0.1)
228
- thread_safe (0.3.6)
229
- tzinfo (1.2.7)
230
- thread_safe (~> 0.1)
243
+ thor (1.1.0)
244
+ tzinfo (2.0.4)
245
+ concurrent-ruby (~> 1.0)
231
246
  unicode-display_width (1.7.0)
232
247
  websocket-driver (0.7.3)
233
248
  websocket-extensions (>= 0.1.0)
234
249
  websocket-extensions (0.1.5)
235
- zeitwerk (2.3.0)
250
+ zeitwerk (2.4.2)
236
251
 
237
252
  PLATFORMS
238
253
  ruby
254
+ x86_64-linux
239
255
 
240
256
  DEPENDENCIES
241
257
  bundler
@@ -250,4 +266,4 @@ DEPENDENCIES
250
266
  sqlite3
251
267
 
252
268
  BUNDLED WITH
253
- 2.1.4
269
+ 2.2.17