permanent_records 4.2.8 → 5.0.0
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/gempush.yml +28 -0
- data/.github/workflows/test.yml +32 -0
- data/.rubocop.yml +3 -1
- data/.rubocop_todo.yml +1 -6
- data/.travis.yml +6 -3
- data/README.md +1 -1
- data/README.rst +1 -1
- data/VERSION +1 -1
- data/bin/gempush-if-changed +11 -0
- data/github-actions-test.yml +1 -0
- data/lib/permanent_records.rb +20 -19
- data/lib/permanent_records/active_record_5_2.rb +40 -0
- data/permanent_records.gemspec +6 -5
- metadata +33 -14
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6f7d5e533d3ea6f107b72b635d5c58871601a782d759b41f6c5578f7f556d54f
         | 
| 4 | 
            +
              data.tar.gz: 1c1ccdac5a7812cdd3dbaec043580ba62ea82e0858d9a8b56850a58703c7e79c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 42910c3d809df7cda9876f1e752da136055640053682bde499b1a33f7f9142222fe22c7fefe1fae3750ed0180179582a2eb3d6a05321ef9303be37bc93e79a3a
         | 
| 7 | 
            +
              data.tar.gz: f2a06abe6da337d41c610a7e539516e4b71ede008f644bc75db3c1bd4805f43c526783ffff18275d4871cf5713619f172f4ed6e9c139080aeded2d47c001bc63
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            name: Ruby Gem
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on:
         | 
| 4 | 
            +
              push:
         | 
| 5 | 
            +
                branches:
         | 
| 6 | 
            +
                  - master
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            jobs:
         | 
| 9 | 
            +
              build:
         | 
| 10 | 
            +
                name: gem publishing
         | 
| 11 | 
            +
                runs-on: ubuntu-latest
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                steps:
         | 
| 14 | 
            +
                - uses: actions/checkout@master
         | 
| 15 | 
            +
                - name: Set up Ruby 2.6
         | 
| 16 | 
            +
                  uses: actions/setup-ruby@v1
         | 
| 17 | 
            +
                  with:
         | 
| 18 | 
            +
                    ruby-version: 2.6.x
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                - name: Publish to RubyGems
         | 
| 21 | 
            +
                  run: |
         | 
| 22 | 
            +
                    mkdir -p $HOME/.gem
         | 
| 23 | 
            +
                    touch $HOME/.gem/credentials
         | 
| 24 | 
            +
                    chmod 0600 $HOME/.gem/credentials
         | 
| 25 | 
            +
                    printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
         | 
| 26 | 
            +
                    bin/gempush-if-changed
         | 
| 27 | 
            +
                  env:
         | 
| 28 | 
            +
                    GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            name: Tests
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on: push
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            jobs:
         | 
| 6 | 
            +
              ci:
         | 
| 7 | 
            +
                name: CI
         | 
| 8 | 
            +
                runs-on: ubuntu-latest
         | 
| 9 | 
            +
                strategy:
         | 
| 10 | 
            +
                  matrix:
         | 
| 11 | 
            +
                    ruby:
         | 
| 12 | 
            +
                      - '2.3.x'
         | 
| 13 | 
            +
                      - '2.4.x'
         | 
| 14 | 
            +
                      - '2.5.x'
         | 
| 15 | 
            +
                      - '2.6.x'
         | 
| 16 | 
            +
                    rails:
         | 
| 17 | 
            +
                      - '5.0.7.2'
         | 
| 18 | 
            +
                      - '5.1.7'
         | 
| 19 | 
            +
                      - '5.2.3'
         | 
| 20 | 
            +
                steps:
         | 
| 21 | 
            +
                  - name: Install system dependencies
         | 
| 22 | 
            +
                    run: sudo apt-get install -y libsqlite3-dev
         | 
| 23 | 
            +
                  - uses: actions/checkout@master
         | 
| 24 | 
            +
                  - name: Setup ruby
         | 
| 25 | 
            +
                    uses: actions/setup-ruby@v1
         | 
| 26 | 
            +
                    with:
         | 
| 27 | 
            +
                      ruby-version: ${{ matrix.ruby }}
         | 
| 28 | 
            +
                      architecture: 'x64'
         | 
| 29 | 
            +
                  - run: gem install bundler && bundle && bundle exec rake 
         | 
| 30 | 
            +
                    env:
         | 
