Hello community,

here is the log from the commit of package rubygem-delayed_job_active_record 
for openSUSE:Factory checked in at 2018-04-19 15:33:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-delayed_job_active_record (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-delayed_job_active_record.new 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-delayed_job_active_record"

Thu Apr 19 15:33:21 2018 rev:17 rq:598481 version:4.1.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-delayed_job_active_record/rubygem-delayed_job_active_record.changes
      2017-06-02 10:33:59.158363652 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-delayed_job_active_record.new/rubygem-delayed_job_active_record.changes
 2018-04-19 15:33:23.673422432 +0200
@@ -1,0 +2,6 @@
+Thu Apr 19 09:51:13 UTC 2018 - [email protected]
+
+- updated to version 4.1.3
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  delayed_job_active_record-4.1.2.gem

New:
----
  delayed_job_active_record-4.1.3.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-delayed_job_active_record.spec ++++++
--- /var/tmp/diff_new_pack.s2stpD/_old  2018-04-19 15:33:24.293396854 +0200
+++ /var/tmp/diff_new_pack.s2stpD/_new  2018-04-19 15:33:24.297396688 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-delayed_job_active_record
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-delayed_job_active_record
-Version:        4.1.2
+Version:        4.1.3
 Release:        0
 %define mod_name delayed_job_active_record
 %define mod_full_name %{mod_name}-%{version}
@@ -33,7 +33,7 @@
 BuildRequires:  %{ruby}
 BuildRequires:  ruby-macros >= 5
 Url:            http://github.com/collectiveidea/delayed_job_active_record
-Source:         http://rubygems.org/gems/%{mod_full_name}.gem
+Source:         https://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        gem2rpm.yml
 Summary:        ActiveRecord backend for DelayedJob
 License:        MIT

++++++ delayed_job_active_record-4.1.2.gem -> 
delayed_job_active_record-4.1.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2017-05-27 18:42:35.000000000 +0200
+++ new/README.md       2018-04-13 20:46:27.000000000 +0200
@@ -1,7 +1,7 @@
 **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.2).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.2)**
+(4.1.3).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.3)**
 
 # DelayedJob ActiveRecord Backend
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/delayed_job_active_record.gemspec 
new/delayed_job_active_record.gemspec
--- old/delayed_job_active_record.gemspec       2017-05-27 18:42:35.000000000 
+0200
+++ new/delayed_job_active_record.gemspec       2018-04-13 20:46:27.000000000 
+0200
@@ -1,14 +1,14 @@
 Gem::Specification.new do |spec|
-  spec.add_dependency "activerecord", [">= 3.0", "< 5.2"]
+  spec.add_dependency "activerecord", [">= 3.0", "< 5.3"]
   spec.add_dependency "delayed_job",  [">= 3.0", "< 5"]
   spec.authors        = ["Brian Ryckbost", "Matt Griffin", "Erik 
Michaels-Ober"]
   spec.description    = "ActiveRecord backend for Delayed::Job, originally 
authored by Tobias Lütke"
   spec.email          = ["[email protected]", "[email protected]", 
"[email protected]"]
-  spec.files          = %w(CONTRIBUTING.md LICENSE.md README.md 
delayed_job_active_record.gemspec) + Dir["lib/**/*.rb"]
+  spec.files          = %w[CONTRIBUTING.md LICENSE.md README.md 
delayed_job_active_record.gemspec] + Dir["lib/**/*.rb"]
   spec.homepage       = 
"http://github.com/collectiveidea/delayed_job_active_record";
   spec.licenses       = ["MIT"]
   spec.name           = "delayed_job_active_record"
   spec.require_paths  = ["lib"]
   spec.summary        = "ActiveRecord backend for DelayedJob"
-  spec.version        = "4.1.2"
+  spec.version        = "4.1.3"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/delayed/backend/active_record.rb 
new/lib/delayed/backend/active_record.rb
--- old/lib/delayed/backend/active_record.rb    2017-05-27 18:42:35.000000000 
+0200
+++ new/lib/delayed/backend/active_record.rb    2018-04-13 20:46:27.000000000 
+0200
@@ -10,7 +10,9 @@
         end
 
         def reserve_sql_strategy=(val)
-          raise ArgumentError, "allowed values are :optimized_sql or 
:default_sql" unless val == :optimized_sql || val == :default_sql
+          if !(val == :optimized_sql || val == :default_sql)
+            raise ArgumentError, "allowed values are :optimized_sql or 
:default_sql"
+          end
           @reserve_sql_strategy = val
         end
       end
@@ -34,6 +36,9 @@
         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
 
@@ -45,7 +50,12 @@
         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)
