jetstream_bridge 2.3.0 → 2.4.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.
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jetstream_bridge
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Attara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-21 00:00:00.000000000 Z
11
+ date: 2025-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activerecord
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -53,33 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.4'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rails
56
+ name: oj
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '6.0'
61
+ version: '3.16'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '6.0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler-audit
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 0.9.1
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 0.9.1
68
+ version: '3.16'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rake
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +136,20 @@ dependencies:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
138
  version: '1.21'
139
+ - !ruby/object:Gem::Dependency
140
+ name: bundler-audit
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 0.9.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.1
153
153
  description: |-
154
154
  Publisher/Consumer utilities for NATS JetStream with environment-scoped subjects,
155
155
  overlap guards, DLQ routing, retries/backoff, and optional Inbox/Outbox patterns.
@@ -160,20 +160,6 @@ executables: []
160
160
  extensions: []
161
161
  extra_rdoc_files: []
162
162
  files:
163
- - ".github/workflows/release.yml"
164
- - ".gitignore"
165
- - ".idea/.gitignore"
166
- - ".idea/dictionaries/project.xml"
167
- - ".idea/jetstream_bridge.iml"
168
- - ".idea/misc.xml"
169
- - ".idea/modules.xml"
170
- - ".idea/vcs.xml"
171
- - ".rubocop.yml"
172
- - Gemfile
173
- - Gemfile.lock
174
- - LICENSE
175
- - README.md
176
- - jetstream_bridge.gemspec
177
163
  - lib/generators/jetstream_bridge/initializer/initializer_generator.rb
178
164
  - lib/generators/jetstream_bridge/initializer/templates/jetstream_bridge.rb
179
165
  - lib/generators/jetstream_bridge/install/install_generator.rb
@@ -181,11 +167,14 @@ files:
181
167
  - lib/generators/jetstream_bridge/migrations/templates/create_jetstream_inbox_events.rb.erb
182
168
  - lib/generators/jetstream_bridge/migrations/templates/create_jetstream_outbox_events.rb.erb
183
169
  - lib/jetstream_bridge.rb
170
+ - lib/jetstream_bridge/consumer/backoff_strategy.rb
184
171
  - lib/jetstream_bridge/consumer/consumer.rb
185
172
  - lib/jetstream_bridge/consumer/consumer_config.rb
173
+ - lib/jetstream_bridge/consumer/dlq_publisher.rb
186
174
  - lib/jetstream_bridge/consumer/inbox/inbox_message.rb
187
175
  - lib/jetstream_bridge/consumer/inbox/inbox_processor.rb
188
176
  - lib/jetstream_bridge/consumer/inbox/inbox_repository.rb
177
+ - lib/jetstream_bridge/consumer/message_context.rb
189
178
  - lib/jetstream_bridge/consumer/message_processor.rb
190
179
  - lib/jetstream_bridge/consumer/subscription_manager.rb
191
180
  - lib/jetstream_bridge/core/config.rb
