acidic_job 1.0.0.pre29 → 1.0.0.rc2

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/.codacy.yml +4 -0
  3. data/.github/FUNDING.yml +13 -0
  4. data/.github/workflows/main.yml +12 -15
  5. data/.gitignore +3 -1
  6. data/.rubocop.yml +50 -5
  7. data/.ruby-version +1 -0
  8. data/Gemfile.lock +134 -193
  9. data/README.md +164 -246
  10. data/TODO +77 -0
  11. data/acidic_job.gemspec +10 -10
  12. data/app/models/acidic_job/entry.rb +19 -0
  13. data/app/models/acidic_job/execution.rb +50 -0
  14. data/app/models/acidic_job/record.rb +11 -0
  15. data/app/models/acidic_job/value.rb +7 -0
  16. data/bin/console +5 -2
  17. data/bin/test_all +26 -0
  18. data/gemfiles/rails_7.0.gemfile +4 -1
  19. data/gemfiles/rails_7.1.gemfile +11 -0
  20. data/gemfiles/rails_7.2.gemfile +11 -0
  21. data/gemfiles/rails_8.0.gemfile +11 -0
  22. data/lib/acidic_job/arguments.rb +31 -0
  23. data/lib/acidic_job/builder.rb +29 -0
  24. data/lib/acidic_job/context.rb +46 -0
  25. data/lib/acidic_job/engine.rb +46 -0
  26. data/lib/acidic_job/errors.rb +87 -12
  27. data/lib/acidic_job/log_subscriber.rb +50 -0
  28. data/lib/acidic_job/serializers/exception_serializer.rb +31 -0
  29. data/lib/acidic_job/serializers/job_serializer.rb +27 -0
  30. data/lib/acidic_job/serializers/new_record_serializer.rb +25 -0
  31. data/lib/acidic_job/serializers/range_serializer.rb +28 -0
  32. data/lib/acidic_job/testing.rb +8 -12
  33. data/lib/acidic_job/version.rb +1 -1
  34. data/lib/acidic_job/workflow.rb +182 -0
  35. data/lib/acidic_job.rb +15 -284
  36. data/lib/generators/acidic_job/install_generator.rb +3 -3
  37. data/lib/generators/acidic_job/templates/create_acidic_job_tables_migration.rb.erb +33 -0
  38. metadata +51 -95
  39. data/.ruby_version +0 -1
  40. data/.tool-versions +0 -1
  41. data/gemfiles/rails_6.1.gemfile +0 -8
  42. data/lib/acidic_job/awaiting.rb +0 -102
  43. data/lib/acidic_job/extensions/action_mailer.rb +0 -29
  44. data/lib/acidic_job/extensions/active_job.rb +0 -40
  45. data/lib/acidic_job/extensions/noticed.rb +0 -54
  46. data/lib/acidic_job/extensions/sidekiq.rb +0 -111
  47. data/lib/acidic_job/finished_point.rb +0 -16
  48. data/lib/acidic_job/idempotency_key.rb +0 -82
  49. data/lib/acidic_job/perform_wrapper.rb +0 -22
  50. data/lib/acidic_job/recovery_point.rb +0 -18
  51. data/lib/acidic_job/rspec_configuration.rb +0 -31
  52. data/lib/acidic_job/run.rb +0 -100
  53. data/lib/acidic_job/serializer.rb +0 -163
  54. data/lib/acidic_job/staging.rb +0 -38
  55. data/lib/acidic_job/step.rb +0 -104
  56. data/lib/acidic_job/test_case.rb +0 -9
  57. data/lib/acidic_job/upgrade_service.rb +0 -118
  58. data/lib/generators/acidic_job/drop_tables_generator.rb +0 -26
  59. data/lib/generators/acidic_job/templates/create_acidic_job_runs_migration.rb.erb +0 -19
  60. data/lib/generators/acidic_job/templates/drop_acidic_job_keys_migration.rb.erb +0 -27
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/generators/active_record"
4
-
5
- module AcidicJob
6
- module Generators
7
- class DropTablesGenerator < ::Rails::Generators::Base
8
- include ActiveRecord::Generators::Migration
9
- source_root File.expand_path("templates", __dir__)
10
-
11
- desc "Drops the pre-1.0 tables for the AcidicJob::Key and AcidicJob::Staged models."
12
-
13
- def copy_migration
14
- migration_template "drop_acidic_job_keys_migration.rb.erb",
15
- "db/migrate/drop_old_acidic_job_tables.rb",
16
- migration_version: migration_version
17
- end
18
-
19
- protected
20
-
21
- def migration_version
22
- "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
23
- end
24
- end
25
- end
26
- end
@@ -1,19 +0,0 @@
1
- class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>
2
- def change
3
- create_table :acidic_job_runs do |t|
4
- t.boolean :staged, null: false, default: -> { false }
5
- t.string :idempotency_key, null: false, index: { unique: true }
6
- t.text :serialized_job, null: false
7
- t.string :job_class, null: false
8
- t.datetime :last_run_at, null: true, default: -> { "CURRENT_TIMESTAMP" }
9
- t.datetime :locked_at, null: true
10
- t.string :recovery_point, null: true
11
- t.text :error_object, null: true
12
- t.text :attr_accessors, null: true
13
- t.text :workflow, null: true
14
- t.references :awaited_by, null: true, index: true
15
- t.text :returning_to, null: true
16
- t.timestamps
17
- end
18
- end
19
- end
@@ -1,27 +0,0 @@
1
- class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>
2
- def change
3
- drop_table :acidic_job_keys do |t|
4
- t.string :idempotency_key, null: false
5
- t.string :job_name, null: false
6
- t.text :job_args, null: true
7
- t.datetime :last_run_at, null: false, default: -> { "CURRENT_TIMESTAMP" }
8
- t.datetime :locked_at, null: true
9
- t.string :recovery_point, null: false
10
- t.text :error_object
11
- t.text :attr_accessors
12
- t.text :workflow
13
- t.timestamps
14
-
15
- t.index %i[idempotency_key job_name job_args],
16
- unique: true,
17
- name: "idx_acidic_job_keys_on_idempotency_key_n_job_name_n_job_args"
18
- end
19
-
20
- drop_table :staged_acidic_jobs do |t|
21
- t.string :adapter, null: false
22
- t.string :job_name, null: false
23
- t.text :job_args, null: true
24
- t.timestamps
25
- end
26
- end
27
- end