+          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
@@ -61,15 +71,13 @@
           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) # 
rubocop:disable CyclomaticComplexity
-          # scope to filter to records that are "ready to run"
-          ready_scope = ready_to_run(worker.name, max_run_time)
-
-          # scope to filter to the single next eligible job
-          ready_scope = ready_scope.where("priority >= ?", 
Worker.min_priority) if Worker.min_priority
-          ready_scope = ready_scope.where("priority <= ?", 
Worker.max_priority) if Worker.max_priority
-          ready_scope = ready_scope.where(queue: Worker.queues) if 
Worker.queues.any?
-          ready_scope = ready_scope.by_priority
+        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
@@ -88,41 +96,12 @@
 
         def self.reserve_with_scope_using_optimized_sql(ready_scope, worker, 
now)
           case connection.adapter_name
-          when "PostgreSQL"
-            # 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
-            quoted_table_name = connection.quote_table_name(table_name)
-            subquery_sql      = 
ready_scope.limit(1).lock(true).select("id").to_sql
-            reserved          = find_by_sql(["UPDATE #{quoted_table_name} SET 
locked_at = ?, locked_by = ? WHERE id IN (#{subquery_sql}) RETURNING *", now, 
worker.name])
-            reserved[0]
+          when "PostgreSQL", "PostGIS"
+            reserve_with_scope_using_optimized_postgres(ready_scope, worker, 
now)
           when "MySQL", "Mysql2"
-            # 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
+            reserve_with_scope_using_optimized_mysql(ready_scope, worker, now)
           when "MSSQL", "Teradata"
-            # 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})", now, worker.name]
-            count = connection.execute(sanitize_sql(sql))
-            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
+            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)
@@ -137,6 +116,48 @@
           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
+          quoted_name = connection.quote_table_name(table_name)
+          subquery    = ready_scope.limit(1).lock(true).select("id").to_sql
+          sql         = "UPDATE #{quoted_name} SET locked_at = ?, locked_by = 
? WHERE id IN (#{subquery}) RETURNING *"
+          reserved    = find_by_sql([sql, now, worker.name])
+          reserved[0]
+        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 syncronized clocks.
@@ -146,7 +167,7 @@
           elsif ::ActiveRecord::Base.default_timezone == :utc
             Time.now.utc
           else
-            Time.now
+            Time.now # rubocop:disable Rails/TimeZone
           end
         end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/generators/delayed_job/active_record_generator.rb 
new/lib/generators/delayed_job/active_record_generator.rb
--- old/lib/generators/delayed_job/active_record_generator.rb   2017-05-27 
18:42:35.000000000 +0200
+++ new/lib/generators/delayed_job/active_record_generator.rb   2018-04-13 
20:46:27.000000000 +0200
@@ -22,9 +22,7 @@
     private
 
     def migration_version
-      if ActiveRecord::VERSION::MAJOR >= 5
-        "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
-      end
+      "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]" if 
ActiveRecord::VERSION::MAJOR >= 5
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/generators/delayed_job/upgrade_generator.rb 
new/lib/generators/delayed_job/upgrade_generator.rb
--- old/lib/generators/delayed_job/upgrade_generator.rb 2017-05-27 
18:42:35.000000000 +0200
+++ new/lib/generators/delayed_job/upgrade_generator.rb 2018-04-13 
20:46:27.000000000 +0200
@@ -7,7 +7,11 @@
 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
+      migration_template(
+        "upgrade_migration.rb",
+        "db/migrate/add_queue_to_delayed_jobs.rb",
+        migration_version: migration_version
+      )
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2017-05-27 18:42:35.000000000 +0200
+++ new/metadata        2018-04-13 20:46:27.000000000 +0200
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: delayed_job_active_record
 version: !ruby/object:Gem::Version
-  version: 4.1.2
+  version: 4.1.3
 platform: ruby
 authors:
 - Brian Ryckbost
@@ -10,7 +10,7 @@
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2017-05-27 00:00:00.000000000 Z
+date: 2018-04-13 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: activerecord
@@ -21,7 +21,7 @@
         version: '3.0'
     - - "<"
       - !ruby/object:Gem::Version
-        version: '5.2'
+        version: '5.3'
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +31,7 @@
         version: '3.0'
     - - "<"
       - !ruby/object:Gem::Version
-        version: '5.2'
+        version: '5.3'
 - !ruby/object:Gem::Dependency
   name: delayed_job
   requirement: !ruby/object:Gem::Requirement
@@ -93,7 +93,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.6.11
+rubygems_version: 2.7.6
 signing_key: 
 specification_version: 4
 summary: ActiveRecord backend for DelayedJob


Reply via email to