diff --git a/app/jobs/concerns/maintenance_tasks/task_job_concern.rb b/app/jobs/concerns/maintenance_tasks/task_job_concern.rb index e228e0c6..497ee7bd 100644 --- a/app/jobs/concerns/maintenance_tasks/task_job_concern.rb +++ b/app/jobs/concerns/maintenance_tasks/task_job_concern.rb @@ -146,7 +146,7 @@ def before_perform def on_start count = @task.count - count = @collection_enum.size if count == :no_count + count = @collection_enum.size if count == NO_COUNT_DEFINED @run.start(count) end diff --git a/app/models/maintenance_tasks/null_collection_builder.rb b/app/models/maintenance_tasks/null_collection_builder.rb index 47098d25..3fb26b4d 100644 --- a/app/models/maintenance_tasks/null_collection_builder.rb +++ b/app/models/maintenance_tasks/null_collection_builder.rb @@ -22,7 +22,7 @@ def collection(task) # # @return [Integer, nil] def count(task) - :no_count + NO_COUNT_DEFINED end # Return that the Task does not process CSV content. diff --git a/lib/maintenance_tasks.rb b/lib/maintenance_tasks.rb index 71b019d8..21a58b7f 100644 --- a/lib/maintenance_tasks.rb +++ b/lib/maintenance_tasks.rb @@ -145,6 +145,11 @@ module MaintenanceTasks # @return [ActiveSupport::Duration, false] time interval after which a task is considered stale. mattr_accessor :task_staleness_threshold, default: 30.days + NO_COUNT_DEFINED = Object.new + NO_COUNT_DEFINED.define_singleton_method(:inspect) { "MaintenanceTasks::NO_COUNT_DEFINED" } + NO_COUNT_DEFINED.freeze + private_constant :NO_COUNT_DEFINED + class << self DEPRECATION_MESSAGE = "MaintenanceTasks.error_handler is deprecated and will be removed in the 3.0 release. " \ "Instead, reports will be sent to the Rails error reporter. Do not set a handler and subscribe " \ diff --git a/test/dummy/app/tasks/maintenance/test_task.rb b/test/dummy/app/tasks/maintenance/test_task.rb index a89713eb..2f747bbe 100644 --- a/test/dummy/app/tasks/maintenance/test_task.rb +++ b/test/dummy/app/tasks/maintenance/test_task.rb @@ -6,6 +6,10 @@ def collection [1, 2] end + def count + 2 + end + def process(number) Rails.logger.debug("number: #{number}") end diff --git a/test/models/maintenance_tasks/null_collection_builder_test.rb b/test/models/maintenance_tasks/null_collection_builder_test.rb index bf5c07c2..56bd186c 100644 --- a/test/models/maintenance_tasks/null_collection_builder_test.rb +++ b/test/models/maintenance_tasks/null_collection_builder_test.rb @@ -16,7 +16,7 @@ class NullCollectionBuilderTest < ActiveSupport::TestCase end test "count" do - assert_equal(:no_count, @builder.count(@task)) + assert_equal(NO_COUNT_DEFINED, @builder.count(@task)) end test "#has_csv_content?" do diff --git a/test/models/maintenance_tasks/task_test.rb b/test/models/maintenance_tasks/task_test.rb index 776a6e80..0ac8d2f5 100644 --- a/test/models/maintenance_tasks/task_test.rb +++ b/test/models/maintenance_tasks/task_test.rb @@ -75,12 +75,12 @@ class TaskTest < ActiveSupport::TestCase end test ".count calls #count" do - assert_equal :no_count, Maintenance::TestTask.count + assert_equal 2, Maintenance::TestTask.count end test "#count is :no_count by default" do task = Task.new - assert_equal(:no_count, task.count) + assert_equal NO_COUNT_DEFINED, task.count end test "#collection raises NoMethodError" do