@@ -1,150 +0,0 @@
1
- name: Release JetstreamBridge (on tag)
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
-
8
- jobs:
9
- release:
10
- runs-on: ubuntu-latest
11
- permissions:
12
- contents: write
13
- packages: write
14
-
15
- env:
16
- RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
17
- # Force Bundler to ignore platform-specific precompiled variants (e.g., arm64-darwin)
18
- BUNDLER_FORCE_RUBY_PLATFORM: "true"
19
-
20
- steps:
21
- - name: Checkout
22
- uses: actions/checkout@v4
23
- with:
24
- fetch-depth: 0
25
-
26
- - name: Derive version from tag
27
- id: ver
28
- shell: bash
29
- run: |
30
- set -euo pipefail
31
- RAW="${GITHUB_REF_NAME}" # e.g. v0.3.2
32
- if [[ ! "$RAW" =~ ^v[0-9]+(\.[0-9]+){2}(-[0-9A-Za-z\.-]+)?$ ]]; then
33
- echo "Tag must look like vX.Y.Z (optionally -rcN). Got: $RAW"
34
- exit 1
35
- fi
36
- VERSION="${RAW#v}"
37
- echo "version=$VERSION" >> "$GITHUB_OUTPUT"
38
- echo "Using version: $VERSION"
39
-
40
- # Install Ruby BEFORE any `ruby -e` or bundler calls
41
- - name: Set up Ruby
42
- uses: ruby/setup-ruby@v1
43
- with:
44
- ruby-version: "3.2"
45
- bundler-cache: false
46
-
47
- - name: Read version.rb
48
- id: file
49
- shell: bash
50
- run: |
51
- set -euo pipefail
52
- FILE_VERSION=$(ruby -e "puts(File.read('lib/jetstream_bridge/version.rb')[/VERSION\\s*=\\s*['\"]([^'\"]+)['\"]/,1])")
53
- echo "file_version=$FILE_VERSION" >> "$GITHUB_OUTPUT"
54
- echo "version.rb currently: $FILE_VERSION"
55
-
56
- - name: Patch version.rb to match tag (no commit)
57
- if: ${{ steps.ver.outputs.version != steps.file.outputs.file_version }}
58
- shell: bash
59
- run: |
60
- set -euo pipefail
61
- echo "Patching version.rb from '${{ steps.file.outputs.file_version }}' to '${{ steps.ver.outputs.version }}' for this build…"
62
- sed -i "s/VERSION\\s*=\\s*['\"][^'\"]\\+['\"]/VERSION = '${{ steps.ver.outputs.version }}'/" lib/jetstream_bridge/version.rb
63
- grep VERSION lib/jetstream_bridge/version.rb
64
-
65
- - name: Prepare Bundler (non-frozen; add Linux/Ruby platforms)
66
- shell: bash
67
- run: |
68
- set -euo pipefail
69
- rm -f .bundle/config || true
70
- bundle config set --local frozen false
71
- bundle config set --local deployment false
72
- bundle config set --local path vendor/bundle
73
- bundle lock --add-platform x86_64-linux || true
74
- bundle lock --add-platform ruby || true
75
-
76
- - name: Install dependencies
77
- shell: bash
78
- run: |
79
- set -euo pipefail
80
- bundle install --jobs 4
81
-
82
- # Optional tests
83
- # - name: Run tests
84
- # run: bundle exec rake
85
-
86
- - name: Build gem
87
- id: build
88
- shell: bash
89
- run: |
90
- set -euo pipefail
91
- gem build jetstream_bridge.gemspec
92
- GEMFILE=$(ls -1 *.gem | tail -n1)
93
- echo "gemfile=${GEMFILE}" >> "$GITHUB_OUTPUT"
94
- ls -l "$GEMFILE"
95
-
96
- - name: Generate CHANGELOG for this release
97
- id: changelog
98
- shell: bash
99
- run: |
100
- set -euo pipefail
101
- TAG="${GITHUB_REF_NAME}"
102
-
103
- # Find previous tag (semantic aware); fallback to first commit
104
- PREV_TAG=$(git tag --sort=-v:refname | sed -n '2p' || true)
105
- if [[ -z "$PREV_TAG" ]]; then
106
- FIRST_COMMIT=$(git rev-list --max-parents=0 HEAD)
107
- RANGE="$FIRST_COMMIT..$TAG"
108
- else
109
- RANGE="$PREV_TAG..$TAG"
110
- fi
111
-
112
- DATE=$(date -u +'%Y-%m-%d')
113
- {
114
- echo "## $TAG — $DATE"
115
- echo
116
- echo "### Changes"
117
- # Exclude merge commits, show subject, short sha, author
118
- if ! git log --no-merges --format='- %s (%h) — %an' "$RANGE"; then
119
- echo "- Initial release"
120
- fi
121
- echo
122
- } > CHANGELOG.md
123
-
124
- echo "prev_tag=${PREV_TAG}" >> "$GITHUB_OUTPUT"
125
- echo "Generated CHANGELOG for range: $RANGE"
126
- sed -n '1,200p' CHANGELOG.md
127
-
128
- - name: Create/Update GitHub Release and upload .gem
129
- uses: softprops/action-gh-release@v2
130
- with:
131
- tag_name: ${{ github.ref_name }}
132
- name: "JetstreamBridge ${{ github.ref_name }}"
133
- files: |
134
- ${{ steps.build.outputs.gemfile }}
135
- CHANGELOG.md
136
- draft: false
137
- generate_release_notes: false
138
- body_path: CHANGELOG.md
139
- prerelease: ${{ contains(steps.ver.outputs.version, '-') }}
140
-
141
- # Publish only if token present
142
- - name: Push to RubyGems
143
- if: ${{ env.RUBYGEMS_API_KEY != '' }}
144
- shell: bash
145
- run: |
146
- set -euo pipefail
147
- mkdir -p ~/.gem
148
- printf -- "---\n:rubygems_api_key: $RUBYGEMS_API_KEY\n" > ~/.gem/credentials
149
- chmod 0600 ~/.gem/credentials
150
- gem push "${{ steps.build.outputs.gemfile }}"
data/.gitignore DELETED
@@ -1,56 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- # .env
15
-
16
- # Ignore Byebug command history file.
17
- .byebug_history
18
-
19
- ## Specific to RubyMotion:
20
- .dat*
21
- .repl_history
22
- build/
23
- *.bridgesupport
24
- build-iPhoneOS/
25
- build-iPhoneSimulator/
26
-
27
- ## Specific to RubyMotion (use of CocoaPods):
28
- #
29
- # We recommend against adding the Pods directory to your .gitignore. However
30
- # you should judge for yourself, the pros and cons are mentioned at:
31
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
- #
33
- # vendor/Pods/
34
-
35
- ## Documentation cache and generated files:
36
- /.yardoc/
37
- /_yardoc/
38
- /doc/
39
- /rdoc/
40
-
41
- ## Environment normalization:
42
- /.bundle/
43
- /vendor/bundle
44
- /lib/bundler/man/
45
-
46
- # for a library or gem, you might want to ignore these files since the code is
47
- # intended to run in multiple environments; otherwise, check them in:
48
- # Gemfile.lock
49
- # .ruby-version
50
- # .ruby-gemset
51
-
52
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
- .rvmrc
54
-
55
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
- # .rubocop-https?--*
data/.idea/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- # Default ignored files
2
- /shelf/
3
- /workspace.xml
4
- # Editor-based HTTP Client requests
5
- /httpRequests/
6
- # Datasource local storage ignored files
7
- /dataSources/
8
- /dataSources.local.xml
@@ -1,17 +0,0 @@
1
- <component name="ProjectDictionaryState">
2
- <dictionary name="project">
3
- <words>
4
- <w>acks</w>
5
- <w>activesupport</w>
6
- <w>backoffs</w>
7
- <w>dedup</w>
8
- <w>esub</w>
9
- <w>msgs</w>
10
- <w>pipefail</w>
11
- <w>psub</w>
12
- <w>sname</w>
13
- <w>softprops</w>
14
- <w>workqueue</w>
15
- </words>
16
- </dictionary>
17
- </component>
@@ -1,102 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$">
8
- <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
- <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
- <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
- </content>
12
- <orderEntry type="inheritedJdk" />
13
- <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="actioncable (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="actionmailbox (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="actionmailer (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="actionpack (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="actiontext (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="actionview (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="activejob (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="activemodel (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="activerecord (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="activestorage (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="activesupport (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.3, rbenv: 3.3.6) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="base64 (v0.3.0, rbenv: 3.3.6) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="benchmark (v0.4.1, rbenv: 3.3.6) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="bigdecimal (v3.2.2, rbenv: 3.3.6) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="builder (v3.3.0, rbenv: 3.3.6) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.6.3, rbenv: 3.3.6) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="bundler-audit (v0.9.2, rbenv: 3.3.6) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.3.5, rbenv: 3.3.6) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="connection_pool (v2.5.3, rbenv: 3.3.6) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, rbenv: 3.3.6) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="date (v3.4.1, rbenv: 3.3.6) [gem]" level="application" />
36
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.6.2, rbenv: 3.3.6) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="drb (v2.2.3, rbenv: 3.3.6) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="erubi (v1.13.1, rbenv: 3.3.6) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="globalid (v1.2.1, rbenv: 3.3.6) [gem]" level="application" />
40
- <orderEntry type="library" scope="PROVIDED" name="i18n (v1.14.7, rbenv: 3.3.6) [gem]" level="application" />
41
- <orderEntry type="library" scope="PROVIDED" name="io-console (v0.8.0, rbenv: 3.3.6) [gem]" level="application" />
42
- <orderEntry type="library" scope="PROVIDED" name="irb (v1.15.2, rbenv: 3.3.6) [gem]" level="application" />
43
- <orderEntry type="library" scope="PROVIDED" name="json (v2.13.2, rbenv: 3.3.6) [gem]" level="application" />
44
- <orderEntry type="library" scope="PROVIDED" name="language_server-protocol (v3.17.0.5, rbenv: 3.3.6) [gem]" level="application" />
45
- <orderEntry type="library" scope="PROVIDED" name="lint_roller (v1.1.0, rbenv: 3.3.6) [gem]" level="application" />
46
- <orderEntry type="library" scope="PROVIDED" name="logger (v1.7.0, rbenv: 3.3.6) [gem]" level="application" />
47
- <orderEntry type="library" scope="PROVIDED" name="loofah (v2.24.0, rbenv: 3.3.6) [gem]" level="application" />
48
- <orderEntry type="library" scope="PROVIDED" name="mail (v2.8.1, rbenv: 3.3.6) [gem]" level="application" />
49
- <orderEntry type="library" scope="PROVIDED" name="marcel (v1.0.4, rbenv: 3.3.6) [gem]" level="application" />
50
- <orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.5, rbenv: 3.3.6) [gem]" level="application" />
51
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.25.5, rbenv: 3.3.6) [gem]" level="application" />
52
- <orderEntry type="library" scope="PROVIDED" name="nats-pure (v2.5.0, rbenv: 3.3.6) [gem]" level="application" />
53
- <orderEntry type="library" scope="PROVIDED" name="net-imap (v0.5.6, rbenv: 3.3.6) [gem]" level="application" />
54
- <orderEntry type="library" scope="PROVIDED" name="net-pop (v0.1.2, rbenv: 3.3.6) [gem]" level="application" />
55
- <orderEntry type="library" scope="PROVIDED" name="net-protocol (v0.2.2, rbenv: 3.3.6) [gem]" level="application" />
56
- <orderEntry type="library" scope="PROVIDED" name="net-smtp (v0.5.1, rbenv: 3.3.6) [gem]" level="application" />
57
- <orderEntry type="library" scope="PROVIDED" name="nio4r (v2.7.4, rbenv: 3.3.6) [gem]" level="application" />
58
- <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.18.7, rbenv: 3.3.6) [gem]" level="application" />
59
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.27.0, rbenv: 3.3.6) [gem]" level="application" />
60
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.3.9.0, rbenv: 3.3.6) [gem]" level="application" />
61
- <orderEntry type="library" scope="PROVIDED" name="pp (v0.6.2, rbenv: 3.3.6) [gem]" level="application" />
62
- <orderEntry type="library" scope="PROVIDED" name="prettyprint (v0.2.0, rbenv: 3.3.6) [gem]" level="application" />
63
- <orderEntry type="library" scope="PROVIDED" name="prism (v1.4.0, rbenv: 3.3.6) [gem]" level="application" />
64
- <orderEntry type="library" scope="PROVIDED" name="psych (v5.2.3, rbenv: 3.3.6) [gem]" level="application" />
65
- <orderEntry type="library" scope="PROVIDED" name="racc (v1.8.1, rbenv: 3.3.6) [gem]" level="application" />
66
- <orderEntry type="library" scope="PROVIDED" name="rack (v3.1.13, rbenv: 3.3.6) [gem]" level="application" />
67
- <orderEntry type="library" scope="PROVIDED" name="rack-session (v2.1.0, rbenv: 3.3.6) [gem]" level="application" />
68
- <orderEntry type="library" scope="PROVIDED" name="rack-test (v2.2.0, rbenv: 3.3.6) [gem]" level="application" />
69
- <orderEntry type="library" scope="PROVIDED" name="rackup (v2.2.1, rbenv: 3.3.6) [gem]" level="application" />
70
- <orderEntry type="library" scope="PROVIDED" name="rails (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
71
- <orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.2.0, rbenv: 3.3.6) [gem]" level="application" />
72
- <orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.6.2, rbenv: 3.3.6) [gem]" level="application" />
73
- <orderEntry type="library" scope="PROVIDED" name="railties (v8.0.2, rbenv: 3.3.6) [gem]" level="application" />
74
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, rbenv: 3.3.6) [gem]" level="application" />
75
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.2.1, rbenv: 3.3.6) [gem]" level="application" />
76
- <orderEntry type="library" scope="PROVIDED" name="rdoc (v6.13.1, rbenv: 3.3.6) [gem]" level="application" />
77
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.11.2, rbenv: 3.3.6) [gem]" level="application" />
78
- <orderEntry type="library" scope="PROVIDED" name="reline (v0.6.1, rbenv: 3.3.6) [gem]" level="application" />
79
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.13.1, rbenv: 3.3.6) [gem]" level="application" />
80
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.13.5, rbenv: 3.3.6) [gem]" level="application" />
81
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.13.5, rbenv: 3.3.6) [gem]" level="application" />
82
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.13.5, rbenv: 3.3.6) [gem]" level="application" />
83
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.13.5, rbenv: 3.3.6) [gem]" level="application" />
84
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.79.2, rbenv: 3.3.6) [gem]" level="application" />
85
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.46.0, rbenv: 3.3.6) [gem]" level="application" />
86
- <orderEntry type="library" scope="PROVIDED" name="rubocop-packaging (v0.6.0, rbenv: 3.3.6) [gem]" level="application" />
87
- <orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.25.0, rbenv: 3.3.6) [gem]" level="application" />
88
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.13.0, rbenv: 3.3.6) [gem]" level="application" />
89
- <orderEntry type="library" scope="PROVIDED" name="securerandom (v0.4.1, rbenv: 3.3.6) [gem]" level="application" />
90
- <orderEntry type="library" scope="PROVIDED" name="stringio (v3.1.6, rbenv: 3.3.6) [gem]" level="application" />
91
- <orderEntry type="library" scope="PROVIDED" name="thor (v1.3.2, rbenv: 3.3.6) [gem]" level="application" />
92
- <orderEntry type="library" scope="PROVIDED" name="timeout (v0.4.3, rbenv: 3.3.6) [gem]" level="application" />
93
- <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.6, rbenv: 3.3.6) [gem]" level="application" />
94
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v3.1.4, rbenv: 3.3.6) [gem]" level="application" />
95
- <orderEntry type="library" scope="PROVIDED" name="unicode-emoji (v4.0.4, rbenv: 3.3.6) [gem]" level="application" />
96
- <orderEntry type="library" scope="PROVIDED" name="uri (v1.0.3, rbenv: 3.3.6) [gem]" level="application" />
97
- <orderEntry type="library" scope="PROVIDED" name="useragent (v0.16.11, rbenv: 3.3.6) [gem]" level="application" />
98
- <orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.7, rbenv: 3.3.6) [gem]" level="application" />
99
- <orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, rbenv: 3.3.6) [gem]" level="application" />
100
- <orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.7.2, rbenv: 3.3.6) [gem]" level="application" />
101
- </component>
102
- </module>
data/.idea/misc.xml DELETED
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 3.3.6" project-jdk-type="RUBY_SDK" />
4
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/jetstream_bridge.iml" filepath="$PROJECT_DIR$/.idea/jetstream_bridge.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
data/.rubocop.yml DELETED
@@ -1,98 +0,0 @@
1
- # .rubocop.yml — JetstreamBridge gem
2
- # Focused for a Ruby gem: Packaging, Bundler, Rake, Performance, RSpec.
3
-
4
- plugins:
5
- - rubocop-performance
6
- - rubocop-packaging
7
-
8
- AllCops:
9
- NewCops: enable
10
- TargetRubyVersion: 2.7 # match gemspec minimum to avoid false positives
11
- Exclude:
12
- - 'bin/*'
13
- - 'pkg/**/*'
14
- - 'tmp/**/*'
15
- - 'vendor/**/*'
16
- - 'spec/fixtures/**/*'
17
-
18
- # ---------- Layout & Style ----------
19
- Layout/LineLength:
20
- Max: 100
21
- Exclude:
22
- - 'spec/**/*' # allow longer expectation/setup lines
23
-
24
- Style/Documentation:
25
- Enabled: false # don’t force top-level docs for every class/module in a gem
26
-
27
- Style/FrozenStringLiteralComment:
28
- Enabled: true
29
-
30
- Style/StringLiterals:
31
- EnforcedStyle: single_quotes
32
- ConsistentQuotesInMultiline: true
33
-
34
- Style/SymbolArray:
35
- EnforcedStyle: brackets
36
-
37
- Style/HashSyntax:
38
- EnforcedShorthandSyntax: either
39
-
40
- # ---------- Metrics (balanced for libs) ----------
41
- Metrics/BlockLength:
42
- Exclude:
43
- - 'spec/**/*'
44
- - 'Rakefile'
45
- - 'tasks/**/*.rake'
46
-
47
- Metrics/MethodLength:
48
- Max: 20
49
- Exclude:
50
- - 'lib/jetstream_bridge/**/publisher*.rb'
51
- - 'lib/jetstream_bridge/**/consumer*.rb'
52
-
53
- Metrics/AbcSize:
54
- Max: 25
55
- Exclude:
56
- - 'lib/jetstream_bridge/**/publisher*.rb'
57
- - 'lib/jetstream_bridge/**/consumer*.rb'
58
-
59
- Metrics/CyclomaticComplexity:
60
- Max: 10
61
-
62
- Metrics/PerceivedComplexity:
63
- Max: 10
64
-
65
- # Optional: relax just for low-level I/O integration code
66
- # (you can delete this once you refactor)
67
-
68
- # ---------- Packaging / Gemspec ----------
69
- # These ship with RuboCop core and rubocop-packaging
70
- Gemspec/RequiredRubyVersion:
71
- Enabled: true # aligns with your gemspec `required_ruby_version`
72
-
73
- Gemspec/DevelopmentDependencies:
74
- Enabled: true
75
-
76
- Packaging/BundlerSetupInTests:
77
- Enabled: true
78
-
79
- Packaging/RequireRelativeHardcodingLib:
80
- Enabled: true
81
-
82
- # ---------- Bundler ----------
83
- Bundler/DuplicatedGem:
84
- Enabled: true
85
-
86
- Bundler/InsecureProtocolSource:
87
- Enabled: true
88
-
89
- Bundler/GemComment:
90
- Enabled: false
91
-
92
- # ---------- Performance ----------
93
- Performance/Detect:
94
- Enabled: true
95
- Performance/RedundantMerge:
96
- Enabled: true
97
- Performance/FixedSize:
98
- Enabled: true
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec