rimless 1.5.0 → 1.6.0

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: ca11e9cb748578dec4408dc0feb03a614e880ed4246b00fcf4a35a1fd50fc94a
4
- data.tar.gz: e0eeb43e9d108b3fc597c444d495e3dc5dc5ae8c409742197c80524ab10a4f92
3
+ metadata.gz: 4eabd6c0d5bdd171ce8b754bbd37454bd1289f981ba3568bf58ada17e4eb91d7
4
+ data.tar.gz: be7347e5abb58a8aa18b5ae198e7a36804f13a73905c733d36177a0fbe95fb69
5
5
  SHA512:
6
- metadata.gz: d321ea014b0f430f7abfdb237fb25b9cc038096d4bdd08418c60b6860639978257b01174c3771a7ff1ad5c3a6ecd93195f019cdebaf0985a6292594b01405aeb
7
- data.tar.gz: de2422512c170072d535318de20922f1a47f80d6f75c9425d1ef847b61ae82c42b0e34b9c4593b0f613f309fda49aeb201dfae7fca8db4bb7f5ea428dee176fb
6
+ metadata.gz: 82374943aa7b559372a7eb60eaabb644df4a872d3a4143273a1f0d56f1da490eec3c802a9e306914756fd71c58f57fe149e8f810eafdbc08d9c4d9776eb8ae2c
7
+ data.tar.gz: 3af38794436c3fc86e735c88d7fac36690f75a4f702b4cddbcedb2fa55f2f1e66bfd8831e48798f4021b743da2834241324f66bb6415f08cf9ddf975d4866323
@@ -12,14 +12,14 @@ jobs:
12
12
  runs-on: ubuntu-22.04
13
13
  timeout-minutes: 5
14
14
  steps:
15
- - uses: actions/checkout@v3
15
+ - uses: actions/checkout@v4
16
16
 
17
17
  - name: Install the correct Ruby version
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: 2.5
20
+ ruby-version: 2.7
21
21
  bundler-cache: true
22
- rubygems: '3.3.26'
22
+ rubygems: '3.4.22'
23
23
 
24
24
  - name: Prepare the virtual environment
25
25
  uses: hausgold/actions/ci@master
@@ -18,14 +18,14 @@ jobs:
18
18
  runs-on: ubuntu-22.04
19
19
  timeout-minutes: 5
20
20
  steps:
21
- - uses: actions/checkout@v3
21
+ - uses: actions/checkout@v4
22
22
 
23
- - name: Install Ruby 2.5
23
+ - name: Install Ruby 2.7
24
24
  uses: ruby/setup-ruby@v1
25
25
  with:
26
- ruby-version: 2.5
26
+ ruby-version: 2.7
27
27
  bundler-cache: true
28
- rubygems: '3.3.26'
28
+ rubygems: '3.4.22'
29
29
 
30
30
  - name: Prepare the virtual environment
31
31
  uses: hausgold/actions/ci@master
@@ -18,19 +18,19 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: ['2.5', '2.7']
21
+ ruby: ['2.7']
22
22
  rails: ['5.2']
23
23
  env:
24
24
  BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
25
25
  steps:
26
- - uses: actions/checkout@v3
26
+ - uses: actions/checkout@v4
27
27
 
28
28
  - name: Install the correct Ruby version
29
29
  uses: ruby/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
32
  bundler-cache: true
33
- rubygems: '3.3.26'
33
+ rubygems: '3.4.22'
34
34
 
35
35
  - name: Prepare the virtual environment
36
36
  uses: hausgold/actions/ci@master
data/.rubocop.yml CHANGED
@@ -12,7 +12,7 @@ AllCops:
12
12
  NewCops: enable
13
13
  SuggestExtensions: false
14
14
  DisplayCopNames: true
15
- TargetRubyVersion: 2.5
15
+ TargetRubyVersion: 2.7
16
16
  TargetRailsVersion: 5.2
17
17
  Exclude:
18
18
  - bin/**/*
@@ -65,9 +65,3 @@ RSpec/FilePath:
65
65
  # Because we just implemented the ActiveRecord API.
