pax_global_header00006660000000000000000000000064147137273400014522gustar00rootroot0000000000000052 comment=e5b4fbf8c65698d575d1afc95e4ae55e4646d24e delayed_job_active_record-4.1.11/000077500000000000000000000000001471372734000167405ustar00rootroot00000000000000delayed_job_active_record-4.1.11/.github/000077500000000000000000000000001471372734000203005ustar00rootroot00000000000000delayed_job_active_record-4.1.11/.github/workflows/000077500000000000000000000000001471372734000223355ustar00rootroot00000000000000delayed_job_active_record-4.1.11/.github/workflows/canary.yml000066400000000000000000000055451471372734000243460ustar00rootroot00000000000000name: Canary on: push: branches: [ master ] pull_request: branches: [ master ] jobs: test: name: Test (Ruby ${{ matrix.ruby }}, Gemfile ${{ matrix.gemfile }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: ruby: ['3.2', '3.3', 'head', 'jruby-9.4', 'jruby-head'] gemfile: - gemfiles/postgresql/master.gemfile - gemfiles/mysql2/master.gemfile - gemfiles/sqlite3/master.gemfile - gemfiles/trilogy/master.gemfile exclude: - ruby: 'jruby-9.4' gemfile: gemfiles/trilogy/master.gemfile - ruby: 'jruby-head' gemfile: gemfiles/trilogy/master.gemfile include: # jruby with rails 7.1 and 7.2 is still under development with jruby - ruby: jruby-9.4 gemfile: gemfiles/mysql2/7-1.gemfile - ruby: jruby-9.4 gemfile: gemfiles/postgresql/7-1.gemfile - ruby: jruby-9.4 gemfile: gemfiles/sqlite3/7-1.gemfile - ruby: jruby-9.4 gemfile: gemfiles/mysql2/7-2.gemfile - ruby: jruby-9.4 gemfile: gemfiles/postgresql/7-2.gemfile - ruby: jruby-9.4 gemfile: gemfiles/sqlite3/7-2.gemfile continue-on-error: true services: postgres: image: postgres # Provide the password for postgres env: POSTGRES_DB: delayed_job_test POSTGRES_PASSWORD: postgres # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps tcp port 5432 on service container to the host - 5432:5432 mysql: image: mysql env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: delayed_job_test ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} with: ruby-version: ${{ matrix.ruby }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} run: bundle exec rspec - name: Coveralls Parallel uses: coverallsapp/github-action@main with: github-token: ${{ secrets.github_token }} flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }} parallel: true finish: needs: test runs-on: ubuntu-latest steps: - name: Coveralls Finished uses: coverallsapp/github-action@main with: github-token: ${{ secrets.github_token }} parallel-finished: true delayed_job_active_record-4.1.11/.github/workflows/ci.yml000066400000000000000000000217621471372734000234630ustar00rootroot00000000000000name: CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: test: name: Test (Ruby ${{ matrix.ruby }}, Gemfile ${{ matrix.gemfile }}) runs-on: ubuntu-${{ matrix.ubuntu }} strategy: fail-fast: false matrix: ruby: ['3.2', '3.3'] gemfile: - gemfiles/mysql2/7-1.gemfile - gemfiles/postgresql/7-1.gemfile - gemfiles/sqlite3/7-1.gemfile - gemfiles/trilogy/7-1.gemfile - gemfiles/mysql2/7-2.gemfile - gemfiles/postgresql/7-2.gemfile - gemfiles/sqlite3/7-2.gemfile - gemfiles/trilogy/7-2.gemfile - gemfiles/mysql2/8-0.gemfile - gemfiles/postgresql/8-0.gemfile - gemfiles/sqlite3/8-0.gemfile - gemfiles/trilogy/8-0.gemfile ubuntu: ['latest'] include: # # Current older ruby # - ruby: '2.7' gemfile: gemfiles/mysql2/7-1.gemfile ubuntu: latest - ruby: '2.7' gemfile: gemfiles/postgresql/7-1.gemfile ubuntu: latest - ruby: '2.7' gemfile: gemfiles/sqlite3/7-1.gemfile ubuntu: latest - ruby: '2.7' gemfile: gemfiles/trilogy/7-1.gemfile ubuntu: latest - ruby: '3.0' gemfile: gemfiles/mysql2/7-1.gemfile ubuntu: latest - ruby: '3.0' gemfile: gemfiles/postgresql/7-1.gemfile ubuntu: latest - ruby: '3.0' gemfile: gemfiles/sqlite3/7-1.gemfile ubuntu: latest - ruby: '3.0' gemfile: gemfiles/trilogy/7-1.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/mysql2/7-1.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/postgresql/7-1.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/sqlite3/7-1.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/trilogy/7-1.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/mysql2/7-2.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/postgresql/7-2.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/sqlite3/7-2.gemfile ubuntu: latest - ruby: '3.1' gemfile: gemfiles/trilogy/7-2.gemfile ubuntu: latest # # The past # # EOL Active Record # Rails 3.2 was maintained longer and is ruby 2.2 compatible - ruby: '2.2' gemfile: gemfiles/postgresql/3-2.gemfile ubuntu: '20.04' - ruby: '2.2' gemfile: gemfiles/sqlite3/3-2.gemfile ubuntu: '20.04' # Rails <= 4.0 was only compatible with ruby 2.0 # The test were running, but there are known incompatibilites - ruby: 2.0.0 gemfile: gemfiles/postgresql/3-0.gemfile ubuntu: '20.04' - ruby: 2.0.0 gemfile: gemfiles/sqlite3/3-0.gemfile ubuntu: '20.04' - ruby: 2.0.0 gemfile: gemfiles/postgresql/3-1.gemfile ubuntu: '20.04' - ruby: 2.0.0 gemfile: gemfiles/sqlite3/3-1.gemfile ubuntu: '20.04' - ruby: 2.0.0 gemfile: gemfiles/postgresql/4-0.gemfile ubuntu: '20.04' - ruby: 2.0.0 gemfile: gemfiles/sqlite3/4-0.gemfile ubuntu: '20.04' # Rails 4.1 was only compatible with ruby 2.1 - ruby: '2.1' gemfile: gemfiles/postgresql/4-1.gemfile ubuntu: '20.04' - ruby: '2.1' gemfile: gemfiles/sqlite3/4-1.gemfile ubuntu: '20.04' # Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4 - ruby: '2.4' gemfile: gemfiles/mysql2/4-2.gemfile ubuntu: '20.04' - ruby: '2.4' gemfile: gemfiles/postgresql/4-2.gemfile ubuntu: '20.04' - ruby: '2.4' gemfile: gemfiles/sqlite3/4-2.gemfile ubuntu: '20.04' # Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4 - ruby: '2.4' gemfile: gemfiles/mysql2/5-0.gemfile ubuntu: '20.04' - ruby: '2.4' gemfile: gemfiles/postgresql/5-0.gemfile ubuntu: '20.04' - ruby: '2.4' gemfile: gemfiles/sqlite3/5-0.gemfile ubuntu: '20.04' # Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5 - ruby: '2.5' gemfile: gemfiles/mysql2/5-1.gemfile ubuntu: '20.04' - ruby: '2.5' gemfile: gemfiles/postgresql/5-1.gemfile ubuntu: '20.04' - ruby: '2.5' gemfile: gemfiles/sqlite3/5-1.gemfile ubuntu: '20.04' # Rails 6.0 was EOL with the release of 7.2 and compatible with ruby 3.3 - ruby: '3.3' gemfile: gemfiles/mysql2/6-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/trilogy/6-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/postgresql/6-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/sqlite3/6-0.gemfile ubuntu: '22.04' # Rails 6.1 was EOL with the release of 7.2 and compatible with ruby 3.3 - ruby: '3.3' gemfile: gemfiles/mysql2/6-1.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/trilogy/6-1.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/postgresql/6-1.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/sqlite3/6-1.gemfile ubuntu: '22.04' # Rails 7.0 was EOL with the release of 7.2 and compatible with ruby 3.3 - ruby: '3.3' gemfile: gemfiles/mysql2/7-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/trilogy/7-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/postgresql/7-0.gemfile ubuntu: '22.04' - ruby: '3.3' gemfile: gemfiles/sqlite3/7-0.gemfile ubuntu: '22.04' # # The parallel dimension # # Rubinius (Isn't supported on Github Actions) # - rvm: rbx-2 # gemfile: gemfiles/mysql2/6-0.gemfile # - rvm: rbx-2 # gemfile: gemfiles/postgresql/6-0.gemfile # - rvm: rbx-2 # gemfile: gemfiles/sqlite3/6-0.gemfile exclude: # jruby doesn't support trilogy - ruby: 'jruby-9.4' gemfile: gemfiles/trilogy/7-1.gemfile - ruby: 'jruby-9.4' gemfile: gemfiles/trilogy/7-2.gemfile services: postgres: # AR before 4.2.6 doesn't work with 12 image: postgres:11-alpine # Provide the password for postgres env: POSTGRES_DB: delayed_job_test POSTGRES_PASSWORD: postgres # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps tcp port 5432 on service container to the host - 5432:5432 mysql: image: mysql:5.7 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: delayed_job_test ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - uses: actions/checkout@v4 - name: Reinstall libpg if: ${{ matrix.ruby < '2.4' && contains(matrix.gemfile, 'postgresql') }} # version located via https://pkgs.org/search/?q=libpq5 and the Ubuntu 20.04 LTS package list run: sudo apt-get update && sudo apt-get install -y --allow-downgrades libpq5=12.19-0ubuntu0.20.04.1 && sudo apt-get install -y --allow-downgrades libpq-dev - uses: ruby/setup-ruby@v1 env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} with: ruby-version: ${{ matrix.ruby }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically cache-version: 2 - name: Run tests env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} run: bundle exec rspec - name: Coveralls Parallel uses: coverallsapp/github-action@main with: github-token: ${{ secrets.github_token }} flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }} parallel: true finish: needs: test runs-on: ubuntu-latest steps: - name: Coveralls Finished uses: coverallsapp/github-action@main with: github-token: ${{ secrets.github_token }} parallel-finished: true delayed_job_active_record-4.1.11/.github/workflows/publish_gem.yml000066400000000000000000000007701471372734000253620ustar00rootroot00000000000000name: Publish Gem on: push: tags: - v* jobs: push: if: github.repository == 'collectiveidea/delayed_job_active_record' runs-on: ubuntu-latest environment: publishing permissions: contents: write id-token: write steps: # Set up - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true ruby-version: ruby # Release - uses: rubygems/release-gem@v1 delayed_job_active_record-4.1.11/.github/workflows/rubocop.yml000066400000000000000000000014501471372734000245310ustar00rootroot00000000000000name: RuboCop on: push: branches: [ master ] pull_request: branches: [ master ] jobs: rubocop: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Ruby 3.2 uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 - name: Generate lockfile for cache key run: bundle lock - name: Cache gems uses: actions/cache@v4 with: path: vendor/bundle key: ${{ runner.os }}-rubocop-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | ${{ runner.os }}-rubocop- - name: Install gems run: | bundle config path vendor/bundle bundle config set without 'default test' bundle install --jobs 4 --retry 3 - name: Run RuboCop run: bundle exec rubocop --parallel delayed_job_active_record-4.1.11/.gitignore000066400000000000000000000001201471372734000207210ustar00rootroot00000000000000*.swp .bundle .rvmrc Gemfile.lock bin coverage pkg/* gemfiles/**/*.gemfile.lock delayed_job_active_record-4.1.11/.rspec000066400000000000000000000000241471372734000200510ustar00rootroot00000000000000--color --fail-fast delayed_job_active_record-4.1.11/.rubocop.yml000066400000000000000000000064071471372734000212210ustar00rootroot00000000000000require: - rubocop-packaging - rubocop-performance - rubocop-rails - rubocop-rspec Rails: Enabled: true AllCops: Exclude: - lib/**/templates/* - vendor/**/* NewCops: enable SuggestExtensions: false TargetRubyVersion: 2.0 ################# # [i] Overrides # ################# Style/CollectionMethods: Enabled: true # Mapping from undesired method to desired_method # e.g. to use `detect` over `find`: # # CollectionMethods: # PreferredMethods: # find: detect PreferredMethods: reduce: 'inject' find: 'detect' each_with_index: 'each.with_index' Style/EmptyMethod: EnforcedStyle: expanded # Align ends correctly. Layout/EndAlignment: EnforcedStyleAlignWith: variable Layout/LineLength: Max: 120 Style/SignalException: EnforcedStyle: only_raise Layout/SpaceInsideBlockBraces: SpaceBeforeBlockParameters: true Layout/SpaceInsideHashLiteralBraces: EnforcedStyle: space Style/StringLiterals: EnforcedStyle: double_quotes ################# # Disabled cops # ################# # We actually still work with ruby 2.0 but this setting only supports 2.4+ # We aren't going to drop old versions just to make rubocop happy. Gemspec/RequiredRubyVersion: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/MethodLength: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/Documentation: Enabled: false Style/EachWithObject: Enabled: false Style/FormatString: Enabled: false Style/Lambda: Enabled: false Style/MultipleComparison: Enabled: false Style/NegatedIf: Enabled: false Style/PercentLiteralDelimiters: PreferredDelimiters: "%w": "[]" "%W": "[]" "%i": "[]" "%I": "[]" Style/Semicolon: Enabled: false Style/SingleLineBlockParams: Enabled: false Style/WordArray: Enabled: false # HABTM still has a place. # http://collectiveidea.com/blog/archives/2014/08/11/has_and_belongs_to_many-isnt-dead/ Rails/HasAndBelongsToMany: Enabled: false Rails/RakeEnvironment: Enabled: false # enforces using the class name in a describe block (e.g. `describe TestedClass do`) RSpec/DescribeClass: Enabled: false # enforces using the described_class variablea (`described_class` instead of MyClass) RSpec/DescribedClass: Enabled: false # RSpec examples are ok if they're long. # Explicitness is better than cleverness in tests. RSpec/ExampleLength: Enabled: false # enforces using either `expect` or `allow` for stubs. Since they do different things, # we should let the developer decide which to use RSpec/MessageExpectation: Enabled: false # enforces having only one `expect` per test RSpec/MultipleExpectations: Enabled: false RSpec/MultipleMemoizedHelpers: Enabled: false # enforces rules about how many nested `describe` blocks are allowed RSpec/NestedGroups: Enabled: false # enforces rules about using `it` or `describe` block methods instead of `feature` or `scenario` RSpec/Dialect: Enabled: false RSpec/SpecFilePathFormat: Enabled: false ################### # Local overrides # ################### Rails/ApplicationRecord: Enabled: false Rails/SkipsModelValidations: Enabled: false Security/YAMLLoad: Enabled: false Style/FormatStringToken: Enabled: false Style/NumericPredicate: Enabled: false delayed_job_active_record-4.1.11/CONTRIBUTING.md000066400000000000000000000012331471372734000211700ustar00rootroot00000000000000## How to contribute If you find what looks like a bug: * Search the [mailing list](http://groups.google.com/group/delayed_job) to see if anyone else had the same issue. * Check the [GitHub issue tracker](http://github.com/collectiveidea/delayed_job_active_record/issues/) to see if anyone else has reported issue. * If you don't see anything, create an issue with information on how to reproduce it. If you want to contribute an enhancement or a fix: * Fork the project on github. * Make your changes with tests. * Commit the changes without making changes to the Rakefile or any other files that aren't related to your enhancement or fix * Send a pull request. delayed_job_active_record-4.1.11/Gemfile000066400000000000000000000012131471372734000202300ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" gem "activerecord-jdbcpostgresql-adapter" gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5.0" gem "pg", "~> 1.1" gem "sqlite3" gem "trilogy" end gem "rspec", ">= 3" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false end group :rubocop do gem "rubocop" gem "rubocop-packaging" gem "rubocop-performance" gem "rubocop-rails" gem "rubocop-rspec" end gemspec delayed_job_active_record-4.1.11/LICENSE.md000066400000000000000000000020401471372734000203400ustar00rootroot00000000000000Copyright (c) 2005 Tobias Lütke Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOa AND NONINFRINGEMENT. IN NO EVENT SaALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. delayed_job_active_record-4.1.11/README.md000066400000000000000000000027041471372734000202220ustar00rootroot00000000000000**If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. [View documentation for the latest release (4.1.11).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.11)** # DelayedJob ActiveRecord Backend [![Gem Version](https://img.shields.io/gem/v/delayed_job_active_record.svg)](https://rubygems.org/gems/delayed_job_active_record) ![CI](https://github.com/collectiveidea/delayed_job_active_record/workflows/CI/badge.svg) [![Coverage Status](https://img.shields.io/coveralls/collectiveidea/delayed_job_active_record.svg)](https://coveralls.io/r/collectiveidea/delayed_job_active_record) ## Installation Add the gem to your Gemfile: gem 'delayed_job_active_record' Run `bundle install`. If you're using Rails, run the generator to create the migration for the delayed_job table. rails g delayed_job:active_record rake db:migrate ## Problems locking jobs You can try using the legacy locking code. It is usually slower but works better for certain people. Delayed::Backend::ActiveRecord.configuration.reserve_sql_strategy = :default_sql ## Upgrading from 2.x to 3.0.0 If you're upgrading from Delayed Job 2.x, run the upgrade generator to create a migration to add a column to your delayed_jobs table. rails g delayed_job:upgrade rake db:migrate That's it. Use [delayed_job as normal](http://github.com/collectiveidea/delayed_job). delayed_job_active_record-4.1.11/Rakefile000066400000000000000000000014071471372734000204070ustar00rootroot00000000000000# frozen_string_literal: true require "bundler/gem_helper" Bundler::GemHelper.install_tasks require "rspec/core/rake_task" ADAPTERS = %w[mysql2 trilogy postgresql sqlite3].freeze ADAPTERS.each do |adapter| desc "Run RSpec code examples for #{adapter} adapter" RSpec::Core::RakeTask.new(adapter => "#{adapter}:adapter") namespace adapter do task :adapter do ENV["ADAPTER"] = adapter end end end task :coverage do ENV["COVERAGE"] = "true" end task :adapter do ENV["ADAPTER"] = nil end Rake::Task[:spec].enhance do require "simplecov" require "coveralls" Coveralls::SimpleCov::Formatter.new.format(SimpleCov.result) end require "rubocop/rake_task" RuboCop::RakeTask.new task default: ([:coverage] + ADAPTERS + [:adapter] + [:rubocop]) delayed_job_active_record-4.1.11/delayed_job_active_record.gemspec000066400000000000000000000016571471372734000254500ustar00rootroot00000000000000# frozen_string_literal: true Gem::Specification.new do |spec| spec.name = "delayed_job_active_record" spec.version = "4.1.11" spec.summary = "ActiveRecord backend for DelayedJob" spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" spec.licenses = "MIT" spec.authors = ["David Genord II", "Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.email = ["david@collectiveidea.com", "bryckbost@gmail.com", "matt@griffinonline.org", "sferik@gmail.com"] spec.homepage = "http://github.com/collectiveidea/delayed_job_active_record" spec.files = %w[CONTRIBUTING.md LICENSE.md README.md delayed_job_active_record.gemspec] + Dir["lib/**/*.rb"] spec.require_paths = ["lib"] spec.metadata = { "rubygems_mfa_required" => "true" } spec.add_dependency "activerecord", [">= 3.0", "< 9.0"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] end delayed_job_active_record-4.1.11/gemfiles/000077500000000000000000000000001471372734000205335ustar00rootroot00000000000000delayed_job_active_record-4.1.11/gemfiles/.rubocop.yml000066400000000000000000000001051471372734000230010ustar00rootroot00000000000000inherit_from: - ../.rubocop.yml Naming/FileName: Enabled: false delayed_job_active_record-4.1.11/gemfiles/mysql2/000077500000000000000000000000001471372734000217625ustar00rootroot00000000000000delayed_job_active_record-4.1.11/gemfiles/mysql2/3-0.gemfile000066400000000000000000000004661471372734000236210ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "activerecord-mysql2-adapter" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/3-1.gemfile000066400000000000000000000004211471372734000236110ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.1.0" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/3-2.gemfile000066400000000000000000000004211471372734000236120ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/4-0.gemfile000066400000000000000000000004211471372734000236110ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.0.0" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/4-1.gemfile000066400000000000000000000004211471372734000236120ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" gem "mysql2", "~> 0.3.13" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/4-2.gemfile000066400000000000000000000006671471372734000236270ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter", "< 50.0" end platforms :ruby, :mswin, :mingw do gem "mysql2", [">= 0.3.13", "< 0.5"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/5-0.gemfile000066400000000000000000000006571471372734000236250ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", [">= 0.3.18", "< 0.6.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/5-1.gemfile000066400000000000000000000006571471372734000236260ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", [">= 0.3.18", "< 0.6.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/5-2.gemfile000066400000000000000000000006561471372734000236260ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", [">= 0.4.4", "< 0.6.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/6-0.gemfile000066400000000000000000000007241471372734000236210ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", ">= 0.4.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/6-1.gemfile000066400000000000000000000007221471372734000236200ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.1.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/7-0.gemfile000066400000000000000000000007221471372734000236200ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.0.1" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/7-1.gemfile000066400000000000000000000006371471372734000236260ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/7-2.gemfile000066400000000000000000000006371471372734000236270ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/8-0.gemfile000066400000000000000000000006371471372734000236260ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 8.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/mysql2/master.gemfile000066400000000000000000000011271471372734000246100ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbc-adapter", github: "jruby/activerecord-jdbc-adapter" gem "activerecord-jdbcmysql-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/000077500000000000000000000000001471372734000227365ustar00rootroot00000000000000delayed_job_active_record-4.1.11/gemfiles/postgresql/3-0.gemfile000066400000000000000000000004501471372734000245660ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/3-1.gemfile000066400000000000000000000004501471372734000245670ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/3-2.gemfile000066400000000000000000000004501471372734000245700ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/4-0.gemfile000066400000000000000000000004501471372734000245670ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/4-1.gemfile000066400000000000000000000004501471372734000245700ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/4-2.gemfile000066400000000000000000000006531471372734000245760ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter", "< 50.0" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 0.15" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/5-0.gemfile000066400000000000000000000006541471372734000245760ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/5-1.gemfile000066400000000000000000000006541471372734000245770ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/5-2.gemfile000066400000000000000000000006541471372734000246000ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/6-0.gemfile000066400000000000000000000007371471372734000246010ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/6-1.gemfile000066400000000000000000000007231471372734000245750ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.1.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/7-0.gemfile000066400000000000000000000007231471372734000245750ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.0.1" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/7-1.gemfile000066400000000000000000000006331471372734000245760ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/7-2.gemfile000066400000000000000000000006331471372734000245770ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/8-0.gemfile000066400000000000000000000006331471372734000245760ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 8.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/postgresql/master.gemfile000066400000000000000000000011301471372734000255560ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbc-adapter", github: "jruby/activerecord-jdbc-adapter" gem "activerecord-jdbcpostgresql-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/000077500000000000000000000000001471372734000221175ustar00rootroot00000000000000delayed_job_active_record-4.1.11/gemfiles/sqlite3/3-0.gemfile000066400000000000000000000004531471372734000237520ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/3-1.gemfile000066400000000000000000000004531471372734000237530ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/3-2.gemfile000066400000000000000000000004531471372734000237540ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/4-0.gemfile000066400000000000000000000004531471372734000237530ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/4-1.gemfile000066400000000000000000000004531471372734000237540ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" gem "simplecov", ">= 0.17.0", require: false gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/4-2.gemfile000066400000000000000000000006561471372734000237620ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter", "< 50.0" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.3.6" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/5-0.gemfile000066400000000000000000000006441471372734000237560ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.3.6" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/5-1.gemfile000066400000000000000000000006601471372734000237550ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", ["~> 1.3", ">= 1.3.6"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/5-2.gemfile000066400000000000000000000006601471372734000237560ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", ["~> 1.3", ">= 1.3.6"] end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/6-0.gemfile000066400000000000000000000007251471372734000237570ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/6-1.gemfile000066400000000000000000000007251471372734000237600ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.1.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/7-0.gemfile000066400000000000000000000007251471372734000237600ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.0.1" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/7-1.gemfile000066400000000000000000000006401471372734000237550ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", "~> 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/7-2.gemfile000066400000000000000000000006401471372734000237560ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", ">= 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/8-0.gemfile000066400000000000000000000006401471372734000237550ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", ">= 1.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 8.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/sqlite3/master.gemfile000066400000000000000000000011321471372734000247410ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :jruby do gem "activerecord-jdbc-adapter", github: "jruby/activerecord-jdbc-adapter" gem "activerecord-jdbcsqlite3-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do gem "sqlite3", ">= 2.1" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/000077500000000000000000000000001471372734000222245ustar00rootroot00000000000000delayed_job_active_record-4.1.11/gemfiles/trilogy/6-0.gemfile000066400000000000000000000006301471372734000240570ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "activerecord-trilogy-adapter" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/6-1.gemfile000066400000000000000000000006301471372734000240600ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "activerecord-trilogy-adapter" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.1.0" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/7-0.gemfile000066400000000000000000000006301471372734000240600ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "activerecord-trilogy-adapter" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.0.1" gem "base64" gem "bigdecimal" gem "mutex_m" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/7-1.gemfile000066400000000000000000000005321471372734000240620ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "trilogy", "~> 2.4" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.1.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/7-2.gemfile000066400000000000000000000005321471372734000240630ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "trilogy", "~> 2.7" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 7.2.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/8-0.gemfile000066400000000000000000000005321471372734000240620ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "trilogy", "~> 2.7" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 8.0.0" end gemspec path: "../../" delayed_job_active_record-4.1.11/gemfiles/trilogy/master.gemfile000066400000000000000000000006161471372734000250540ustar00rootroot00000000000000# frozen_string_literal: true source "https://rubygems.org" gem "rake" group :test do platforms :ruby, :mswin, :mingw do gem "trilogy" end gem "rspec", ">= 2.11" gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" delayed_job_active_record-4.1.11/lib/000077500000000000000000000000001471372734000175065ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/delayed/000077500000000000000000000000001471372734000211155ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/delayed/backend/000077500000000000000000000000001471372734000225045ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/delayed/backend/active_record.rb000066400000000000000000000211771471372734000256520ustar00rootroot00000000000000# frozen_string_literal: true require "active_record/version" module Delayed module Backend module ActiveRecord class Configuration attr_reader :reserve_sql_strategy def initialize self.reserve_sql_strategy = :optimized_sql end def reserve_sql_strategy=(val) if !(val == :optimized_sql || val == :default_sql) raise ArgumentError, "allowed values are :optimized_sql or :default_sql" end @reserve_sql_strategy = val end end def self.configuration @configuration ||= Configuration.new end def self.configure yield(configuration) end # A job object that is persisted to the database. # Contains the work object as a YAML field. class Job < ::ActiveRecord::Base include Delayed::Backend::Base if ::ActiveRecord::VERSION::MAJOR < 4 || defined?(::ActiveRecord::MassAssignmentSecurity) attr_accessible :priority, :run_at, :queue, :payload_object, :failed_at, :locked_at, :locked_by, :handler end scope :by_priority, lambda { order("priority ASC, run_at ASC") } scope :min_priority, lambda { where("priority >= ?", Worker.min_priority) if Worker.min_priority } scope :max_priority, lambda { where("priority <= ?", Worker.max_priority) if Worker.max_priority } scope :for_queues, lambda { |queues = Worker.queues| where(queue: queues) if Array(queues).any? } before_save :set_default_run_at def self.set_delayed_job_table_name delayed_job_table_name = "#{::ActiveRecord::Base.table_name_prefix}delayed_jobs" self.table_name = delayed_job_table_name end set_delayed_job_table_name def self.ready_to_run(worker_name, max_run_time) where( "((run_at <= ? AND (locked_at IS NULL OR locked_at < ?)) OR locked_by = ?) AND failed_at IS NULL", db_time_now, db_time_now - max_run_time, worker_name ) end def self.before_fork if Gem::Version.new("7.1.0") <= Gem::Version.new(::ActiveRecord::VERSION::STRING) ::ActiveRecord::Base.connection_handler.clear_all_connections!(:all) else ::ActiveRecord::Base.connection_handler.clear_all_connections! end end def self.after_fork ::ActiveRecord::Base.establish_connection end # When a worker is exiting, make sure we don't have any locked jobs. def self.clear_locks!(worker_name) where(locked_by: worker_name).update_all(locked_by: nil, locked_at: nil) end def self.reserve(worker, max_run_time = Worker.max_run_time) ready_scope = ready_to_run(worker.name, max_run_time) .min_priority .max_priority .for_queues .by_priority reserve_with_scope(ready_scope, worker, db_time_now) end def self.reserve_with_scope(ready_scope, worker, now) case Delayed::Backend::ActiveRecord.configuration.reserve_sql_strategy # Optimizations for faster lookups on some common databases when :optimized_sql reserve_with_scope_using_optimized_sql(ready_scope, worker, now) # Slower but in some cases more unproblematic strategy to lookup records # See https://github.com/collectiveidea/delayed_job_active_record/pull/89 for more details. when :default_sql reserve_with_scope_using_default_sql(ready_scope, worker, now) end end def self.reserve_with_scope_using_optimized_sql(ready_scope, worker, now) case connection.adapter_name when "PostgreSQL", "PostGIS" reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) when "MySQL", "Mysql2", "Trilogy" reserve_with_scope_using_optimized_mysql(ready_scope, worker, now) when "MSSQL", "Teradata" reserve_with_scope_using_optimized_mssql(ready_scope, worker, now) # Fallback for unknown / other DBMS else reserve_with_scope_using_default_sql(ready_scope, worker, now) end end def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) # This is our old fashion, tried and true, but possibly slower lookup # Instead of reading the entire job record for our detect loop, we select only the id, # and only read the full job record after we've successfully locked the job. # This can have a noticeable impact on large read_ahead configurations and large payload jobs. ready_scope.limit(worker.read_ahead).select(:id).detect do |job| count = ready_scope.where(id: job.id).update_all(locked_at: now, locked_by: worker.name) count == 1 && job.reload end end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) # Custom SQL required for PostgreSQL because postgres does not support UPDATE...LIMIT # This locks the single record 'FOR UPDATE' in the subquery # http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE # Note: active_record would attempt to generate UPDATE...LIMIT like # SQL for Postgres if we use a .limit() filter, but it would not # use 'FOR UPDATE' and we would have many locking conflicts subquery = ready_scope.limit(1).lock(true).select("id").to_sql # On PostgreSQL >= 9.5 we leverage SKIP LOCK to avoid multiple workers blocking each other # when attempting to get the next available job # https://www.postgresql.org/docs/9.5/sql-select.html#SQL-FOR-UPDATE-SHARE if connection.send(:postgresql_version) >= 9_05_00 # rubocop:disable Style/NumericLiterals subquery += " SKIP LOCKED" end quoted_name = connection.quote_table_name(table_name) find_by_sql( [ "UPDATE #{quoted_name} SET locked_at = ?, locked_by = ? WHERE id IN (#{subquery}) RETURNING *", now, worker.name ] ).first end def self.reserve_with_scope_using_optimized_mysql(ready_scope, worker, now) # Removing the millisecond precision from now(time object) # MySQL 5.6.4 onwards millisecond precision exists, but the # datetime object created doesn't have precision, so discarded # while updating. But during the where clause, for mysql(>=5.6.4), # it queries with precision as well. So removing the precision now = now.change(usec: 0) # This works on MySQL and possibly some other DBs that support # UPDATE...LIMIT. It uses separate queries to lock and return the job count = ready_scope.limit(1).update_all(locked_at: now, locked_by: worker.name) return nil if count == 0 where(locked_at: now, locked_by: worker.name, failed_at: nil).first end def self.reserve_with_scope_using_optimized_mssql(ready_scope, worker, now) # The MSSQL driver doesn't generate a limit clause when update_all # is called directly subsubquery_sql = ready_scope.limit(1).to_sql # select("id") doesn't generate a subquery, so force a subquery subquery_sql = "SELECT id FROM (#{subsubquery_sql}) AS x" quoted_table_name = connection.quote_table_name(table_name) sql = "UPDATE #{quoted_table_name} SET locked_at = ?, locked_by = ? WHERE id IN (#{subquery_sql})" count = connection.execute(sanitize_sql([sql, now, worker.name])) return nil if count == 0 # MSSQL JDBC doesn't support OUTPUT INSERTED.* for returning a result set, so query locked row where(locked_at: now, locked_by: worker.name, failed_at: nil).first end # Get the current time (GMT or local depending on DB) # Note: This does not ping the DB to get the time, so all your clients # must have synchronized clocks. def self.db_time_now if Time.zone Time.zone.now elsif default_timezone == :utc Time.now.utc else Time.now # rubocop:disable Rails/TimeZone end end def self.default_timezone if ::ActiveRecord.respond_to?(:default_timezone) ::ActiveRecord.default_timezone else ::ActiveRecord::Base.default_timezone end end def reload(*args) reset super end end end end end delayed_job_active_record-4.1.11/lib/delayed_job_active_record.rb000066400000000000000000000002371471372734000251670ustar00rootroot00000000000000# frozen_string_literal: true require "active_record" require "delayed_job" require "delayed/backend/active_record" Delayed::Worker.backend = :active_record delayed_job_active_record-4.1.11/lib/generators/000077500000000000000000000000001471372734000216575ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/generators/delayed_job/000077500000000000000000000000001471372734000241205ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/generators/delayed_job/active_record_generator.rb000066400000000000000000000016611471372734000313300ustar00rootroot00000000000000# frozen_string_literal: true require "generators/delayed_job/delayed_job_generator" require "generators/delayed_job/next_migration_version" require "rails/generators/migration" require "rails/generators/active_record" # Extend the DelayedJobGenerator so that it creates an AR migration module DelayedJob class ActiveRecordGenerator < ::DelayedJobGenerator include Rails::Generators::Migration extend NextMigrationVersion source_paths << File.join(File.dirname(__FILE__), "templates") def create_migration_file migration_template "migration.rb", "db/migrate/create_delayed_jobs.rb", migration_version: migration_version end def self.next_migration_number(dirname) ActiveRecord::Generators::Base.next_migration_number dirname end private def migration_version "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" if ActiveRecord::VERSION::MAJOR >= 5 end end end delayed_job_active_record-4.1.11/lib/generators/delayed_job/next_migration_version.rb000066400000000000000000000013071471372734000312420ustar00rootroot00000000000000# frozen_string_literal: true module DelayedJob module NextMigrationVersion # while methods have moved around this has been the implementation # since ActiveRecord 3.0 def next_migration_number(dirname) next_migration_number = current_migration_number(dirname) + 1 timestamped_migrations = if ActiveRecord.respond_to?(:timestamped_migrations) ActiveRecord.timestamped_migrations else ActiveRecord::Base.timestamped_migrations end if timestamped_migrations [Time.now.utc.strftime("%Y%m%d%H%M%S"), format("%.14d", next_migration_number)].max else format("%.3d", next_migration_number) end end end end delayed_job_active_record-4.1.11/lib/generators/delayed_job/templates/000077500000000000000000000000001471372734000261165ustar00rootroot00000000000000delayed_job_active_record-4.1.11/lib/generators/delayed_job/templates/migration.rb000066400000000000000000000024401471372734000304340ustar00rootroot00000000000000class CreateDelayedJobs < ActiveRecord::Migration<%= migration_version %> def self.up create_table :delayed_jobs do |table| table.integer :priority, default: 0, null: false # Allows some jobs to jump to the front of the queue table.integer :attempts, default: 0, null: false # Provides for retries, but still fail eventually. table.text :handler, null: false # YAML-encoded string of the object that will do work table.text :last_error # reason for last failure (See Note below) table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future. table.datetime :locked_at # Set when a client is working on this object table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead) table.string :locked_by # Who is working on this object (if locked) table.string :queue # The name of the queue this job is in table.timestamps null: true end add_index :delayed_jobs, [:priority, :run_at], name: "delayed_jobs_priority" end def self.down drop_table :delayed_jobs end end delayed_job_active_record-4.1.11/lib/generators/delayed_job/templates/upgrade_migration.rb000066400000000000000000000003231471372734000321410ustar00rootroot00000000000000class AddQueueToDelayedJobs < ActiveRecord::Migration<%= migration_version %> def self.up add_column :delayed_jobs, :queue, :string end def self.down remove_column :delayed_jobs, :queue end end delayed_job_active_record-4.1.11/lib/generators/delayed_job/upgrade_generator.rb000066400000000000000000000010661471372734000301450ustar00rootroot00000000000000# frozen_string_literal: true require "generators/delayed_job/delayed_job_generator" require "generators/delayed_job/next_migration_version" require "rails/generators/migration" require "rails/generators/active_record" # Extend the DelayedJobGenerator so that it creates an AR migration module DelayedJob class UpgradeGenerator < ActiveRecordGenerator def create_migration_file migration_template( "upgrade_migration.rb", "db/migrate/add_queue_to_delayed_jobs.rb", migration_version: migration_version ) end end end delayed_job_active_record-4.1.11/spec/000077500000000000000000000000001471372734000176725ustar00rootroot00000000000000delayed_job_active_record-4.1.11/spec/.rubocop.yml000066400000000000000000000003051471372734000221420ustar00rootroot00000000000000inherit_from: - ../.rubocop.yml Lint/AmbiguousBlockAssociation: Enabled: false Metrics/BlockLength: Enabled: false RSpec/ContextWording: Enabled: false Rails/FilePath: Enabled: false delayed_job_active_record-4.1.11/spec/database.yml000066400000000000000000000010471471372734000221630ustar00rootroot00000000000000mysql: adapter: mysql host: 127.0.0.1 database: delayed_job_test username: root port: 3306 encoding: utf8 mysql2: adapter: mysql2 host: 127.0.0.1 database: delayed_job_test username: root port: 3306 encoding: utf8 trilogy: adapter: trilogy host: 127.0.0.1 database: delayed_job_test username: root port: 3306 encoding: utf8 postgresql: adapter: postgresql host: 127.0.0.1 database: delayed_job_test username: postgres password: postgres port: 5432 sqlite3: adapter: sqlite3 database: ":memory:" delayed_job_active_record-4.1.11/spec/delayed/000077500000000000000000000000001471372734000213015ustar00rootroot00000000000000delayed_job_active_record-4.1.11/spec/delayed/backend/000077500000000000000000000000001471372734000226705ustar00rootroot00000000000000delayed_job_active_record-4.1.11/spec/delayed/backend/active_record_spec.rb000066400000000000000000000147201471372734000270440ustar00rootroot00000000000000# frozen_string_literal: true require "helper" require "delayed/backend/active_record" describe Delayed::Backend::ActiveRecord::Job do it_behaves_like "a delayed_job backend" describe "configuration" do describe "reserve_sql_strategy" do let(:configuration) { Delayed::Backend::ActiveRecord.configuration } it "allows :optimized_sql" do configuration.reserve_sql_strategy = :optimized_sql expect(configuration.reserve_sql_strategy).to eq(:optimized_sql) end it "allows :default_sql" do configuration.reserve_sql_strategy = :default_sql expect(configuration.reserve_sql_strategy).to eq(:default_sql) end it "raises an argument error on invalid entry" do expect { configuration.reserve_sql_strategy = :invalid }.to raise_error(ArgumentError) end end end describe "reserve_with_scope" do let(:relation_class) { Delayed::Job.limit(1).class } let(:worker) { instance_double(Delayed::Worker, name: "worker01", read_ahead: 1) } let(:limit) { instance_double(relation_class, update_all: 0) } let(:where) { instance_double(relation_class, update_all: 0) } let(:scope) { instance_double(relation_class, limit: limit, where: where) } let(:job) { instance_double(Delayed::Job, id: 1) } before do allow(Delayed::Backend::ActiveRecord::Job.connection).to receive(:adapter_name).at_least(:once).and_return(dbms) Delayed::Backend::ActiveRecord.configuration.reserve_sql_strategy = reserve_sql_strategy end context "with reserve_sql_strategy option set to :optimized_sql (default)" do let(:reserve_sql_strategy) { :optimized_sql } context "for mysql adapters" do let(:dbms) { "MySQL" } it "uses the optimized sql version" do allow(Delayed::Backend::ActiveRecord::Job).to receive(:reserve_with_scope_using_default_sql) Delayed::Backend::ActiveRecord::Job.reserve_with_scope(scope, worker, Time.current) expect(Delayed::Backend::ActiveRecord::Job).not_to have_received(:reserve_with_scope_using_default_sql) end end context "for a dbms without a specific implementation" do let(:dbms) { "OtherDB" } it "uses the plain sql version" do allow(Delayed::Backend::ActiveRecord::Job).to receive(:reserve_with_scope_using_default_sql) Delayed::Backend::ActiveRecord::Job.reserve_with_scope(scope, worker, Time.current) expect(Delayed::Backend::ActiveRecord::Job).to have_received(:reserve_with_scope_using_default_sql).once end end end context "with reserve_sql_strategy option set to :default_sql" do let(:dbms) { "MySQL" } let(:reserve_sql_strategy) { :default_sql } it "uses the plain sql version" do allow(Delayed::Backend::ActiveRecord::Job).to receive(:reserve_with_scope_using_default_sql) Delayed::Backend::ActiveRecord::Job.reserve_with_scope(scope, worker, Time.current) expect(Delayed::Backend::ActiveRecord::Job).to have_received(:reserve_with_scope_using_default_sql).once end end end context "db_time_now" do def use_default_timezone(timezone) if ActiveRecord.respond_to?(:default_timezone=) ActiveRecord.default_timezone = timezone else ActiveRecord::Base.default_timezone = timezone end end after do Time.zone = nil use_default_timezone(:local) end it "returns time in current time zone if set" do Time.zone = "Arizona" expect(Delayed::Job.db_time_now.zone).to eq("MST") end it "returns UTC time if that is the AR default" do Time.zone = nil use_default_timezone(:utc) expect(Delayed::Backend::ActiveRecord::Job.db_time_now.zone).to eq "UTC" end it "returns local time if that is the AR default" do Time.zone = "Arizona" use_default_timezone(:local) expect(Delayed::Backend::ActiveRecord::Job.db_time_now.zone).to eq("MST") end end describe "before_fork" do it "clears all connections connection" do allow(ActiveRecord::Base.connection_handler).to receive(:clear_all_connections!) Delayed::Backend::ActiveRecord::Job.before_fork if Gem::Version.new("7.1.0") <= Gem::Version.new(ActiveRecord::VERSION::STRING) expect(ActiveRecord::Base.connection_handler).to have_received(:clear_all_connections!).with(:all) else expect(ActiveRecord::Base.connection_handler).to have_received(:clear_all_connections!) end end end describe "after_fork" do it "calls reconnect on the connection" do allow(ActiveRecord::Base).to receive(:establish_connection) Delayed::Backend::ActiveRecord::Job.after_fork expect(ActiveRecord::Base).to have_received(:establish_connection) end end describe "enqueue" do it "allows enqueue hook to modify job at DB level" do later = described_class.db_time_now + 20.minutes job = Delayed::Backend::ActiveRecord::Job.enqueue payload_object: EnqueueJobMod.new expect(Delayed::Backend::ActiveRecord::Job.find(job.id).run_at).to be_within(1).of(later) end end if ActiveRecord::VERSION::MAJOR < 4 || defined?(ActiveRecord::MassAssignmentSecurity) context "ActiveRecord::Base.send(:attr_accessible, nil)" do before do Delayed::Backend::ActiveRecord::Job.send(:attr_accessible, nil) end after do Delayed::Backend::ActiveRecord::Job.send( :attr_accessible, *Delayed::Backend::ActiveRecord::Job.new.attributes.keys ) end it "is still accessible" do job = Delayed::Backend::ActiveRecord::Job.enqueue payload_object: EnqueueJobMod.new expect(Delayed::Backend::ActiveRecord::Job.find(job.id).handler).not_to be_blank end end end context "ActiveRecord::Base.table_name_prefix" do it "when prefix is not set, use 'delayed_jobs' as table name" do ActiveRecord::Base.table_name_prefix = nil Delayed::Backend::ActiveRecord::Job.set_delayed_job_table_name expect(Delayed::Backend::ActiveRecord::Job.table_name).to eq "delayed_jobs" end it "when prefix is set, prepend it before default table name" do ActiveRecord::Base.table_name_prefix = "custom_" Delayed::Backend::ActiveRecord::Job.set_delayed_job_table_name expect(Delayed::Backend::ActiveRecord::Job.table_name).to eq "custom_delayed_jobs" ActiveRecord::Base.table_name_prefix = nil Delayed::Backend::ActiveRecord::Job.set_delayed_job_table_name end end end delayed_job_active_record-4.1.11/spec/delayed/serialization/000077500000000000000000000000001471372734000241565ustar00rootroot00000000000000delayed_job_active_record-4.1.11/spec/delayed/serialization/active_record_spec.rb000066400000000000000000000005701471372734000303300ustar00rootroot00000000000000# frozen_string_literal: true require "helper" describe ActiveRecord do it "loads classes with non-default primary key" do expect do YAML.load_dj(Story.create.to_yaml) end.not_to raise_error end it "loads classes even if not in default scope" do expect do YAML.load_dj(Story.create(scoped: false).to_yaml) end.not_to raise_error end end delayed_job_active_record-4.1.11/spec/helper.rb000066400000000000000000000062661471372734000215100ustar00rootroot00000000000000# frozen_string_literal: true require "simplecov" require "simplecov-lcov" SimpleCov::Formatter::LcovFormatter.config do |c| c.report_with_single_file = true c.single_report_path = "coverage/lcov.info" end SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new( [ SimpleCov::Formatter::HTMLFormatter, SimpleCov::Formatter::LcovFormatter ] ) SimpleCov.start do add_filter "/spec/" end require "logger" require "rspec" begin require "protected_attributes" rescue LoadError # rubocop:disable Lint/SuppressedException end require "delayed_job_active_record" require "delayed/backend/shared_spec" Delayed::Worker.logger = Logger.new("/tmp/dj.log") ENV["RAILS_ENV"] = "test" db_adapter = ENV.fetch("ADAPTER", nil) gemfile = ENV.fetch("BUNDLE_GEMFILE", nil) db_adapter ||= gemfile && gemfile[%r{gemfiles/(.*?)/}] && $1 # rubocop:disable Style/PerlBackrefs db_adapter ||= "sqlite3" if db_adapter == "trilogy" && Gem::Version.new("7.1") > Gem::Version.new(ActiveRecord::VERSION::STRING) require "trilogy_adapter/connection" ActiveSupport.on_load(:active_record) { extend TrilogyAdapter::Connection } end config = YAML.load_file("spec/database.yml") ActiveRecord::Base.establish_connection config[db_adapter] ActiveRecord::Base.logger = Delayed::Worker.logger ActiveRecord::Migration.verbose = false # MySQL 5.7 no longer supports null default values for the primary key # Override the default primary key type in Rails <= 4.0 # https://stackoverflow.com/a/34555109 if db_adapter == "mysql2" types = if defined?(ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter) # ActiveRecord 3.2+ ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES else # ActiveRecord < 3.2 ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES end types[:primary_key] = types[:primary_key].sub(" DEFAULT NULL", "") end migration_template = File.open("lib/generators/delayed_job/templates/migration.rb") # need to eval the template with the migration_version intact migration_context = Class.new do def my_binding binding end private def migration_version "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" if ActiveRecord::VERSION::MAJOR >= 5 end end migration_ruby = ERB.new(migration_template.read).result(migration_context.new.my_binding) eval(migration_ruby) # rubocop:disable Security/Eval ActiveRecord::Schema.define do if table_exists?(:delayed_jobs) # `if_exists: true` was only added in Rails 5 drop_table :delayed_jobs end CreateDelayedJobs.up create_table :stories, primary_key: :story_id, force: true do |table| table.string :text table.boolean :scoped, default: true end end # Purely useful for test cases... class Story < ActiveRecord::Base if ::ActiveRecord::VERSION::MAJOR < 4 && ActiveRecord::VERSION::MINOR < 2 set_primary_key :story_id else self.primary_key = :story_id end def tell text end def whatever(number) tell * number end default_scope { where(scoped: true) } handle_asynchronously :whatever end # Add this directory so the ActiveSupport autoloading works ActiveSupport::Dependencies.autoload_paths << File.dirname(__FILE__)