switchman 1.2.2 → 1.2.3
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 +8 -8
- data/app/models/switchman/shard.rb +8 -1
- data/lib/switchman/active_record/abstract_adapter.rb +9 -0
- data/lib/switchman/active_record/connection_handler.rb +5 -0
- data/lib/switchman/active_record/connection_pool.rb +28 -0
- data/lib/switchman/connection_pool_proxy.rb +10 -1
- data/lib/switchman/engine.rb +1 -1
- data/lib/switchman/version.rb +1 -1
- data/spec/dummy/db/shard_4521.sqlite3 +0 -0
- data/spec/dummy/db/shard_4549.sqlite3 +0 -0
- data/spec/dummy/db/shard_4573.sqlite3 +0 -0
- data/spec/dummy/log/development.log +31 -0
- data/spec/dummy/log/test.log +10232 -0
- data/spec/dummy/tmp/cache/37F/680/shard%2F4524 +1 -0
- data/spec/dummy/tmp/cache/37F/6C0/shard%2F4560 +1 -0
- data/spec/dummy/tmp/cache/382/6A0/shard%2F4518 +0 -0
- data/spec/dummy/tmp/cache/383/6B0/shard%2F4519 +0 -0
- data/spec/dummy/tmp/cache/383/6D0/shard%2F4537 +1 -0
- data/spec/dummy/tmp/cache/384/700/shard%2F4556 +0 -0
- data/spec/dummy/tmp/cache/385/710/shard%2F4557 +0 -0
- data/spec/dummy/tmp/cache/3B1/0F0/shard%2F14534 +1 -0
- data/spec/dummy/tmp/cache/3B4/100/shard%2F14519 +1 -0
- data/spec/dummy/tmp/cache/3B6/160/shard%2F14557 +1 -0
- data/spec/lib/active_record/abstract_adapter_spec.rb +16 -0
- data/spec/lib/active_record/connection_pool_spec.rb +58 -0
- data/spec/lib/connection_pool_proxy_spec.rb +7 -0
- metadata +31 -3
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521655.235334:@value":nil
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521681.65534:@value":nil
         | 
| Binary file | 
| Binary file | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521664.86255:@value":nil
         | 
| Binary file | 
| Binary file | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521665.039567:@value":nil
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521654.980878:@value":nil
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1402521681.713449:@value":nil
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require "spec_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Switchman
         | 
| 4 | 
            +
              module ActiveRecord
         | 
| 5 | 
            +
                describe AbstractAdapter do
         | 
| 6 | 
            +
                  include RSpecHelper
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  it "should update the connection's last_query_at on query" do
         | 
| 9 | 
            +
                    conn = @shard1.activate{ User.connection }
         | 
| 10 | 
            +
                    Time.stubs(:now).returns(conn.last_query_at + 1.minute)
         | 
| 11 | 
            +
                    @shard1.activate{ User.create! }
         | 
| 12 | 
            +
                    conn.last_query_at.should == Time.now
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| @@ -18,6 +18,64 @@ module Switchman | |
| 18 18 | 
             
                      lambda { User.count }.should_not raise_exception
         | 
| 19 19 | 
             
                    end
         | 
| 20 20 | 
             
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  describe "clear_idle_connections!" do
         | 
| 23 | 
            +
                    before do
         | 
| 24 | 
            +
                      pending 'A "real" database"' unless Shard.default.database_server.shareable?
         | 
| 25 | 
            +
                      @server = DatabaseServer.create(:config => Shard.default.database_server.config.dup)
         | 
| 26 | 
            +
                      @shard = @server.shards.create!
         | 
| 27 | 
            +
                      @conn, @pool = @shard.activate{ [User.connection, User.connection_pool.current_pool] }
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                    it "should disconnect idle connections" do
         | 
| 31 | 
            +
                      @pool.checkin(@conn)
         | 
| 32 | 
            +
                      @conn.expects(:disconnect!).once
         | 
| 33 | 
            +
                      @pool.clear_idle_connections!(@conn.last_query_at + 1)
         | 
| 34 | 
            +
                    end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                    it "should remove idle connections" do
         | 
| 37 | 
            +
                      @pool.checkin(@conn)
         | 
| 38 | 
            +
                      @pool.clear_idle_connections!(@conn.last_query_at + 1)
         | 
| 39 | 
            +
                      @pool.connections.should be_empty
         | 
| 40 | 
            +
                    end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                    it "should not affect idle but checked out connections" do
         | 