| 31 | 
            +
                      AR_TEST_VERSION: ${{ matrix.rails }}
         | 
| 32 | 
            +
             | 
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/.rubocop_todo.yml
    CHANGED
    
    | @@ -1,12 +1,7 @@ | |
| 1 1 | 
             
            # This configuration was generated by
         | 
| 2 2 | 
             
            # `rubocop --auto-gen-config`
         | 
| 3 | 
            -
            # on 2019-10- | 
| 3 | 
            +
            # on 2019-10-15 13:32:11 +0200 using RuboCop version 0.68.1.
         | 
| 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
         | 
| 7 7 | 
             
            # versions of RuboCop, may require this file to be generated again.
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            # Offense count: 15
         | 
| 10 | 
            -
            Lint/AmbiguousBlockAssociation:
         | 
| 11 | 
            -
              Exclude:
         | 
| 12 | 
            -
                - 'spec/permanent_records_spec.rb'
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    
    
        data/README.rst
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            5.0.0
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            #!/bin/bash
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            set -x
         | 
| 4 | 
            +
            if git diff --name-only HEAD..HEAD^ | egrep -q '^VERSION$'; then
         | 
| 5 | 
            +
              # The VERSION file changed in the last commit, build the gem and push
         | 
| 6 | 
            +
              gem build *.gemspec
         | 
| 7 | 
            +
              gem push *.gem
         | 
| 8 | 
            +
              version=$(cat VERSION)
         | 
| 9 | 
            +
              git tag ${version}
         | 
| 10 | 
            +
              git push origin ${version}
         | 
| 11 | 
            +
            fi
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            .github/workflows/test.yml
         | 
    
        data/lib/permanent_records.rb
    CHANGED
    
    | @@ -51,7 +51,7 @@ module PermanentRecords | |
| 51 51 | 
             
                    if !is_permanent? || PermanentRecords.should_force_destroy?(force)
         | 
| 52 52 | 
             
                      permanently_delete_records_after { super() }
         | 
| 53 53 | 
             
                    else
         | 
| 54 | 
            -
                      destroy_with_permanent_records | 
| 54 | 
            +
                      destroy_with_permanent_records(force)
         | 
| 55 55 | 
             
                    end
         | 
| 56 56 | 
             
                  end
         | 
| 57 57 | 
             
                end
         | 
| @@ -68,7 +68,7 @@ module PermanentRecords | |
| 68 68 | 
             
                        set_deleted_at(nil, validate)
         | 
| 69 69 | 
             
                        # increment all associated counters for counter cache
         | 
| 70 70 | 
             
                        each_counter_cache do |assoc_class, counter_cache_column, assoc_id|
         | 
| 71 | 
            -
                          assoc_class.increment_counter | 
| 71 | 
            +
                          assoc_class.increment_counter(counter_cache_column, assoc_id)
         | 
| 72 72 | 
             
                        end
         | 
| 73 73 | 
             
                        true
         | 
| 74 74 | 
             
                      end
         | 
| @@ -81,9 +81,9 @@ module PermanentRecords | |
| 81 81 | 
             
                end
         | 
| 82 82 |  | 
| 83 83 | 
             
                # rubocop:disable Metrics/MethodLength
         | 
| 84 | 
            -
                # rubocop:disable Lint/RescueWithoutErrorClass
         | 
| 85 84 | 
             
                def set_deleted_at(value, force = nil)
         | 
| 86 85 | 
             
                  return self unless is_permanent?
         | 
| 86 | 
            +
             | 
| 87 87 | 
             
                  record = get_deleted_record
         | 
| 88 88 | 
             
                  record.deleted_at = value
         | 
| 89 89 | 
             
                  begin
         | 
| @@ -98,14 +98,14 @@ module PermanentRecords | |
| 98 98 | 
             
                    end
         | 
| 99 99 |  | 
| 100 100 | 
             
                    @attributes = record.instance_variable_get('@attributes')
         | 
| 101 | 
            -
                  rescue => e
         | 
| 101 | 
            +
                  rescue StandardError => e
         | 
| 102 102 | 
             
                    # trigger dependent record destruction (they were revived before this
         | 
| 103 103 | 
             
                    # record, which cannot be revived due to validations)
         | 
| 104 104 | 
             
                    record.destroy
         | 
| 105 105 | 
             
                    raise e
         | 
