From c12c307e5d4990e75a4a5da3ea2f5867afde3a6b Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Wed, 15 Jun 2022 11:45:31 +0200 Subject: [PATCH 1/7] switch away of activejob and use sidekiq api --- event_tracker.gemspec | 6 ++++-- spec/spec_helper.rb | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/event_tracker.gemspec b/event_tracker.gemspec index 043b77c..a82e956 100644 --- a/event_tracker.gemspec +++ b/event_tracker.gemspec @@ -29,10 +29,12 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 2.2.29" - spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "rake", "~> 12.0" spec.add_development_dependency "rspec", "~> 3.0" spec.add_dependency 'activerecord' - spec.add_dependency 'activejob' + spec.add_dependency 'rails', '~> 6.1.6' + spec.add_dependency 'sidekiq', '~> 6.4', '>= 6.4.1' + spec.add_dependency 'rspec-sidekiq' spec.add_dependency 'mixpanel-ruby', '~> 2.2', '>= 2.2.0' end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0f9d82a..2370a9b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,6 +1,17 @@ require 'bundler/setup' -require 'active_job' require 'event_tracker' +require 'rspec-sidekiq' + +RSpec::Sidekiq.configure do |config| + # Clears all job queues before each example + config.clear_all_enqueued_jobs = true # default => true + + # Whether to use terminal colours when outputting messages + config.enable_terminal_colours = true # default => true + + # Warn when jobs are not enqueued to Redis but to a job array + config.warn_when_jobs_not_processed_by_sidekiq = true # default => true +end RSpec.configure do |config| # Enable flags like --only-failures and --next-failure @@ -11,6 +22,6 @@ end config.before(:all) do - ActiveJob::Base.queue_adapter = :test + Sidekiq::Testing.inline! end end From 03f9fa805db58d2a91e2439edfbd16e171e96d9e Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Wed, 15 Jun 2022 11:45:47 +0200 Subject: [PATCH 2/7] usingf sidekiq api --- lib/event_tracker/jobs/tracker_job.rb | 7 ++++--- lib/event_tracker/tracker.rb | 3 ++- lib/event_tracker/trackers/development.rb | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/event_tracker/jobs/tracker_job.rb b/lib/event_tracker/jobs/tracker_job.rb index 5f14be0..ea21a50 100644 --- a/lib/event_tracker/jobs/tracker_job.rb +++ b/lib/event_tracker/jobs/tracker_job.rb @@ -1,9 +1,10 @@ -require 'active_job' +require 'sidekiq' module EventTracker module Jobs - class TrackerJob < ::ActiveJob::Base - queue_as :default + class TrackerJob + include Sidekiq::Worker + sidekiq_options queue: :default def perform(_doer_id, _event_name, _event_label, _properties) raise NotImplementedError, 'Implement in adapter' diff --git a/lib/event_tracker/tracker.rb b/lib/event_tracker/tracker.rb index 2ef7589..8f17f3c 100644 --- a/lib/event_tracker/tracker.rb +++ b/lib/event_tracker/tracker.rb @@ -1,3 +1,4 @@ +require 'rails' module EventTracker class Tracker def initialize(doer_id, context = {}) @@ -27,7 +28,7 @@ def context_with_(properties) end def development? - Rails.env.development? + ::Rails.env.development? end end end diff --git a/lib/event_tracker/trackers/development.rb b/lib/event_tracker/trackers/development.rb index 9bd2214..e06705f 100644 --- a/lib/event_tracker/trackers/development.rb +++ b/lib/event_tracker/trackers/development.rb @@ -2,8 +2,8 @@ module EventTracker module Trackers class Development < Base def track(event_name, event_label, properties) - EventTracker::Jobs::DevelopmentJob.perform_later(@doer_id, event_name, event_label, properties) + EventTracker::Jobs::DevelopmentJob.perform_async(@doer_id, event_name, event_label, properties) end end end -end \ No newline at end of file +end From 2569afee16120de599252ff0af9b7894c1d53d9c Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Mon, 20 Jun 2022 10:47:29 +0200 Subject: [PATCH 3/7] reorder dependencies after updating branch with master --- event_tracker.gemspec | 2 -- 1 file changed, 2 deletions(-) diff --git a/event_tracker.gemspec b/event_tracker.gemspec index b025d86..cacb987 100644 --- a/event_tracker.gemspec +++ b/event_tracker.gemspec @@ -37,7 +37,5 @@ Gem::Specification.new do |spec| spec.add_dependency 'rails', '~> 6.1.6' spec.add_dependency 'sidekiq', '~> 6.4', '>= 6.4.1' spec.add_dependency 'rspec-sidekiq' - spec.add_dependency 'mixpanel-ruby', '~> 2.2', '>= 2.2.0' - spec.add_dependency 'rails', '~> 6.1.6' end From cbc23e34f201fc46190685cfb2bcfabdda747d6c Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Mon, 20 Jun 2022 10:51:25 +0200 Subject: [PATCH 4/7] updating bundler version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f41d067..87a7feb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN apt-get -q update && \ COPY . . ARG BUNDLE_GITHUB__COM -ENV BUNDLER_VERSION=2.1.4 +ENV BUNDLER_VERSION=2.2.29 RUN gem update --system \ && gem install bundler -v $BUNDLER_VERSION \ && bundle install -j 4 From 2d25895013cc64e0069f81057809ab77a89cb033 Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Mon, 20 Jun 2022 11:00:24 +0200 Subject: [PATCH 5/7] configure logger in rspec --- Gemfile.lock | 12 +++++++++++- lib/event_tracker/jobs/tracker_job.rb | 2 +- spec/spec_helper.rb | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f95ca60..dc65efd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,10 +16,11 @@ PATH remote: . specs: event_tracker (1.2.0) - activejob activerecord mixpanel-ruby (~> 2.2, >= 2.2.0) rails (~> 6.1.6) + rspec-sidekiq + sidekiq (~> 6.4, >= 6.4.1) GEM remote: https://rubygems.org/ @@ -86,6 +87,7 @@ GEM ast (2.4.2) builder (3.2.4) concurrent-ruby (1.1.10) + connection_pool (2.2.5) crass (1.0.6) diff-lcs (1.5.0) erubi (1.10.0) @@ -143,6 +145,7 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (12.3.3) + redis (4.2.5) regexp_parser (2.5.0) rexml (3.2.5) rspec (3.11.0) @@ -157,6 +160,9 @@ GEM rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) + rspec-sidekiq (3.0.3) + rspec-core (~> 3.0, >= 3.0.0) + sidekiq (>= 2.4.0) rspec-support (3.11.0) rubocop (1.28.2) parallel (~> 1.10) @@ -185,6 +191,10 @@ GEM rubocop-thread_safety (0.4.4) rubocop (>= 0.53.0) ruby-progressbar (1.11.0) + sidekiq (6.4.1) + connection_pool (>= 2.2.2) + rack (~> 2.0) + redis (>= 4.2.0) sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) diff --git a/lib/event_tracker/jobs/tracker_job.rb b/lib/event_tracker/jobs/tracker_job.rb index 167b540..40091a8 100644 --- a/lib/event_tracker/jobs/tracker_job.rb +++ b/lib/event_tracker/jobs/tracker_job.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -require 'active_job' +require 'sidekiq' module EventTracker module Jobs diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2480f72..b3f853d 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -13,6 +13,8 @@ config.warn_when_jobs_not_processed_by_sidekiq = true # default => true end +Rails.logger = Logger.new(STDOUT) + RSpec.configure do |config| # Enable flags like --only-failures and --next-failure config.example_status_persistence_file_path = '.rspec_status' From 553ad0b42576f6a297fe33bebb2a7496c0859222 Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Mon, 20 Jun 2022 11:05:09 +0200 Subject: [PATCH 6/7] fixing linting issues --- event_tracker.gemspec | 4 ++-- lib/event_tracker/jobs/development_job.rb | 1 + lib/event_tracker/jobs/tracker_job.rb | 1 + lib/event_tracker/tracker.rb | 1 + spec/spec_helper.rb | 3 ++- 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/event_tracker.gemspec b/event_tracker.gemspec index cacb987..6298c4b 100644 --- a/event_tracker.gemspec +++ b/event_tracker.gemspec @@ -34,8 +34,8 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rspec', '~> 3.0' spec.add_dependency 'activerecord' + spec.add_dependency 'mixpanel-ruby', '~> 2.2', '>= 2.2.0' spec.add_dependency 'rails', '~> 6.1.6' - spec.add_dependency 'sidekiq', '~> 6.4', '>= 6.4.1' spec.add_dependency 'rspec-sidekiq' - spec.add_dependency 'mixpanel-ruby', '~> 2.2', '>= 2.2.0' + spec.add_dependency 'sidekiq', '~> 6.4', '>= 6.4.1' end diff --git a/lib/event_tracker/jobs/development_job.rb b/lib/event_tracker/jobs/development_job.rb index b8be044..bfa75a0 100644 --- a/lib/event_tracker/jobs/development_job.rb +++ b/lib/event_tracker/jobs/development_job.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'rails' require_relative 'tracker_job' diff --git a/lib/event_tracker/jobs/tracker_job.rb b/lib/event_tracker/jobs/tracker_job.rb index 40091a8..1a62fb4 100644 --- a/lib/event_tracker/jobs/tracker_job.rb +++ b/lib/event_tracker/jobs/tracker_job.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'sidekiq' module EventTracker diff --git a/lib/event_tracker/tracker.rb b/lib/event_tracker/tracker.rb index 023de52..6b308e3 100644 --- a/lib/event_tracker/tracker.rb +++ b/lib/event_tracker/tracker.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'rails' module EventTracker diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b3f853d..bb10b0a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require 'event_tracker' require 'rspec-sidekiq' @@ -13,7 +14,7 @@ config.warn_when_jobs_not_processed_by_sidekiq = true # default => true end -Rails.logger = Logger.new(STDOUT) +Rails.logger = Logger.new($stdout) RSpec.configure do |config| # Enable flags like --only-failures and --next-failure From fa8f7e3c94e5a663b2d4c4bc0b17cdf7d35a25d7 Mon Sep 17 00:00:00 2001 From: David Martin Garcia Date: Mon, 20 Jun 2022 11:15:15 +0200 Subject: [PATCH 7/7] fixing two rubocop issues --- event_tracker.gemspec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/event_tracker.gemspec b/event_tracker.gemspec index 6298c4b..38143e5 100644 --- a/event_tracker.gemspec +++ b/event_tracker.gemspec @@ -9,7 +9,7 @@ Gem::Specification.new do |spec| spec.version = EventTracker::VERSION spec.authors = ['Richard Millan'] spec.email = ['richard@returnly.com'] - + spec.required_ruby_version = '>= 2.7.6' spec.summary = 'Gem for sharing event-tracking functionality between Rails apps' spec.homepage = 'https://github.com/returnly/event_tracker' @@ -22,9 +22,7 @@ Gem::Specification.new do |spec| 'public gem pushes.' end - spec.files = `git ls-files -z`.split("\x0").reject do |f| - f.match(%r{^(test|spec|features)/}) - end + spec.files = Dir.glob('lib/**/*') spec.bindir = 'exe' spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib']