deimos-ruby 1.24.0 → 1.24.2

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: 391cad2b23e7a6ef37106dcc5403af4ef5b62a82c1a6189e712fb3bc339613d1
4
- data.tar.gz: 2bbb4468ee975158489ea797ee67c636d1c5da88cda8b10b33923b4410459178
3
+ metadata.gz: f2be475993ca3cec87d78682f7724b973f5aadb885612f98d5978169da2932bf
4
+ data.tar.gz: 5ab0f052676184f800965bf68aebecac80583d1da2f38561a305e5f5b57a68c9
5
5
  SHA512:
6
- metadata.gz: 48f37dc3bf2d016bc8806ccf26def976af003a4a8ebd46dad37e080fdeb9489f0bd3993747feda26a6e37d997b24f169554bb587e8d7ca88af6de85cf41851dd
7
- data.tar.gz: ccee77567b4599bacc341e25f8c653a3f4ce21252c39dfb9849ffc2005fe44dc58aaa23537bb636f1545b1a691156225f66e1a909949b0bafb8440efa5269c4e
6
+ metadata.gz: 918a363d9994537a221ccc6d00131c75a97f36c8cf89bdda47e0a6e6770b36fd1c3b07e5177d0ef284494020d90dd9081bc9d40ec41f4dc8bbe45e9c4165ea1f
7
+ data.tar.gz: 60d316ef05ce427234e366e32f44addd7188adb45345b025bfb9fd21f339d0c579f317f1e55db20185b9f5f825af3226c27cb53d5e9336ec805200d2a9ce5bd9
@@ -19,10 +19,10 @@ jobs:
19
19
  steps:
20
20
  - uses: actions/checkout@v3
21
21
 
22
- - name: Set up Ruby 2.7
22
+ - name: Set up Ruby 3.3
23
23
  uses: ruby/setup-ruby@v1
24
24
  with:
25
- ruby-version: 2.7
25
+ ruby-version: 3.3
26
26
  bundler-cache: true
27
27
 
28
28
  - name: Bundle install
@@ -36,7 +36,7 @@ jobs:
36
36
  strategy:
37
37
  fail-fast: false
38
38
  matrix:
39
- ruby: [ '2.6', '2.7', '3.0', '3.1' ]
39
+ ruby: [ '2.7', '3.0', '3.1', '3.2', '3.3' ]
40
40
 
41
41
  steps:
42
42
  - uses: actions/checkout@v3
data/.ruby-version CHANGED
@@ -1,2 +1 @@
1
- 2.7.0
2
-
1
+ 3.2.2
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## UNRELEASED
9
9
 
10
+ # 1.24.2 - 2024-05-01
11
+ - Fix: Deprecation notice with Rails 7.
12
+
13
+ # 1.24.1 - 2024-03-26
14
+ - Fix: ActiveRecordConsumer batch consumption was not working with the trilogy adapter.
15
+
10
16
  # 1.24.0 - 2024-02-26
11
17
 
12
18
  ***BREAKING CHANGE****
data/deimos-ruby.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency('sigurd', '>= 0.1.0', '< 1.0')
26
26
 
27
27
  spec.add_development_dependency('activerecord-import')
28
+ spec.add_development_dependency('activerecord-trilogy-adapter')
28
29
  spec.add_development_dependency('avro', '~> 1.9')
29
30
  spec.add_development_dependency('database_cleaner', '~> 1.7')
30
31
  spec.add_development_dependency('ddtrace', '>= 0.11')
@@ -50,7 +50,8 @@ module Deimos
50
50
 
51
51
  options = if @key_cols.empty?
52
52
  {} # Can't upsert with no key, just do regular insert
53
- elsif ActiveRecord::Base.connection.adapter_name.downcase =~ /mysql/
53
+ elsif ActiveRecord::Base.connection.adapter_name.downcase =~ /mysql/ ||
54
+ ActiveRecord::Base.connection.adapter_name.downcase =~ /trilogy/
54
55
  {
55
56
  on_duplicate_key_update: columns
56
57
  }
@@ -6,6 +6,11 @@ module Deimos
6
6
  self.table_name = 'kafka_topic_info'
7
7
 
8
8
  class << self
9
+
10
+ def quote_time(time)
11
+ time.respond_to?(:to_fs) ? time.to_fs(:db) : time.to_s(:db)
12
+ end
13
+
9
14
  # Lock a topic for the given ID. Returns whether the lock was successful.
10
15
  # @param topic [String]
11
16
  # @param lock_id [String]
@@ -22,9 +27,9 @@ module Deimos
22
27
  qtopic = self.connection.quote(topic)
23
28
  qlock_id = self.connection.quote(lock_id)
24
29
  qtable = self.connection.quote_table_name('kafka_topic_info')
25
- qnow = self.connection.quote(Time.zone.now.to_s(:db))
30
+ qnow = self.connection.quote(quote_time(Time.zone.now))
26
31
  qfalse = self.connection.quoted_false