| 106 106 | 
             
                  end
         | 
| 107 107 | 
             
                end
         | 
| 108 | 
            -
             | 
| 108 | 
            +
             | 
| 109 109 | 
             
                # rubocop:enable Metrics/MethodLength
         | 
| 110 110 |  | 
| 111 111 | 
             
                def each_counter_cache
         | 
| @@ -116,9 +116,7 @@ module PermanentRecords | |
| 116 116 |  | 
| 117 117 | 
             
                    associated_class = association.class
         | 
| 118 118 |  | 
| 119 | 
            -
                    yield(associated_class,
         | 
| 120 | 
            -
                          reflection.counter_cache_column,
         | 
| 121 | 
            -
                          send(reflection.foreign_key))
         | 
| 119 | 
            +
                    yield(associated_class, reflection.counter_cache_column, send(reflection.foreign_key))
         | 
| 122 120 | 
             
                  end
         | 
| 123 121 | 
             
                end
         | 
| 124 122 |  | 
| @@ -131,7 +129,7 @@ module PermanentRecords | |
| 131 129 | 
             
                      set_deleted_at(Time.now, force)
         | 
| 132 130 | 
             
                      # decrement all associated counters for counter cache
         | 
| 133 131 | 
             
                      each_counter_cache do |assoc_class, counter_cache_column, assoc_id|
         | 
| 134 | 
            -
                        assoc_class.decrement_counter | 
| 132 | 
            +
                        assoc_class.decrement_counter(counter_cache_column, assoc_id)
         | 
| 135 133 | 
             
                      end
         | 
| 136 134 | 
             
                    end
         | 
| 137 135 | 
             
                    true
         | 
| @@ -143,18 +141,16 @@ module PermanentRecords | |
| 143 141 | 
             
                def add_record_window(_request, name, reflection)
         | 
| 144 142 | 
             
                  send(name).unscope(where: :deleted_at).where(
         | 
| 145 143 | 
             
                    [
         | 
| 146 | 
            -
                      "#{reflection.quoted_table_name}.deleted_at > ?" \
         | 
| 144 | 
            +
                      "#{reflection.klass.quoted_table_name}.deleted_at > ?" \
         | 
| 147 145 | 
             
                      ' AND ' \
         | 
| 148 | 
            -
                      "#{reflection.quoted_table_name}.deleted_at < ?",
         | 
| 146 | 
            +
                      "#{reflection.klass.quoted_table_name}.deleted_at < ?",
         | 
| 149 147 | 
             
                      deleted_at - PermanentRecords.dependent_record_window,
         | 
| 150 148 | 
             
                      deleted_at + PermanentRecords.dependent_record_window
         | 
| 151 149 | 
             
                    ]
         | 
| 152 150 | 
             
                  )
         | 
| 153 151 | 
             
                end
         | 
| 154 152 |  | 
| 155 | 
            -
                # TODO: Feel free to refactor this without polluting the ActiveRecord
         | 
| 156 | 
            -
                # namespace.
         | 
| 157 | 
            -
                # rubocop:disable Metrics/AbcSize
         | 
| 153 | 
            +
                # TODO: Feel free to refactor this without polluting the ActiveRecord namespace.
         | 
| 158 154 | 
             
                def revive_destroyed_dependent_records(force = nil)
         | 
| 159 155 | 
             
                  destroyed_dependent_relations.each do |relation|
         | 
| 160 156 | 
             
                    relation.to_a.each { |destroyed_dependent_record| destroyed_dependent_record.try(:revive, force) }
         | 
| @@ -165,15 +161,14 @@ module PermanentRecords | |
| 165 161 | 
             
                # rubocop:disable Metrics/MethodLength
         | 
| 166 162 | 
             
                def destroyed_dependent_relations
         | 
| 167 163 | 
             
                  PermanentRecords.dependent_permanent_reflections(self.class).map do |name, relation|
         | 
| 168 | 
            -
                     | 
| 169 | 
            -
                     | 
| 170 | 
            -
                    when :many
         | 
| 164 | 
            +
                    case relation.macro.to_sym
         | 
| 165 | 
            +
                    when :has_many
         | 
| 171 166 | 
             
                      if deleted_at
         | 
| 172 167 | 
             
                        add_record_window(send(name), name, relation)
         | 
| 173 168 | 
             
                      else
         | 