| 43 | 
            +
                      @conn.expects(:disconnect!).never
         | 
| 44 | 
            +
                      @pool.clear_idle_connections!(@conn.last_query_at + 1)
         | 
| 45 | 
            +
                    end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                    it "should not affect checked in but recently active connections" do
         | 
| 48 | 
            +
                      @pool.checkin(@conn)
         | 
| 49 | 
            +
                      @conn.expects(:disconnect!).never
         | 
| 50 | 
            +
                      @pool.clear_idle_connections!(@conn.last_query_at - 1)
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  describe "release_connection" do
         | 
| 55 | 
            +
                    before do
         | 
| 56 | 
            +
                      pending 'A "real" database"' unless Shard.default.database_server.shareable?
         | 
| 57 | 
            +
                      @server = DatabaseServer.create(:config => Shard.default.database_server.config.dup)
         | 
| 58 | 
            +
                      @shard = @server.shards.create!
         | 
| 59 | 
            +
                      @pool = @shard.activate{ User.connection_pool.current_pool }
         | 
| 60 | 
            +
                      @timeout_was = @pool.spec.config[:idle_timeout]
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    after do
         | 
| 64 | 
            +
                      @pool.spec.config[:idle_timeout] = @timeout_was
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    it "should clear idle connections if idle timeout is configured" do
         | 
| 68 | 
            +
                      @pool.spec.config[:idle_timeout] = 1.minute
         | 
| 69 | 
            +
                      @pool.expects(:clear_idle_connections!).at_least_once
         | 
| 70 | 
            +
                      @pool.release_connection
         | 
| 71 | 
            +
                    end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                    it "should still work if idle timeout is not configured" do
         | 
| 74 | 
            +
                      @pool.spec.config[:idle_timeout] = nil
         | 
| 75 | 
            +
                      @pool.expects(:clear_idle_connections!).never
         | 
| 76 | 
            +
                      lambda { @pool.release_connection }.should_not raise_exception
         | 
| 77 | 
            +
                    end
         | 
| 78 | 
            +
                  end
         | 
| 21 79 | 
             
                end
         | 
| 22 80 | 
             
              end
         | 
| 23 81 | 
             
            end
         | 
| @@ -11,5 +11,12 @@ module Switchman | |
| 11 11 | 
             
                  ::ActiveRecord::Base.connection.should_not == @sqlite_shard2.activate { ::ActiveRecord::Base.connection }
         | 
| 12 12 | 
             
                  @sqlite_shard1.activate { ::ActiveRecord::Base.connection }.should_not == @sqlite_shard2.activate { ::ActiveRecord::Base.connection }
         | 
| 13 13 | 
             
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                it "should forward clear_idle_connections! to each of its pools" do
         | 
| 16 | 
            +
                  proxy = User.connection_pool
         | 
| 17 | 
            +
                  @shard1.activate{ proxy.current_pool.expects(:clear_idle_connections!).once }
         | 
| 18 | 
            +
                  @shard2.activate{ proxy.current_pool.expects(:clear_idle_connections!).once }
         | 
| 19 | 
            +
                  proxy.clear_idle_connections!(Time.now)
         | 
| 20 | 
            +
                end
         | 
| 14 21 | 
             
              end
         | 
| 15 22 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: switchman
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Cody Cutrer
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2014- | 
| 13 | 
            +
            date: 2014-06-12 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: railties
         | 
| @@ -204,6 +204,9 @@ files: | |
| 204 204 | 
             
            - spec/dummy/db/migrate/20140219183820_create_roots.rb
         | 
| 205 205 | 
             
            - spec/dummy/db/schema.rb
         | 
| 206 206 | 
             
            - spec/dummy/db/shard_4377.sqlite3
         | 
| 207 | 
            +
            - spec/dummy/db/shard_4521.sqlite3
         | 
| 208 | 
            +
            - spec/dummy/db/shard_4549.sqlite3
         | 
| 209 | 
            +
            - spec/dummy/db/shard_4573.sqlite3
         | 
| 207 210 | 
             
            - spec/dummy/db/switchman_test.sqlite3
         | 
| 208 211 | 
             
            - spec/dummy/log/development.log
         | 
| 209 212 | 
             
            - spec/dummy/log/test.log
         | 
| @@ -629,7 +632,9 @@ files: | |
| 629 632 | 
             
            - spec/dummy/tmp/cache/37F/650/shard%2F2634
         | 
| 630 633 | 
             
            - spec/dummy/tmp/cache/37F/660/shard%2F3372
         | 
| 631 634 | 
             
            - spec/dummy/tmp/cache/37F/670/shard%2F4353
         | 
| 635 | 
            +
            - spec/dummy/tmp/cache/37F/680/shard%2F4524
         | 
| 632 636 | 
             
            - spec/dummy/tmp/cache/37F/690/shard%2F4290
         | 
| 637 | 
            +
            - spec/dummy/tmp/cache/37F/6C0/shard%2F4560
         | 
| 633 638 | 
             
            - spec/dummy/tmp/cache/380/5C0/shard%2F1168
         | 
| 634 639 | 
             
            - spec/dummy/tmp/cache/380/5E0/shard%2F1429
         | 
| 635 640 | 
             
            - spec/dummy/tmp/cache/380/5F0/shard%2F1195
         | 
| @@ -720,6 +725,7 @@ files: | |
| 720 725 | 
             
            - spec/dummy/tmp/cache/382/690/shard%2F1674
         | 
| 721 726 | 
             
            - spec/dummy/tmp/cache/382/6A0/shard%2F1845
         | 
| 722 727 | 
             
            - spec/dummy/tmp/cache/382/6A0/shard%2F2493
         | 
| 728 | 
            +
            - spec/dummy/tmp/cache/382/6A0/shard%2F4518
         | 
| 723 729 | 
             
            - spec/dummy/tmp/cache/382/6B0/shard%2F3636
         | 
| 724 730 | 
             
            - spec/dummy/tmp/cache/382/6B0/shard%2F4284
         | 
| 725 731 | 
             
            - spec/dummy/tmp/cache/382/6C0/shard%2F2592
         | 
| @@ -745,9 +751,11 @@ files: | |
| 745 751 | 
             
            - spec/dummy/tmp/cache/383/690/shard%2F4177
         | 
| 746 752 | 
             
            - spec/dummy/tmp/cache/383/6A0/shard%2F2809
         | 
| 747 753 | 
             
            - spec/dummy/tmp/cache/383/6A0/shard%2F3376
         | 
| 754 | 
            +
            - spec/dummy/tmp/cache/383/6B0/shard%2F4519
         | 
| 748 755 | 
             
            - spec/dummy/tmp/cache/383/6C0/shard%2F1774
         | 
| 749 756 | 
             
            - spec/dummy/tmp/cache/383/6C0/shard%2F2746
         | 
| 750 757 | 
             
            - spec/dummy/tmp/cache/383/6D0/shard%2F2755
         | 
| 758 | 
            +
            - spec/dummy/tmp/cache/383/6D0/shard%2F4537
         | 
| 751 759 | 
             
            - spec/dummy/tmp/cache/383/6E0/shard%2F2764
         | 
| 752 760 | 
             
            - spec/dummy/tmp/cache/383/6F0/shard%2F3907
         | 
| 753 761 | 
             
            - spec/dummy/tmp/cache/383/6F0/shard%2F4393
         | 
| @@ -768,6 +776,7 @@ files: | |
| 768 776 | 
             
            - spec/dummy/tmp/cache/384/6F0/shard%2F2765
         | 
| 769 777 | 
             
            - spec/dummy/tmp/cache/384/700/shard%2F1883
         | 
| 770 778 | 
             
            - spec/dummy/tmp/cache/384/700/shard%2F3827
         | 
| 779 | 
            +
            - spec/dummy/tmp/cache/384/700/shard%2F4556
         | 
| 771 780 | 
             
            - spec/dummy/tmp/cache/384/710/shard%2F1892
         | 
| 772 781 | 
             
            - spec/dummy/tmp/cache/384/710/shard%2F2864
         | 
| 773 782 | 
             
            - spec/dummy/tmp/cache/384/720/shard%2F2873
         | 
| @@ -781,6 +790,7 @@ files: | |
| 781 790 | 
             
            - spec/dummy/tmp/cache/385/6F0/shard%2F2595
         | 
| 782 791 | 
             
            - spec/dummy/tmp/cache/385/710/shard%2F2694
         | 
| 783 792 | 
             
            - spec/dummy/tmp/cache/385/710/shard%2F3828
         | 
| 793 | 
            +
            - spec/dummy/tmp/cache/385/710/shard%2F4557
         | 
| 784 794 | 
             
            - spec/dummy/tmp/cache/386/690/shard%2F1399
         | 
| 785 795 | 
             
            - spec/dummy/tmp/cache/386/6B0/shard%2F3199
         | 
| 786 796 | 
             
            - spec/dummy/tmp/cache/386/6C0/shard%2F2479
         | 
| @@ -909,6 +919,7 @@ files: | |
| 909 919 | 
             
            - spec/dummy/tmp/cache/3B1/0E0/shard%2F13472
         | 
| 910 920 | 
             
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F12833
         | 
| 911 921 | 
             
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F14291
         | 
| 922 | 
            +
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F14534
         | 
| 912 923 | 
             
            - spec/dummy/tmp/cache/3B2/000/shard%2F10179
         | 
| 913 924 | 
             
            - spec/dummy/tmp/cache/3B2/050/shard%2F10386
         | 
| 914 925 | 
             
            - spec/dummy/tmp/cache/3B2/060/shard%2F13149
         | 
| @@ -932,6 +943,7 @@ files: | |
| 932 943 | 
             
            - spec/dummy/tmp/cache/3B4/0B0/shard%2F11558
         | 
| 933 944 | 
             
            - spec/dummy/tmp/cache/3B4/0E0/shard%2F10775
         | 
| 934 945 | 
             
            - spec/dummy/tmp/cache/3B4/0E0/shard%2F12719
         | 
| 946 | 
            +
            - spec/dummy/tmp/cache/3B4/100/shard%2F14519
         | 
| 935 947 | 
             
            - spec/dummy/tmp/cache/3B4/110/shard%2F13394
         | 
| 936 948 | 
             
            - spec/dummy/tmp/cache/3B4/130/shard%2F11873
         | 
| 937 949 | 
             
            - spec/dummy/tmp/cache/3B4/160/shard%2F11981
         | 
| @@ -950,6 +962,7 @@ files: | |
| 950 962 | 
             
            - spec/dummy/tmp/cache/3B6/120/shard%2F11686
         | 
| 951 963 | 
             
            - spec/dummy/tmp/cache/3B6/150/shard%2F12685
         | 
| 952 964 | 
             
            - spec/dummy/tmp/cache/3B6/160/shard%2F13828
         | 
| 965 | 
            +
            - spec/dummy/tmp/cache/3B6/160/shard%2F14557
         | 
| 953 966 | 
             
            - spec/dummy/tmp/cache/3B7/100/shard%2F10688
         | 
| 954 967 | 
             
            - spec/dummy/tmp/cache/3B7/110/shard%2F11669
         | 
| 955 968 | 
             
            - spec/dummy/tmp/cache/3B7/140/shard%2F12668
         | 
| @@ -1093,6 +1106,7 @@ files: | |
| 1093 1106 | 
             
            - spec/dummy/tmp/cache/52E/CC0/shard_1898%3Akey
         | 
| 1094 1107 | 
             
            - spec/dummy/tmp/cache/52F/D30/shard_1899%3Akey
         | 
| 1095 1108 | 
             
            - spec/lib/action_controller/caching_spec.rb
         | 
| 1109 | 
            +
            - spec/lib/active_record/abstract_adapter_spec.rb
         | 
| 1096 1110 | 
             
            - spec/lib/active_record/association_spec.rb
         | 
| 1097 1111 | 
             
            - spec/lib/active_record/attribute_methods_spec.rb
         | 
| 1098 1112 | 
             
            - spec/lib/active_record/base_spec.rb
         | 
| @@ -1132,7 +1146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 1132 1146 | 
             
                  version: '0'
         | 
| 1133 1147 | 
             
            requirements: []
         | 
| 1134 1148 | 
             
            rubyforge_project: 
         | 
| 1135 | 
            -
            rubygems_version: 2. | 
| 1149 | 
            +
            rubygems_version: 2.3.0
         | 
| 1136 1150 | 
             
            signing_key: 
         | 
| 1137 1151 | 
             
            specification_version: 4
         | 
| 1138 1152 | 
             
            summary: Rails 3 sharding magic
         | 
| @@ -1166,6 +1180,9 @@ test_files: | |
| 1166 1180 | 
             
            - spec/dummy/db/migrate/20140219183820_create_roots.rb
         | 
| 1167 1181 | 
             
            - spec/dummy/db/schema.rb
         | 
| 1168 1182 | 
             
            - spec/dummy/db/shard_4377.sqlite3
         | 
| 1183 | 
            +
            - spec/dummy/db/shard_4521.sqlite3
         | 
| 1184 | 
            +
            - spec/dummy/db/shard_4549.sqlite3
         | 
| 1185 | 
            +
            - spec/dummy/db/shard_4573.sqlite3
         | 
| 1169 1186 | 
             
            - spec/dummy/db/switchman_test.sqlite3
         | 
| 1170 1187 | 
             
            - spec/dummy/log/development.log
         | 
| 1171 1188 | 
             
            - spec/dummy/log/test.log
         | 
| @@ -1592,7 +1609,9 @@ test_files: | |
| 1592 1609 | 
             
            - spec/dummy/tmp/cache/37F/650/shard%2F2634
         | 
| 1593 1610 | 
             
            - spec/dummy/tmp/cache/37F/660/shard%2F3372
         | 
| 1594 1611 | 
             
            - spec/dummy/tmp/cache/37F/670/shard%2F4353
         | 
| 1612 | 
            +
            - spec/dummy/tmp/cache/37F/680/shard%2F4524
         | 
| 1595 1613 | 
             
            - spec/dummy/tmp/cache/37F/690/shard%2F4290
         | 
| 1614 | 
            +
            - spec/dummy/tmp/cache/37F/6C0/shard%2F4560
         | 
| 1596 1615 | 
             
            - spec/dummy/tmp/cache/380/5C0/shard%2F1168
         | 
| 1597 1616 | 
             
            - spec/dummy/tmp/cache/380/5E0/shard%2F1429
         | 
| 1598 1617 | 
             
            - spec/dummy/tmp/cache/380/5F0/shard%2F1195
         | 
| @@ -1683,6 +1702,7 @@ test_files: | |
| 1683 1702 | 
             
            - spec/dummy/tmp/cache/382/690/shard%2F1674
         | 
| 1684 1703 | 
             
            - spec/dummy/tmp/cache/382/6A0/shard%2F1845
         | 
| 1685 1704 | 
             
            - spec/dummy/tmp/cache/382/6A0/shard%2F2493
         | 
| 1705 | 
            +
            - spec/dummy/tmp/cache/382/6A0/shard%2F4518
         | 
| 1686 1706 | 
             
            - spec/dummy/tmp/cache/382/6B0/shard%2F3636
         | 
| 1687 1707 | 
             
            - spec/dummy/tmp/cache/382/6B0/shard%2F4284
         | 
| 1688 1708 | 
             
            - spec/dummy/tmp/cache/382/6C0/shard%2F2592
         | 
| @@ -1708,9 +1728,11 @@ test_files: | |
| 1708 1728 | 
             
            - spec/dummy/tmp/cache/383/690/shard%2F4177
         | 
| 1709 1729 | 
             
            - spec/dummy/tmp/cache/383/6A0/shard%2F2809
         | 
| 1710 1730 | 
             
            - spec/dummy/tmp/cache/383/6A0/shard%2F3376
         | 
| 1731 | 
            +
            - spec/dummy/tmp/cache/383/6B0/shard%2F4519
         | 
| 1711 1732 | 
             
            - spec/dummy/tmp/cache/383/6C0/shard%2F1774
         | 
| 1712 1733 | 
             
            - spec/dummy/tmp/cache/383/6C0/shard%2F2746
         | 
| 1713 1734 | 
             
            - spec/dummy/tmp/cache/383/6D0/shard%2F2755
         | 
| 1735 | 
            +
            - spec/dummy/tmp/cache/383/6D0/shard%2F4537
         | 
| 1714 1736 | 
             
            - spec/dummy/tmp/cache/383/6E0/shard%2F2764
         | 
| 1715 1737 | 
             
            - spec/dummy/tmp/cache/383/6F0/shard%2F3907
         | 
| 1716 1738 | 
             
            - spec/dummy/tmp/cache/383/6F0/shard%2F4393
         | 
| @@ -1731,6 +1753,7 @@ test_files: | |
| 1731 1753 | 
             
            - spec/dummy/tmp/cache/384/6F0/shard%2F2765
         | 
| 1732 1754 | 
             
            - spec/dummy/tmp/cache/384/700/shard%2F1883
         | 
| 1733 1755 | 
             
            - spec/dummy/tmp/cache/384/700/shard%2F3827
         | 
| 1756 | 
            +
            - spec/dummy/tmp/cache/384/700/shard%2F4556
         | 
| 1734 1757 | 
             
            - spec/dummy/tmp/cache/384/710/shard%2F1892
         | 
