activerecord-transactionable 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/supported.yml +1 -0
- data/.rubocop_todo.yml +16 -5
- data/.simplecov +34 -2
- data/activerecord-transactionable.gemspec +8 -1
- data/lib/activerecord/transactionable/version.rb +1 -1
- data/lib/activerecord/transactionable.rb +2 -2
- metadata +17 -31
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b7d5f0d70200bcd62ca45dd9639614241ad9922c69e26e5e60db1e8c19724ce6
         | 
| 4 | 
            +
              data.tar.gz: de2e9d597d44673930c041d7765178e901dceb540461badcde91370b1576e22a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 29aca93fae0610d28954de9fd702d0df342445ff51b70849d4fdea3d18618e818a0cf16b87f800d67519b9719f746786492698595c1ae99fab6b9f61c3945281
         | 
| 7 | 
            +
              data.tar.gz: efe950e407b33d34189abeac8aa1c17e527f29bb2c9c331843fac698f6a017792f8263ad65ac151e47bc718dd429de070a31dfe38115461d214d2db9a0d3151d
         | 
    
        data/.rubocop_todo.yml
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # This configuration was generated by
         | 
| 2 2 | 
             
            # `rubocop --auto-gen-config`
         | 
| 3 | 
            -
            # on 2021-11- | 
| 3 | 
            +
            # on 2021-11-10 07:27:25 UTC using RuboCop version 1.22.3.
         | 
| 4 4 | 
             
            # The point is for the user to remove these configuration records
         | 
| 5 5 | 
             
            # one by one as the offenses are removed from the code base.
         | 
| 6 6 | 
             
            # Note that changes in the inspected code, or installation of new
         | 
| @@ -81,6 +81,17 @@ RSpec/ContextWording: | |
| 81 81 | 
             
              Exclude:
         | 
| 82 82 | 
             
                - 'spec/activerecord/transactionable_spec.rb'
         | 
| 83 83 |  | 
| 84 | 
            +
            # Offense count: 1
         | 
| 85 | 
            +
            # Configuration parameters: CountAsOne.
         | 
| 86 | 
            +
            RSpec/ExampleLength:
         | 
| 87 | 
            +
              Max: 10
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            # Offense count: 1
         | 
| 90 | 
            +
            # Configuration parameters: AssignmentOnly.
         | 
| 91 | 
            +
            RSpec/InstanceVariable:
         | 
| 92 | 
            +
              Exclude:
         | 
| 93 | 
            +
                - 'spec/activerecord/transactionable_spec.rb'
         | 
| 94 | 
            +
             | 
| 84 95 | 
             
            # Offense count: 5
         | 
| 85 96 | 
             
            RSpec/LeakyConstantDeclaration:
         | 
| 86 97 | 
             
              Exclude:
         | 
| @@ -102,7 +113,7 @@ RSpec/NamedSubject: | |
| 102 113 | 
             
              Exclude:
         | 
| 103 114 | 
             
                - 'spec/activerecord/transactionable_spec.rb'
         | 
| 104 115 |  | 
| 105 | 
            -
            # Offense count:  | 
| 116 | 
            +
            # Offense count: 54
         | 
| 106 117 | 
             
            RSpec/NestedGroups:
         | 
| 107 118 | 
             
              Max: 8
         | 
| 108 119 |  | 
| @@ -124,15 +135,15 @@ Style/GuardClause: | |
| 124 135 | 
             
                - 'README.md'
         | 
| 125 136 | 
             
                - 'spec/activerecord/transactionable_spec.rb'
         | 
| 126 137 |  | 
| 127 | 
            -
            # Offense count:  | 
| 138 | 
            +
            # Offense count: 5
         | 
| 128 139 | 
             
            ThreadSafety/InstanceVariableInClassMethod:
         | 
| 129 140 | 
             
              Exclude:
         | 
| 130 141 | 
             
                - 'spec/activerecord/transactionable_spec.rb'
         | 
| 131 142 |  | 
| 132 | 
            -
            # Offense count:  | 
| 143 | 
            +
            # Offense count: 70
         | 
| 133 144 | 
             
            # Cop supports --auto-correct.
         | 
| 134 145 | 
             
            # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
         | 
| 135 146 | 
             
            # URISchemes: http, https
         | 
| 136 147 | 
             
            # IgnoredPatterns: (?-mix:^\#)
         | 
| 137 148 | 
             
            Layout/LineLength:
         | 
| 138 | 
            -
              Max:  | 
| 149 | 
            +
              Max: 278
         | 
    
        data/.simplecov
    CHANGED
    
    | @@ -1,5 +1,37 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 3 | 
            +
            ruby_version = Gem::Version.new(RUBY_VERSION)
         | 
| 4 | 
            +
            actual_version = lambda do |major, minor|
         | 
| 5 | 
            +
              actual = Gem::Version.new(ruby_version)
         | 