| 174 169 | 
             
                        send(name).unscope(where: :deleted_at)
         | 
| 175 170 | 
             
                      end
         | 
| 176 | 
            -
                    when : | 
| 171 | 
            +
                    when :has_one, :belongs_to
         | 
| 177 172 | 
             
                      self.class.unscoped { Array(send(name)) }
         | 
| 178 173 | 
             
                    end
         | 
| 179 174 | 
             
                  end
         | 
| @@ -194,6 +189,7 @@ module PermanentRecords | |
| 194 189 | 
             
                                  .reduce({}) do |records, (key, _)|
         | 
| 195 190 | 
             
                    found = Array(send(key)).compact
         | 
| 196 191 | 
             
                    next records if found.empty?
         | 
| 192 | 
            +
             | 
| 197 193 | 
             
                    records.update found.first.class => found.map(&:id)
         | 
| 198 194 | 
             
                  end
         | 
| 199 195 | 
             
                end
         | 
| @@ -218,6 +214,7 @@ module PermanentRecords | |
| 218 214 | 
             
                    ids.each do |id|
         | 
| 219 215 | 
             
                      record = klass.unscoped.where(klass.primary_key => id).first
         | 
| 220 216 | 
             
                      next unless record
         | 
| 217 | 
            +
             | 
| 221 218 | 
             
                      record.deleted_at = nil
         | 
| 222 219 | 
             
                      record.destroy(:force)
         | 
| 223 220 | 
             
                    end
         | 
| @@ -282,5 +279,9 @@ module PermanentRecords | |
| 282 279 | 
             
            end
         | 
| 283 280 |  | 
| 284 281 | 
             
            ActiveSupport.on_load(:active_record) do
         | 
| 285 | 
            -
              ActiveRecord::Base.send | 
| 282 | 
            +
              ActiveRecord::Base.send(:include, PermanentRecords::ActiveRecord)
         | 
| 283 | 
            +
             | 
| 284 | 
            +
              if [ActiveRecord::VERSION::MAJOR, ActiveRecord::VERSION::MINOR] == [5, 2] || ActiveRecord::VERSION::MAJOR > 5
         | 
| 285 | 
            +
                require 'permanent_records/active_record_5_2'
         | 
| 286 | 
            +
              end
         | 
| 286 287 | 
             
            end
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            # rubocop:disable Metrics/AbcSize
         | 
| 2 | 
            +
            # Support destroy for rails belongs_to assocations.
         | 
| 3 | 
            +
            module HandlePermanentRecordsDestroyedInBelongsToAssociation
         | 
| 4 | 
            +
              def handle_dependency
         | 
| 5 | 
            +
                return unless load_target
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                case options[:dependent]
         | 
| 8 | 
            +
                when :destroy
         | 
| 9 | 
            +
                  target.destroy
         | 
| 10 | 
            +
                  raise ActiveRecord::Rollback if target.respond_to?(:deleted?) && !target.deleted?
         | 
| 11 | 
            +
                else
         | 
| 12 | 
            +
                  target.send(options[:dependent])
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # rubocop:disable Metrics/MethodLength
         | 
| 18 | 
            +
            # rubocop:disable Metrics/CyclomaticComplexity
         | 
| 19 | 
            +
            # Support destroy for rails 5.2. has_on associations.
         | 
| 20 | 
            +
            module HandlePermanentRecordsDestroyedInHasOneAssociation
         | 
| 21 | 
            +
              def delete(method = options[:dependent])
         | 
| 22 | 
            +
                return unless load_target
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                case method
         | 
| 25 | 
            +
                when :delete
         | 
| 26 | 
            +
                  target.delete
         | 
| 27 | 
            +
                when :destroy
         | 
| 28 | 
            +
                  target.destroyed_by_association = reflection
         | 
| 29 | 
            +
                  target.destroy
         | 
| 30 | 
            +
                  throw(:abort) if target.respond_to?(:deleted?) && !target.deleted?
         | 
| 31 | 
            +
                when :nullify
         | 
| 32 | 
            +
                  target.update_columns(reflection.foreign_key => nil) if target.persisted?
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
            end
         | 
| 36 | 
            +
            # rubocop:enable Metrics/CyclomaticComplexity
         | 
| 37 | 
            +
            # rubocop:enable Metrics/MethodLength
         | 
| 38 | 
            +
            # rubocop:enable Metrics/AbcSize
         | 