| 1735 1758 | 
             
            - spec/dummy/tmp/cache/384/710/shard%2F2864
         | 
| 1736 1759 | 
             
            - spec/dummy/tmp/cache/384/720/shard%2F2873
         | 
| @@ -1744,6 +1767,7 @@ test_files: | |
| 1744 1767 | 
             
            - spec/dummy/tmp/cache/385/6F0/shard%2F2595
         | 
| 1745 1768 | 
             
            - spec/dummy/tmp/cache/385/710/shard%2F2694
         | 
| 1746 1769 | 
             
            - spec/dummy/tmp/cache/385/710/shard%2F3828
         | 
| 1770 | 
            +
            - spec/dummy/tmp/cache/385/710/shard%2F4557
         | 
| 1747 1771 | 
             
            - spec/dummy/tmp/cache/386/690/shard%2F1399
         | 
| 1748 1772 | 
             
            - spec/dummy/tmp/cache/386/6B0/shard%2F3199
         | 
| 1749 1773 | 
             
            - spec/dummy/tmp/cache/386/6C0/shard%2F2479
         | 
| @@ -1872,6 +1896,7 @@ test_files: | |
| 1872 1896 | 
             
            - spec/dummy/tmp/cache/3B1/0E0/shard%2F13472
         | 
| 1873 1897 | 
             
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F12833
         | 
| 1874 1898 | 
             
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F14291
         | 
| 1899 | 
            +
            - spec/dummy/tmp/cache/3B1/0F0/shard%2F14534
         | 
| 1875 1900 | 
             
            - spec/dummy/tmp/cache/3B2/000/shard%2F10179
         | 
| 1876 1901 | 
             
            - spec/dummy/tmp/cache/3B2/050/shard%2F10386
         | 
| 1877 1902 | 
             
            - spec/dummy/tmp/cache/3B2/060/shard%2F13149
         | 
| @@ -1895,6 +1920,7 @@ test_files: | |
| 1895 1920 | 
             
            - spec/dummy/tmp/cache/3B4/0B0/shard%2F11558
         | 
| 1896 1921 | 
             
            - spec/dummy/tmp/cache/3B4/0E0/shard%2F10775
         | 
| 1897 1922 | 
             
            - spec/dummy/tmp/cache/3B4/0E0/shard%2F12719
         | 
| 1923 | 
            +
            - spec/dummy/tmp/cache/3B4/100/shard%2F14519
         | 
| 1898 1924 | 
             
            - spec/dummy/tmp/cache/3B4/110/shard%2F13394
         | 
| 1899 1925 | 
             
            - spec/dummy/tmp/cache/3B4/130/shard%2F11873
         | 
| 1900 1926 | 
             
            - spec/dummy/tmp/cache/3B4/160/shard%2F11981
         | 
| @@ -1913,6 +1939,7 @@ test_files: | |
| 1913 1939 | 
             
            - spec/dummy/tmp/cache/3B6/120/shard%2F11686
         | 
| 1914 1940 | 
             
            - spec/dummy/tmp/cache/3B6/150/shard%2F12685
         | 
| 1915 1941 | 
             
            - spec/dummy/tmp/cache/3B6/160/shard%2F13828
         | 
| 1942 | 
            +
            - spec/dummy/tmp/cache/3B6/160/shard%2F14557
         | 
| 1916 1943 | 
             
            - spec/dummy/tmp/cache/3B7/100/shard%2F10688
         | 
| 1917 1944 | 
             
            - spec/dummy/tmp/cache/3B7/110/shard%2F11669
         | 
| 1918 1945 | 
             
            - spec/dummy/tmp/cache/3B7/140/shard%2F12668
         | 
| @@ -2056,6 +2083,7 @@ test_files: | |
| 2056 2083 | 
             
            - spec/dummy/tmp/cache/52E/CC0/shard_1898%3Akey
         | 
| 2057 2084 | 
             
            - spec/dummy/tmp/cache/52F/D30/shard_1899%3Akey
         | 
| 2058 2085 | 
             
            - spec/lib/action_controller/caching_spec.rb
         | 
| 2086 | 
            +
            - spec/lib/active_record/abstract_adapter_spec.rb
         | 
| 2059 2087 | 
             
            - spec/lib/active_record/association_spec.rb
         | 
| 2060 2088 | 
             
            - spec/lib/active_record/attribute_methods_spec.rb
         | 
| 2061 2089 | 
             
            - spec/lib/active_record/base_spec.rb
         |