| 6 | 
            +
              major == actual.segments[0] && minor == actual.segments[1] && RUBY_ENGINE == "ruby"
         | 
| 7 | 
            +
            end
         | 
| 8 | 
            +
            coverage = actual_version.call(2, 6)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            if coverage
         | 
| 11 | 
            +
              require "simplecov-cobertura"
         | 
| 12 | 
            +
              require "simplecov_json_formatter"
         | 
| 13 | 
            +
              require "codecov"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              SimpleCov.start do
         | 
| 16 | 
            +
                add_filter "/spec/"
         | 
| 17 | 
            +
                add_filter "/lib/activerecord/transactionable/version.rb"
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                if ENV["CI"]
         | 
| 20 | 
            +
                  # Disambiguate individual test runs
         | 
| 21 | 
            +
                  command_name "#{ENV["GITHUB_WORKFLOW"]} Job #{ENV["GITHUB_RUN_ID"]}:#{ENV["GITHUB_RUN_NUMBER"]}"
         | 
| 22 | 
            +
                  formatters = []
         | 
| 23 | 
            +
                  formatters << SimpleCov::Formatter::HTMLFormatter
         | 
| 24 | 
            +
                  formatters << SimpleCov::Formatter::CoberturaFormatter
         | 
| 25 | 
            +
                  formatters << SimpleCov::Formatter::JSONFormatter # For CodeClimate
         | 
| 26 | 
            +
                  formatters << SimpleCov::Formatter::Codecov # For CodeCov
         | 
| 27 | 
            +
                  formatter SimpleCov::Formatter::MultiFormatter.new(formatters)
         | 
| 28 | 
            +
                else
         | 
| 29 | 
            +
                  # Use default
         | 
| 30 | 
            +
                  formatter SimpleCov::Formatter::HTMLFormatter
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                track_files "**/*.rb"
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
            else
         | 
| 36 | 
            +
              puts "Not running coverage on #{RUBY_ENGINE} #{RUBY_VERSION}"
         | 
| 5 37 | 
             
            end
         | 
| @@ -23,8 +23,13 @@ Gem::Specification.new do |spec| | |
| 23 23 |  | 
| 24 24 | 
             
              ruby_version = Gem::Version.new(RUBY_VERSION)
         | 
| 25 25 | 
             
              minimum_version = ->(version) { ruby_version >= Gem::Version.new(version) && RUBY_ENGINE == "ruby" }
         | 
| 26 | 
            +
              actual_version = lambda do |major, minor|
         | 
| 27 | 
            +
                actual = Gem::Version.new(ruby_version)
         | 
| 28 | 
            +
                major == actual.segments[0] && minor == actual.segments[1] && RUBY_ENGINE == "ruby"
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
              coverage = actual_version.call(2, 6)
         | 
| 26 31 | 
             
              linting = minimum_version.call("2.6")
         | 
| 27 | 
            -
               | 
| 32 | 
            +
              stream = minimum_version.call("2.3")
         | 
| 28 33 |  | 
| 29 34 | 
             
              spec.add_dependency "activemodel", ">= 4.0.0"
         | 
| 30 35 | 
             
              spec.add_dependency "activerecord", ">= 4.0.0"
         | 
| @@ -36,6 +41,7 @@ Gem::Specification.new do |spec| | |
| 36 41 | 
             
              spec.add_development_dependency "rspec-benchmark", "~> 0.6"
         | 
| 37 42 | 
             
              spec.add_development_dependency "rspec-block_is_expected", "~> 1.0"
         | 
| 38 43 | 
             
              spec.add_development_dependency "rspec-pending_for", "~> 0.1"
         | 
| 44 | 
            +
              spec.add_development_dependency "silent_stream", "~> 1.0" if stream
         | 
| 39 45 | 
             
              if linting
         | 
| 40 46 | 
             
                spec.add_development_dependency("rubocop", "~> 1.22")
         | 
| 41 47 | 
             
                spec.add_development_dependency("rubocop-md", "~> 1.0")
         | 
| @@ -47,6 +53,7 @@ Gem::Specification.new do |spec| | |
| 47 53 | 
             
                spec.add_development_dependency("rubocop-thread_safety", "~> 0.4")
         | 
| 48 54 | 
             
              end
         | 
| 49 55 | 
             
              if coverage
         | 
| 56 | 
            +
                spec.add_development_dependency("codecov", "~> 0.6")
         | 
| 50 57 | 
             
                spec.add_development_dependency("simplecov", "~> 0.21")
         | 
| 51 58 | 
             
                spec.add_development_dependency("simplecov-cobertura", "~> 1.4")
         | 
| 52 59 | 
             
              end
         | 
| @@ -63,6 +63,7 @@ module Activerecord | |
| 63 63 | 
             
                    lock = args.delete(:lock)
         | 
| 64 64 | 
             
                    inside_args = extract_args(args, INSIDE_TRANSACTION_ERROR_HANDLERS)
         | 