| 39 | 
            +
            ActiveRecord::Associations::BelongsToAssociation.prepend(HandlePermanentRecordsDestroyedInBelongsToAssociation)
         | 
| 40 | 
            +
            ActiveRecord::Associations::HasOneAssociation.prepend(HandlePermanentRecordsDestroyedInHasOneAssociation)
         | 
    
        data/permanent_records.gemspec
    CHANGED
    
    | @@ -10,7 +10,7 @@ Gem::Specification.new do |s| | |
| 10 10 | 
             
              s.description = <<-DESCRIPTION
         | 
| 11 11 | 
             
                Never Lose Data. Rather than deleting rows this sets Record#deleted_at and
         | 
| 12 12 | 
             
                gives you all the scopes you need to work with your data.
         | 
| 13 | 
            -
            DESCRIPTION
         | 
| 13 | 
            +
              DESCRIPTION
         | 
| 14 14 | 
             
              s.email = 'github@jackcanty.com'
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
| 16 16 | 
             
                'LICENSE',
         | 
| @@ -26,12 +26,13 @@ DESCRIPTION | |
| 26 26 | 
             
              ver = ENV['AR_TEST_VERSION']
         | 
| 27 27 | 
             
              ver = ver.dup.chomp if ver
         | 
| 28 28 |  | 
| 29 | 
            -
              s.add_runtime_dependency 'activerecord',  ver || '>=  | 
| 30 | 
            -
              s.add_runtime_dependency 'activesupport', ver || '>=  | 
| 29 | 
            +
              s.add_runtime_dependency 'activerecord',  ver || '>= 5.0.0'
         | 
| 30 | 
            +
              s.add_runtime_dependency 'activesupport', ver || '>= 5.0.0'
         | 
| 31 31 | 
             
              s.add_development_dependency 'database_cleaner', '>= 1.5.1'
         | 
| 32 32 | 
             
              s.add_development_dependency 'pry-byebug'
         | 
| 33 33 | 
             
              s.add_development_dependency 'rake' # For Travis-ci
         | 
| 34 34 | 
             
              s.add_development_dependency 'rspec', '>= 3.5.0'
         | 
| 35 | 
            -
              s.add_development_dependency 'rubocop', '~> 0. | 
| 36 | 
            -
              s.add_development_dependency ' | 
| 35 | 
            +
              s.add_development_dependency 'rubocop', '~> 0.68.0' # freeze to ensure ruby 2.2 compatibility
         | 
| 36 | 
            +
              s.add_development_dependency 'rubocop-performance'
         | 
| 37 | 
            +
              s.add_development_dependency 'sqlite3', '~> 1.3.13' # freeze to ensure specs are working
         | 
| 37 38 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: permanent_records
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 5.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jack Danger Canty
         | 
| @@ -17,36 +17,36 @@ authors: | |
| 17 17 | 
             
            autorequire: 
         | 
| 18 18 | 
             
            bindir: bin
         | 
| 19 19 | 
             
            cert_chain: []
         | 
| 20 | 
            -
            date: 2019-10- | 
| 20 | 
            +
            date: 2019-10-16 00:00:00.000000000 Z
         | 
| 21 21 | 
             
            dependencies:
         | 
| 22 22 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 23 23 | 
             
              name: activerecord
         | 
| 24 24 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 25 25 | 
             
                requirements:
         | 
| 26 | 
            -
                - -  | 
| 26 | 
            +
                - - ">="
         | 
| 27 27 | 
             
                  - !ruby/object:Gem::Version
         | 
| 28 | 
            -
                    version:  | 
| 28 | 
            +
                    version: 5.0.0
         | 
| 29 29 | 
             
              type: :runtime
         | 
| 30 30 | 
             
              prerelease: false
         | 
| 31 31 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 32 32 | 
             
                requirements:
         | 
| 33 | 
            -
                - -  | 
| 33 | 
            +
                - - ">="
         | 
| 34 34 | 
             
                  - !ruby/object:Gem::Version
         | 
| 35 | 
            -
                    version:  | 
| 35 | 
            +
                    version: 5.0.0
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: activesupport
         | 
| 38 38 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                requirements:
         | 
| 40 | 
            -
                - -  | 
| 40 | 
            +
                - - ">="
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            -
                    version:  | 
| 42 | 
            +
                    version: 5.0.0
         | 