27
- qtime = self.connection.quote(1.minute.ago.to_s(:db))
32
+ qtime = self.connection.quote(quote_time(1.minute.ago))
28
33
 
29
34
  # If a record is marked as error and less than 1 minute old,
30
35
  # we don't want to pick it up even if not currently locked because
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deimos
4
- VERSION = '1.24.0'
4
+ VERSION = '1.24.2'
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -14,6 +14,8 @@ require 'handlers/my_batch_consumer'
14
14
  require 'handlers/my_consumer'
15
15
  require 'rspec/rails'
16
16
  require 'rspec/snapshot'
17
+ require "trilogy_adapter/connection"
18
+ ActiveRecord::Base.public_send :extend, TrilogyAdapter::Connection
17
19
  Dir['./spec/schemas/**/*.rb'].sort.each { |f| require f }
18
20
 
19
21
  # Constants used for consumer specs
@@ -94,6 +96,13 @@ module DbConfigs
94
96
  database: 'test',
95
97
  host: ENV['MYSQL_HOST'] || '127.0.0.1'
96
98
  },
99
+ {
100
+ adapter: 'trilogy',
101
+ port: 3306,
102
+ username: 'root',
103
+ database: 'test',
104
+ host: ENV['MYSQL_HOST'] || '127.0.0.1'
105
+ },
97
106
  {
98
107
  adapter: 'sqlite3',
99
108
  database: 'test.sqlite3'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.24.0
4
+ version: 1.24.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-26 00:00:00.000000000 Z
11
+ date: 2024-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf
@@ -112,6 +112,20 @@ dependencies:
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: activerecord-trilogy-adapter
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
115
129
  - !ruby/object:Gem::Dependency
116
130
  name: avro
117
131
  requirement: !ruby/object:Gem::Requirement
@@ -401,7 +415,6 @@ executables:
401
415
  extensions: []
402
416
  extra_rdoc_files: []
403
417
  files:
404
- - ".circleci/config.yml"
405
418
  - ".github/workflows/ci.yml"
406
419
  - ".gitignore"
407
420
  - ".gitmodules"
@@ -636,7 +649,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
636
649
  - !ruby/object:Gem::Version
637
650
  version: '0'
638
651
  requirements: []
639
- rubygems_version: 3.1.2
652
+ rubygems_version: 3.4.10
640
653
  signing_key:
641
654
  specification_version: 4
642
655
  summary: Kafka libraries for Ruby.
data/.circleci/config.yml DELETED
@@ -1,83 +0,0 @@
1
- defaults: &defaults
2
- parallelism: 1
3
- working_directory: ~/workspace
4
- docker:
5
- - image: ruby:2.6
6
- environment:
7
- RAILS_ENV: test
8
- DB_HOST_IP: 127.0.0.1
9
- version: 2.1
10
- jobs:
11
- build:
12
- <<: *defaults
13
- steps:
14
- - checkout
15
-
16
- # Restore bundle cache & npm cache
17
- - restore_cache:
18
- key: 'rails-{{ checksum "Gemfile.lock" }}'
19
-
20
- # Bundle install dependencies in /tmp/
21
- # so Dockerfile does not copy them since
22
- # its base image is different than CircleCI
23
- - run:
24
- name: Install bundler
25
- command: gem install bundler:2.1.4
26
- - run:
27
- name: Bundle install
28
- command: bundle install --path vendor/bundle --jobs=4 --retry=3
29
-
30
- # Store bundle cache
31
- - save_cache:
32
- key: 'rails-{{ checksum "Gemfile.lock" }}'
33
- paths:
34
- - ~/workspace/vendor/bundle
35
-
36
- - persist_to_workspace:
37
- root: ~/workspace
38
- paths:
39
- - .
40
-
41
- lint:
42
- <<: *defaults
43
- steps:
44
- - attach_workspace:
45
- at: ~/workspace
46
- - run:
47
- name: Install bundler
48
- command: gem install bundler:2.1.4
49
- - run:
50
- name: Point bundle to vendor/bundle
51
- command: bundle --path vendor/bundle
52
- - run: bundle exec rubocop --display-only-fail-level-offenses --fail-level C
53
-
54
- test-rspec:
55
- <<: *defaults
56
- steps:
57
- - attach_workspace:
58
- at: ~/workspace
59
- - run:
60
- name: Install bundler
61
- command: gem install bundler:2.1.4
62
- - run:
63
- name: Point bundle to vendor/bundle
64
- command: bundle --path vendor/bundle
65
- - run: mkdir result
66
- - run:
67
- name: Running rspec
68
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o result/rspec.xml
69
- when: always
70
- - store_test_results:
71
- path: ~/workspace/result
72
-
73
- workflows:
74
- version: 2
75
- build-and-test:
76
- jobs:
77
- - build
78
- - test-rspec:
79
- requires:
80
- - build
81
- - lint:
82
- requires:
83
- - build