66
66
  Rails/SkipsModelValidations:
67
67
  Enabled: false
68
-
69
- # Because Rubocop does not respect the `TargetRubyVersion: 2.5` for this cop,
70
- # so it converts to `then` which is not yet available on Ruby 2.5 which causes
71
- # `NoMethodError` errors. NOTE: Remove when Ruby 2.5 support is dropped.
72
- Style/ObjectThen:
73
- Enabled: false
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 1.6.0
6
+
7
+ * Dropped support for Ruby <2.7 (#38)
8
+ * Moved the schema file validation into the retry block for parallel execution
9
+ (#37)
10
+ * Updated the [Kafka Playground](./doc/kafka-playground) to the latest
11
+ Apache Kafka (3.7) and Schema Registry (7.6) versions (#35)
12
+
13
+ ### 1.5.1
14
+
15
+ * Added a retry to write compiled schema files as this may fail on parallel
16
+ execution (#33)
17
+
5
18
  ### 1.5.0
6
19
 
7
20
  * Do not extend the `Rimless.logger` to write to stdout by default when running
data/Dockerfile CHANGED
@@ -1,8 +1,8 @@
1
- FROM hausgold/ruby:2.5
1
+ FROM hausgold/ruby:2.7
2
2
  MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
3
3
 
4
4
  # Update system gem
5
- RUN gem update --system '3.3.26'
5
+ RUN gem update --system '3.4.22'
6
6
 
7
7
  # Install system packages and the latest bundler
8
8
  RUN apt-get update -yqqq && \
@@ -11,7 +11,7 @@ RUN apt-get update -yqqq && \
11
11
  ca-certificates \
12
12
  bash-completion inotify-tools && \
13
13
  echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
14
- gem install bundler -v '~> 2.3.0' --no-document --no-prerelease
14
+ gem install bundler -v '~> 2.4.22' --no-document --no-prerelease
15
15
 
16
16
  # Add new web user
17
17
  RUN mkdir /app && \
data/Gemfile CHANGED
@@ -11,7 +11,9 @@ gemspec
11
11
  gem 'appraisal', '~> 2.4'
12
12
  gem 'bundler', '~> 2.3'
13
13
  gem 'countless', '~> 1.1'
14
- gem 'factory_bot', '~> 6.2'
14
+ # TODO: Remove the upper lock when
15
+ # https://github.com/thoughtbot/factory_bot/issues/1614 is solved.
16
+ gem 'factory_bot', '~> 6.2', '< 6.4.5'
15
17
  gem 'guard-rspec', '~> 4.7'
16
18
  gem 'railties', '>= 5.2'
17
19
  gem 'rake', '~> 13.0'
data/Makefile CHANGED
@@ -25,6 +25,7 @@ ID ?= id
25
25
  MKDIR ?= mkdir
26
26
  RM ?= rm
27
27
  XARGS ?= xargs
28
+ TEST ?= test
28
29
 
29
30
  # Container binaries
30
31
  APPRAISAL ?= appraisal
@@ -35,6 +36,7 @@ RAKE ?= rake
35
36
  RSPEC ?= rspec
36
37
  RUBOCOP ?= rubocop
37
38
  YARD ?= yard
39
+ RUBY_VERSION := ruby-version
38
40
 
39
41
  # Files
40
42
  GEMFILES ?= $(subst _,-,$(patsubst $(GEMFILES_DIR)/%.gemfile,%,\
@@ -113,7 +115,8 @@ test-style: \
113
115
 
114
116
  test-style-ruby:
115
117
  # Run the static code analyzer (rubocop)
116
- @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a)
118
+ @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a \
119
+ || ($(TEST) $$($(RUBY_VERSION)) != '2.7' && true))
117
120
 
118
121
  clean:
119
122
  # Clean the dependencies
@@ -15,7 +15,9 @@ sudo sed -i 's/autostart=.*/autostart=false/g' /etc/supervisor/conf.d/*
15
15
  sudo supervisord >/dev/null 2>&1 &
16
16
 
17
17
  # Wait for supervisord
18
- while ! supervisorctl status >/dev/null 2>&1; do sleep 1; done
18
+ while ! (sudo supervisorctl status | grep avahi) >/dev/null 2>&1; do
19
+ sleep 1
20
+ done
19
21
 
20
22
  # Boot the mDNS stack
21
23
  echo '# Start the mDNS stack'
@@ -1,11 +1,11 @@
1
- FROM hausgold/ruby:2.5
1
+ FROM hausgold/ruby:2.7
2
2
  MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
3
3
 
4
4
  # Update system gem
5
- RUN gem update --system
5
+ RUN gem update --system '3.4.22'
6
6
 
7
7
  # Add backports repository
8
- RUN echo 'deb http://ftp.debian.org/debian buster-backports main' \
8
+ RUN echo 'deb http://archive.debian.org/debian buster-backports main' \
9
9
  >> /etc/apt/sources.list
10
10
 
11
11
  # Install nodejs 16
@@ -18,7 +18,7 @@ RUN apt-get update -yqqq && \
18
18
  ca-certificates jq curl cmake \
19
19
  bash-completion inotify-tools && \
20
20
  echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
21
- gem install bundler --no-document --no-prerelease
21
+ gem install bundler -v '~> 2.4.22' --no-document --no-prerelease
22
22
 
23
23
  # Install kcat (formerly known as kafkacat)
24
24
  RUN curl -sL https://github.com/edenhill/kcat/archive/refs/tags/1.7.0.tar.gz \
@@ -3,6 +3,6 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  # A bundle of opinionated Apache Kafka / Confluent Schema Registry helpers.
6
- gem 'rimless', '~> 1.2'
6
+ gem 'rimless', '~> 1.5'
7
7
  # Thor is a toolkit for building powerful command-line interfaces.
8
8
  gem 'thor', '~> 1.1'
@@ -1,27 +1,29 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (6.1.4.1)
4
+ activesupport (6.1.7.7)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.2)
6
6
  i18n (>= 1.6, < 2)
7
7
  minitest (>= 5.1)
8
8
  tzinfo (~> 2.0)
9
9
  zeitwerk (~> 2.3)
10
- addressable (2.8.0)
11
- public_suffix (>= 2.0.2, < 5.0)
10
+ addressable (2.8.6)
11
+ public_suffix (>= 2.0.2, < 6.0)
12
12
  avro (1.9.2)
13
13
  multi_json
14
14
  avro_turf (0.11.0)
15
15
  avro (>= 1.7.7, < 1.10)
16
16
  excon (~> 0.45)
17
- concurrent-ruby (1.1.9)
18
- connection_pool (2.2.5)
19
- crack (0.4.5)
17
+ bigdecimal (3.1.8)
18
+ concurrent-ruby (1.2.3)
19
+ connection_pool (2.4.1)
20
+ crack (1.0.0)
21
+ bigdecimal
20
22
  rexml
21
- delivery_boy (1.1.0)
23
+ delivery_boy (1.2.0)
22
24
  king_konf (~> 1.0)
23
- ruby-kafka (~> 1.0)
24
- digest-crc (0.6.4)
25
+ ruby-kafka (~> 1.5)
26
+ digest-crc (0.6.5)
25
27
  rake (>= 12.0.0, < 14.0.0)
26
28
  dry-configurable (0.12.1)
27
29
  concurrent-ruby (~> 1.0)
@@ -64,15 +66,15 @@ GEM
64
66
  dry-equalizer (~> 0.2)
65
67
  dry-initializer (~> 3.0)
66
68
  dry-schema (~> 1.5, >= 1.5.2)
67
- envlogic (1.1.3)
69
+ envlogic (1.1.4)
68
70
  dry-inflector (~> 0.1)
69
- excon (0.87.0)
70
- hashdiff (1.0.1)
71
- i18n (1.8.10)
71
+ excon (0.109.0)
72
+ hashdiff (1.1.0)
73
+ i18n (1.14.5)
72
74
  concurrent-ruby (~> 1.0)
73
75
  io-console (0.5.9)
74
- irb (1.3.7)
75
- reline (>= 0.2.7)
76
+ irb (1.4.2)
77
+ reline (>= 0.3.0)
76
78
  karafka (1.4.3)
77
79
  dry-configurable (~> 0.8)
78
80
  dry-inflector (~> 0.1)
@@ -90,46 +92,50 @@ GEM
90
92
  sidekiq (>= 4.2)
91
93
  karafka-testing (1.4.1)
92
94
  karafka (~> 1.4.0.rc2)
93
- king_konf (1.0.0)
94
- minitest (5.14.4)
95
+ king_konf (1.0.1)
96
+ minitest (5.15.0)
95
97
  multi_json (1.15.0)
96
- mustermann (1.1.1)
98
+ mustermann (2.0.2)
97
99
  ruby2_keywords (~> 0.0.1)
98
- public_suffix (4.0.6)
99
- rack (2.2.3)
100
- rack-protection (2.1.0)
100
+ public_suffix (4.0.7)
101
+ rack (2.2.9)
102
+ rack-protection (2.2.4)
101
103
  rack
102
- rake (13.0.6)
103
- redis (4.4.0)
104
- reline (0.2.7)
104
+ rake (13.2.1)
105
+ redis (4.8.1)
106
+ reline (0.3.1)
105
107
  io-console (~> 0.5)
106
- rexml (3.2.5)
107
- rimless (1.2.0)
108
- activesupport (>= 4.2.0)
108
+ retries (0.0.5)
109
+ rexml (3.2.8)
110
+ strscan (>= 3.0.9)
111
+ rimless (1.5.1)
112
+ activesupport (>= 5.2)
109
113
  avro_turf (~> 0.11.0)
110
- karafka (~> 1.4)
114
+ karafka (~> 1.4, < 1.4.15)
111
115
  karafka-sidekiq-backend (~> 1.4)
112
116
  karafka-testing (~> 1.4)
113
- sinatra
117
+ retries (>= 0.0.5)
118
+ sinatra (~> 2.2)
114
119
  sparsify (~> 1.1)
115
- waterdrop (~> 1.2)
116
- webmock
117
- ruby-kafka (1.4.0)
120
+ waterdrop (~> 1.4)
121
+ webmock (~> 3.18)
122
+ ruby-kafka (1.5.0)
118
123
  digest-crc
119
124
  ruby2_keywords (0.0.5)
120
- sidekiq (6.2.2)
121
- connection_pool (>= 2.2.2)
125
+ sidekiq (6.5.12)
126
+ connection_pool (>= 2.2.5, < 3)
122
127
  rack (~> 2.0)
123
- redis (>= 4.2.0)
124
- sinatra (2.1.0)
125
- mustermann (~> 1.0)
128
+ redis (>= 4.5.0, < 5)
129
+ sinatra (2.2.4)
130
+ mustermann (~> 2.0)
126
131
  rack (~> 2.2)
127
- rack-protection (= 2.1.0)
132
+ rack-protection (= 2.2.4)
128
133
  tilt (~> 2.0)
129
134
  sparsify (1.1.0)
130
- thor (1.1.0)
131
- tilt (2.0.10)
132
- tzinfo (2.0.4)
135
+ strscan (3.1.0)
136
+ thor (1.2.2)
137
+ tilt (2.3.0)
138
+ tzinfo (2.0.6)
133
139
  concurrent-ruby (~> 1.0)
134
140
  waterdrop (1.4.2)
135
141
  delivery_boy (>= 0.2, < 2.x)
@@ -138,17 +144,17 @@ GEM
138
144
  dry-validation (~> 1.2)
139
145
  ruby-kafka (>= 0.7.8)
140
146
  zeitwerk (~> 2.1)
141
- webmock (3.14.0)
147
+ webmock (3.23.0)
142
148
  addressable (>= 2.8.0)
143
149
  crack (>= 0.3.2)
144
150
  hashdiff (>= 0.4.0, < 2.0.0)
145
- zeitwerk (2.4.2)
151
+ zeitwerk (2.6.14)
146
152
 
147
153
  PLATFORMS
148
154
  x86_64-linux
149
155
 
150
156
  DEPENDENCIES
151
- rimless (~> 1.2)
157
+ rimless (~> 1.5)
152
158
  thor (~> 1.1)
153
159
 
154
160
  BUNDLED WITH
@@ -76,10 +76,15 @@ the creation of the `/etc/mdns.allow` file.
76
76
  After the installation and bootup processes are finished you should have a
77
77
  working Apache Kafka setup which includes the following:
78
78
 
79
- * A single node [Apache Kafka](https://kafka.apache.org/) broker via [Zookeeper](https://zookeeper.apache.org/)
80
- * [Confluent Schema Registry](https://docs.confluent.io/platform/current/schema-registry/index.html), used for [Apache Avro](https://avro.apache.org/docs/current/) schemas
81
- * [Lenses.io Schema Registry UI](https://github.com/lensesio/schema-registry-ui), you can access it via mDNS at http://schema-registry-ui.playground.local
82
- * A Ruby 2.5 enabled playground container with configured Rimless support
79
+ * A single node [Apache Kafka](https://kafka.apache.org/) (without Zookeeper,
80
+ KRaft) broker
81
+ * [Confluent Schema
82
+ Registry](https://docs.confluent.io/platform/current/schema-registry/index.html),
83
+ used for [Apache Avro](https://avro.apache.org/docs/current/) schemas
84
+ * [Lenses.io Schema Registry
85
+ UI](https://github.com/lensesio/schema-registry-ui), you can access it via
86
+ mDNS at http://schema-registry-ui.playground.local
87
+ * A Ruby 2.7 enabled playground container with configured Rimless support
83
88
 
84
89
  ## Examples
85
90
 
@@ -12,6 +12,7 @@ class CreateTopic < Thor
12
12
  desc: 'The number of replications'
13
13
  option :verbose, aliases: '-v', type: :boolean,
14
14
  desc: 'Enable verbose outputs'
15
+
15
16
  def create(name, *configs)
16
17
  debug! options
17
18
 
@@ -8,6 +8,7 @@ class DeleteTopic < Thor
8
8
  desc 'NAME', 'delete an existing Apache Kafka topic'
9
9
  option :verbose, aliases: '-v', type: :boolean,
10
10
  desc: 'Enable verbose outputs'
11
+
11
12
  def delete(name)
12
13
  debug! options
13
14
 
@@ -12,6 +12,7 @@ class ProduceTopic < Thor
12
12
  desc: 'The partition key to use to select the partition'
13
13
  option :verbose, aliases: '-v', type: :boolean,
14
14
  desc: 'Enable verbose outputs'
15
+
15
16
  def produce(topic, *files)
16
17
  debug! options
17
18
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
4
  require 'bundler/setup' # Set up gems listed in the Gemfile.
3
5
  require 'active_support'
@@ -30,7 +32,7 @@ KafkaClient = Kafka.new(Rimless.configuration.kafka_brokers, logger: AppLogger)
30
32
  # (Avahi, libnss[-mdns]). The default resolver of +Resolv+ does not include the
31
33
  # mDNS stack so we have to reconfigure it here for local usage only.
32
34
  #
33
- # See: https://docs.ruby-lang.org/en/2.5.0/Resolv.html
35
+ # See: https://docs.ruby-lang.org/en/2.7.0/Resolv.html
34
36
  require 'resolv'
35
37
  Resolv::DefaultResolver.replace_resolvers(
36
38
  [
@@ -1,35 +1,12 @@
1
1
  version: "3"
2
2
  services:
3
- zookeeper:
4
- image: zookeeper:3.7
5
- network_mode: bridge
6
- ports: ["2181"]
7
- ulimits:
8
- # Due to systemd/pam RLIMIT_NOFILE settings (max int inside the
9
- # container), the Java process seams to allocate huge limits which result
10
- # in a +unable to allocate file descriptor table - out of memory+ error.
11
- # Lowering this value fixes the issue for now.
12
- #
13
- # See: http://bit.ly/2U62A80
14
- # See: http://bit.ly/2T2Izit
15
- nofile:
16
- soft: 100000
17
- hard: 100000
18
-
19
3
  kafka:
20
- image: hausgold/kafka:2.1
4
+ image: hausgold/kafka:3.7
21
5
  network_mode: bridge
22
6
  environment:
23
7
  MDNS_HOSTNAME: kafka.playground.local
24
8
  # See: http://bit.ly/2UDzgqI for Kafka downscaling
25
9
  KAFKA_HEAP_OPTS: -Xmx256M -Xms32M
26
- links:
27
- - zookeeper
28
- extra_hosts:
29
- # Due to missing nss-mdns support on Alpine Linux
30
- # and the requirement to tell our self who we are
31
- # for Apache Kafka, we register ourself as hostent.
32
- - kafka.playground.local:127.0.0.1
33
10
  ulimits:
34
11
  # Due to systemd/pam RLIMIT_NOFILE settings (max int inside the
35
12
  # container), the Java process seams to allocate huge limits which result
@@ -43,17 +20,16 @@ services:
43
20
  hard: 100000
44
21
 
45
22
  schema-registry:
46
- image: hausgold/schema-registry:5.1.2
23
+ image: hausgold/schema-registry:7.6
47
24
  network_mode: bridge
48
25
  environment:
49
26
  MDNS_HOSTNAME: schema-registry.playground.local
27
+ SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka.playground.local:9092
50
28
  # Set the default Apache Avro schema compatibility
51
29
  #
52
30
  # See: http://bit.ly/2TcpoY1
53
31
  # See: http://bit.ly/2Hfo4wj
54
32
  SCHEMA_REGISTRY_AVRO_COMPATIBILITY_LEVEL: full
55
- links:
56
- - zookeeper
57
33
  ulimits:
58
34
  # Due to systemd/pam RLIMIT_NOFILE settings (max int inside the
59
35
  # container), the Java process seams to allocate huge limits which result
@@ -5,7 +5,7 @@ source "https://rubygems.org"
5
5
  gem "appraisal", "~> 2.4"
6
6
  gem "bundler", "~> 2.3"
7
7
  gem "countless", "~> 1.1"
8
- gem "factory_bot", "~> 6.2"
8
+ gem "factory_bot", "~> 6.2", "< 6.4.5"
9
9
  gem "guard-rspec", "~> 4.7"
10
10
  gem "railties", "~> 5.2.0"
11
11
  gem "rake", "~> 13.0"
@@ -34,12 +34,16 @@ module Rimless
34
34
  def render_file(src)
35
35
  # Convert the template path to the destination path
36
36
  dest = schema_path(src)
37
- # Create the deep path when not yet existing
38
- FileUtils.mkdir_p(File.dirname(dest))
39
- # Write the rendered file contents to the destination
40
- File.write(dest, ERB.new(File.read(src)).result(binding))
41
- # Check the written file for correct JSON
42
- validate_file(dest)
37
+
38
+ # Allow parallel cleanups and execution
39
+ with_retries(max_tries: 3, rescue: Errno::ENOENT) do
40
+ # Create the deep path when not yet existing
41
+ FileUtils.mkdir_p(File.dirname(dest))
42
+ # Write the rendered file contents to the destination
43
+ File.write(dest, ERB.new(File.read(src)).result(binding))
44
+ # Check the written file for correct JSON
45
+ validate_file(dest)
46
+ end
43
47
  end
44
48
 
45
49
  # Check the given file for valid JSON.
@@ -19,9 +19,9 @@ module Rimless
19
19
  # occurence should be rare.
20
20
  Rimless
21
21
  .decode(params.raw_payload)
22
- .yield_self { |data| Sparsify(data, sparse_array: true) }
23
- .yield_self { |data| data.transform_keys { |key| key.delete('\\') } }
24
- .yield_self { |data| Unsparsify(data, sparse_array: true) }
22
+ .then { |data| Sparsify(data, sparse_array: true) }
23
+ .then { |data| data.transform_keys { |key| key.delete('\\') } }
24
+ .then { |data| Unsparsify(data, sparse_array: true) }
25
25
  .deep_symbolize_keys
26
26
  end
27
27
  end
data/lib/rimless/rspec.rb CHANGED
@@ -36,7 +36,7 @@ RSPEC_CONFIGURER.configure do |config|
36
36
  num = ENV.fetch('TEST_ENV_NUMBER', nil)
37
37
  num = '1' if num.empty?
38
38
 
39
- conf.compiled_avro_schema_path = \
39
+ conf.compiled_avro_schema_path =
40
40
  conf.compiled_avro_schema_path.join("test-worker-#{num}")
41
41
  end
42
42
  end
@@ -15,7 +15,7 @@ namespace :rimless do
15
15
 
16
16
  Rimless.consumer.consumer_groups.each do |consumer_group|
17
17
  consumer_group.topics.each do |topic|
18
- name = topic.name.split('.')[1..-1].join('.')
18
+ name = topic.name.split('.')[1..].join('.')
19
19
 
20
20
  puts "# Topic: #{name}"
21
21
  puts "# Consumer: #{topic.consumer}"
@@ -16,7 +16,7 @@ RSpec.describe CustomConsumer do
16
16
  end
17
17
 
18
18
  it 'returns the payload properties' do
19
- expect(action).to be_eql(['test', nil])
19
+ expect(action).to eql(['test', nil])
20
20
  end
21
21
  end
22
22
  end
@@ -3,7 +3,7 @@
3
3
  # The gem version details.
4
4
  module Rimless
5
5
  # The version of the +rimless+ gem
6
- VERSION = '1.5.0'
6
+ VERSION = '1.6.0'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/rimless.rb CHANGED
@@ -14,6 +14,7 @@ require 'avro_turf/messaging'
14
14
  require 'karafka'
15
15
  require 'karafka-sidekiq-backend'
16
16
  require 'sparsify'
17
+ require 'retries'
17
18
  require 'erb'
18
19
 
19
20
  # The top level namespace for the rimless gem.
data/log/make.log ADDED
@@ -0,0 +1,6 @@
1
+ GNU Make 4.3
2
+ Built for x86_64-pc-linux-gnu
3
+ Copyright (C) 1988-2020 Free Software Foundation, Inc.
4
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
5
+ This is free software: you are free to change and redistribute it.
6
+ There is NO WARRANTY, to the extent permitted by law.
data/rimless.gemspec CHANGED
@@ -33,13 +33,14 @@ Gem::Specification.new do |spec|
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ['lib']
35
35
 
36
- spec.required_ruby_version = '>= 2.5'
36
+ spec.required_ruby_version = '>= 2.7'
37
37
 
38
38
  spec.add_runtime_dependency 'activesupport', '>= 5.2'
39
39
  spec.add_runtime_dependency 'avro_turf', '~> 0.11.0'
40
40
  spec.add_runtime_dependency 'karafka', '~> 1.4', '< 1.4.15'
41
41
  spec.add_runtime_dependency 'karafka-sidekiq-backend', '~> 1.4'
42
42
  spec.add_runtime_dependency 'karafka-testing', '~> 1.4'
43
+ spec.add_runtime_dependency 'retries', '>= 0.0.5'
43
44
  spec.add_runtime_dependency 'sinatra', '~> 2.2'
44
45
  spec.add_runtime_dependency 'sparsify', '~> 1.1'
45
46
  spec.add_runtime_dependency 'waterdrop', '~> 1.4'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rimless
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-04 00:00:00.000000000 Z
11
+ date: 2024-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '1.4'
89
+ - !ruby/object:Gem::Dependency
90
+ name: retries
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.0.5
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.0.5
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: sinatra
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -228,6 +242,7 @@ files:
228
242
  - lib/rimless/tasks/templates/karafka.rb
229
243
  - lib/rimless/version.rb
230
244
  - log/development.log
245
+ - log/make.log
231
246
  - rimless.gemspec
232
247
  homepage:
233
248
  licenses:
@@ -246,7 +261,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
261
  requirements:
247
262
  - - ">="
248
263
  - !ruby/object:Gem::Version
249
- version: '2.5'
264
+ version: '2.7'
250
265
  required_rubygems_version: !ruby/object:Gem::Requirement
251
266
  requirements:
252
267
  - - ">="