| 43 43 | 
             
              type: :runtime
         | 
| 44 44 | 
             
              prerelease: false
         | 
| 45 45 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 46 46 | 
             
                requirements:
         | 
| 47 | 
            -
                - -  | 
| 47 | 
            +
                - - ">="
         | 
| 48 48 | 
             
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            -
                    version:  | 
| 49 | 
            +
                    version: 5.0.0
         | 
| 50 50 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 51 51 | 
             
              name: database_cleaner
         | 
| 52 52 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -109,28 +109,42 @@ dependencies: | |
| 109 109 | 
             
                requirements:
         | 
| 110 110 | 
             
                - - "~>"
         | 
| 111 111 | 
             
                  - !ruby/object:Gem::Version
         | 
| 112 | 
            -
                    version: 0. | 
| 112 | 
            +
                    version: 0.68.0
         | 
| 113 113 | 
             
              type: :development
         | 
| 114 114 | 
             
              prerelease: false
         | 
| 115 115 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 116 116 | 
             
                requirements:
         | 
| 117 117 | 
             
                - - "~>"
         | 
| 118 118 | 
             
                  - !ruby/object:Gem::Version
         | 
| 119 | 
            -
                    version: 0. | 
| 119 | 
            +
                    version: 0.68.0
         | 
| 120 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 121 | 
            +
              name: rubocop-performance
         | 
| 122 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 123 | 
            +
                requirements:
         | 
| 124 | 
            +
                - - ">="
         | 
| 125 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 126 | 
            +
                    version: '0'
         | 
| 127 | 
            +
              type: :development
         | 
| 128 | 
            +
              prerelease: false
         | 
| 129 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 130 | 
            +
                requirements:
         | 
| 131 | 
            +
                - - ">="
         | 
| 132 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 133 | 
            +
                    version: '0'
         | 
| 120 134 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 121 135 | 
             
              name: sqlite3
         | 
| 122 136 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 123 137 | 
             
                requirements:
         | 
| 124 138 | 
             
                - - "~>"
         | 
| 125 139 | 
             
                  - !ruby/object:Gem::Version
         | 
| 126 | 
            -
                    version: 1.3. | 
| 140 | 
            +
                    version: 1.3.13
         | 
| 127 141 | 
             
              type: :development
         | 
| 128 142 | 
             
              prerelease: false
         | 
| 129 143 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 130 144 | 
             
                requirements:
         | 
| 131 145 | 
             
                - - "~>"
         | 
| 132 146 | 
             
                  - !ruby/object:Gem::Version
         | 
| 133 | 
            -
                    version: 1.3. | 
| 147 | 
            +
                    version: 1.3.13
         | 
| 134 148 | 
             
            description: |2
         | 
| 135 149 | 
             
                  Never Lose Data. Rather than deleting rows this sets Record#deleted_at and
         | 
| 136 150 | 
             
                  gives you all the scopes you need to work with your data.
         | 
| @@ -142,6 +156,8 @@ extra_rdoc_files: | |
| 142 156 | 
             
            - README.md
         | 
| 143 157 | 
             
            files:
         | 
| 144 158 | 
             
            - ".document"
         | 
| 159 | 
            +
            - ".github/workflows/gempush.yml"
         | 
| 160 | 
            +
            - ".github/workflows/test.yml"
         | 
| 145 161 | 
             
            - ".gitignore"
         | 
| 146 162 | 
             
            - ".rubocop.yml"
         | 
| 147 163 | 
             
            - ".rubocop_todo.yml"
         | 
| @@ -154,9 +170,12 @@ files: | |
| 154 170 | 
             
            - README.rst
         | 
| 155 171 | 
             
            - Rakefile
         | 
| 156 172 | 
             
            - VERSION
         | 
| 173 | 
            +
            - bin/gempush-if-changed
         | 
| 157 174 | 
             
            - bin/rspec
         | 
| 158 175 | 
             
            - ci
         | 
| 176 | 
            +
            - github-actions-test.yml
         | 
| 159 177 | 
             
            - lib/permanent_records.rb
         | 
| 178 | 
            +
            - lib/permanent_records/active_record_5_2.rb
         | 
| 160 179 | 
             
            - permanent_records.gemspec
         | 
| 161 180 | 
             
            homepage: https://github.com/JackDanger/permanent_records
         | 
| 162 181 | 
             
            licenses:
         |