| 65 65 | 
             
                    outside_args = extract_args(args, OUTSIDE_TRANSACTION_ERROR_HANDLERS)
         | 
| 66 | 
            +
                    transaction_args = extract_args(args, TRANSACTION_METHOD_ARG_NAMES)
         | 
| 66 67 | 
             
                    transaction_open = ActiveRecord::Base.connection.transaction_open?
         | 
| 67 68 | 
             
                    unless args.keys.empty?
         | 
| 68 69 | 
             
                      raise ArgumentError,
         | 
| @@ -75,13 +76,12 @@ module Activerecord | |
| 75 76 | 
             
                            "#{self} should not rescue #{ERRORS_TO_DISALLOW_INSIDE_TRANSACTION.inspect} inside a transaction: #{inside_args.keys.inspect}"
         | 
| 76 77 | 
             
                    end
         | 
| 77 78 |  | 
| 78 | 
            -
                    transaction_args = extract_args(args, TRANSACTION_METHOD_ARG_NAMES)
         | 
| 79 79 | 
             
                    if transaction_open
         | 
| 80 80 | 
             
                      if transaction_args[REQUIRES_NEW]
         | 
| 81 81 | 
             
                        logger.debug("[#{self}.transaction_wrapper] Will start a nested transaction.")
         | 
| 82 82 | 
             
                      else
         | 
| 83 83 | 
             
                        transaction_args[REQUIRES_NEW] = true
         | 
| 84 | 
            -
                        logger.warn("[#{self}.transaction_wrapper] Opening a nested transaction. Setting  | 
| 84 | 
            +
                        logger.warn("[#{self}.transaction_wrapper] Opening a nested transaction. Setting #{REQUIRES_NEW}: true")
         | 
| 85 85 | 
             
                      end
         | 
| 86 86 | 
             
                    end
         | 
| 87 87 | 
             
                    error_handler_outside_transaction(object: object, transaction_open: transaction_open,
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: activerecord-transactionable
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.0. | 
| 4 | 
            +
              version: 3.0.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Peter Boling
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-11- | 
| 11 | 
            +
            date: 2021-11-10 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activemodel
         | 
| @@ -136,6 +136,20 @@ dependencies: | |
| 136 136 | 
             
                - - "~>"
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: '0.1'
         | 
| 139 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            +
              name: silent_stream
         | 
| 141 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            +
                requirements:
         | 
| 143 | 
            +
                - - "~>"
         | 
| 144 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 145 | 
            +
                    version: '1.0'
         | 
| 146 | 
            +
              type: :development
         | 
| 147 | 
            +
              prerelease: false
         | 
| 148 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 | 
            +
                requirements:
         | 
| 150 | 
            +
                - - "~>"
         | 
| 151 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 152 | 
            +
                    version: '1.0'
         | 
| 139 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 154 | 
             
              name: rubocop
         | 
| 141 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -248,34 +262,6 @@ dependencies: | |
| 248 262 | 
             
                - - "~>"
         | 
| 249 263 | 
             
                  - !ruby/object:Gem::Version
         | 
| 250 264 | 
             
                    version: '0.4'
         | 
| 251 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 252 | 
            -
              name: simplecov
         | 
| 253 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 254 | 
            -
                requirements:
         | 
| 255 | 
            -
                - - "~>"
         | 
| 256 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 257 | 
            -
                    version: '0.21'
         | 
| 258 | 
            -
              type: :development
         | 
| 259 | 
            -
              prerelease: false
         | 
| 260 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 261 | 
            -
                requirements:
         | 
| 262 | 
            -
                - - "~>"
         | 
| 263 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 264 | 
            -
                    version: '0.21'
         | 
| 265 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 266 | 
            -
              name: simplecov-cobertura
         | 
| 267 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 268 | 
            -
                requirements:
         | 
| 269 | 
            -
                - - "~>"
         | 
| 270 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 271 | 
            -
                    version: '1.4'
         | 
| 272 | 
            -
              type: :development
         | 
| 273 | 
            -
              prerelease: false
         | 
| 274 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 275 | 
            -
                requirements:
         | 
| 276 | 
            -
                - - "~>"
         | 
| 277 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 278 | 
            -
                    version: '1.4'
         | 
| 279 265 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 280 266 | 
             
              name: sqlite3
         | 
| 281 267 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -353,7 +339,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 353 339 | 
             
                - !ruby/object:Gem::Version
         | 
| 354 340 | 
             
                  version: '0'
         | 
| 355 341 | 
             
            requirements: []
         | 
| 356 | 
            -
            rubygems_version: 3. | 
| 342 | 
            +
            rubygems_version: 3.2.22
         | 
| 357 343 | 
             
            signing_key:
         | 
| 358 344 | 
             
            specification_version: 4
         | 
| 359 345 | 
             
            summary: Do ActiveRecord transactions the right way.
         |