switchman 1.2.10 → 1.2.11

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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/switchman/shard.rb +2 -2
  3. data/lib/switchman/active_record/connection_handler.rb +18 -9
  4. data/lib/switchman/active_record/connection_pool.rb +3 -0
  5. data/lib/switchman/active_record/query_cache.rb +6 -1
  6. data/lib/switchman/active_record/query_methods.rb +1 -1
  7. data/lib/switchman/connection_pool_proxy.rb +1 -1
  8. data/lib/switchman/r_spec_helper.rb +73 -61
  9. data/lib/switchman/test_helper.rb +8 -2
  10. data/lib/switchman/version.rb +1 -1
  11. data/lib/tasks/switchman.rake +5 -0
  12. data/spec/dummy/config/database.yml +2 -4
  13. data/spec/dummy/config/environments/development.rb +0 -4
  14. data/spec/dummy/config/environments/test.rb +1 -1
  15. data/spec/dummy/db/schema.rb +12 -12
  16. data/spec/dummy/db/shard_120.sqlite3 +0 -0
  17. data/spec/dummy/db/shard_156.sqlite3 +0 -0
  18. data/spec/dummy/db/shard_193.sqlite3 +0 -0
  19. data/spec/dummy/db/shard_23.sqlite3 +0 -0
  20. data/spec/dummy/db/shard_234.sqlite3 +0 -0
  21. data/spec/dummy/db/shard_257.sqlite3 +0 -0
  22. data/spec/dummy/db/shard_277.sqlite3 +0 -0
  23. data/spec/dummy/db/shard_311.sqlite3 +0 -0
  24. data/spec/dummy/db/shard_324.sqlite3 +0 -0
  25. data/spec/dummy/db/shard_342.sqlite3 +0 -0
  26. data/spec/dummy/db/shard_375.sqlite3 +0 -0
  27. data/spec/dummy/db/shard_389.sqlite3 +0 -0
  28. data/spec/dummy/db/shard_428.sqlite3 +0 -0
  29. data/spec/dummy/db/shard_452.sqlite3 +0 -0
  30. data/spec/dummy/db/shard_462.sqlite3 +0 -0
  31. data/spec/dummy/db/shard_483.sqlite3 +0 -0
  32. data/spec/dummy/db/shard_508.sqlite3 +0 -0
  33. data/spec/dummy/db/shard_531.sqlite3 +0 -0
  34. data/spec/dummy/db/shard_554.sqlite3 +0 -0
  35. data/spec/dummy/db/shard_577.sqlite3 +0 -0
  36. data/spec/dummy/db/shard_58.sqlite3 +0 -0
  37. data/spec/dummy/db/shard_600.sqlite3 +0 -0
  38. data/spec/dummy/db/shard_623.sqlite3 +0 -0
  39. data/spec/dummy/db/shard_646.sqlite3 +0 -0
  40. data/spec/dummy/db/shard_668.sqlite3 +0 -0
  41. data/spec/dummy/db/shard_680.sqlite3 +0 -0
  42. data/spec/dummy/db/shard_708.sqlite3 +0 -0
  43. data/spec/dummy/db/shard_735.sqlite3 +0 -0
  44. data/spec/dummy/db/shard_753.sqlite3 +0 -0
  45. data/spec/dummy/db/shard_76.sqlite3 +0 -0
  46. data/spec/dummy/db/shard_802.sqlite3 +0 -0
  47. data/spec/dummy/db/test.sqlite3 +0 -0
  48. data/spec/dummy/log/development.log +7 -0
  49. data/spec/dummy/log/test.log +106293 -0
  50. data/spec/dummy/tmp/cache/313/970/shard%2F30 +1 -0
  51. data/spec/dummy/tmp/cache/316/980/shard%2F15 +1 -0
  52. data/spec/dummy/tmp/cache/317/9D0/shard%2F52 +1 -0
  53. data/spec/dummy/tmp/cache/31C/A40/shard%2F75 +1 -0
  54. data/spec/dummy/tmp/cache/345/E00/shard%2F500 +1 -0
  55. data/spec/dummy/tmp/cache/346/DF0/shard%2F321 +1 -0
  56. data/spec/dummy/tmp/cache/349/DE0/shard%2F126 +1 -0
  57. data/spec/dummy/tmp/cache/349/E10/shard%2F153 +0 -0
  58. data/spec/dummy/tmp/cache/349/E20/shard%2F243 +1 -0
  59. data/spec/dummy/tmp/cache/34A/E20/shard%2F154 +0 -0
  60. data/spec/dummy/tmp/cache/34A/E40/shard%2F172 +1 -0
  61. data/spec/dummy/tmp/cache/34A/E70/shard%2F523 +1 -0
  62. data/spec/dummy/tmp/cache/34A/EB0/shard%2F721 +1 -0
  63. data/spec/dummy/tmp/cache/34A/EC0/shard%2F730 +1 -0
  64. data/spec/dummy/tmp/cache/34B/E40/shard%2F245 +0 -0
  65. data/spec/dummy/tmp/cache/34B/E60/shard%2F425 +1 -0
  66. data/spec/dummy/tmp/cache/34B/EC0/shard%2F722 +1 -0
  67. data/spec/dummy/tmp/cache/34C/E50/shard%2F246 +0 -0
  68. data/spec/dummy/tmp/cache/34C/E80/shard%2F273 +1 -0
  69. data/spec/dummy/tmp/cache/34C/E90/shard%2F363 +0 -0
  70. data/spec/dummy/tmp/cache/34C/E90/shard%2F444 +1 -0
  71. data/spec/dummy/tmp/cache/34C/EA0/shard%2F615 +1 -0
  72. data/spec/dummy/tmp/cache/34C/F00/shard%2F750 +1 -0
  73. data/spec/dummy/tmp/cache/34D/E80/shard%2F265 +1 -0
  74. data/spec/dummy/tmp/cache/34D/ED0/shard%2F391 +1 -0
  75. data/spec/dummy/tmp/cache/34D/EE0/shard%2F724 +1 -0
  76. data/spec/dummy/tmp/cache/34E/ED0/shard%2F383 +1 -0
  77. data/spec/dummy/tmp/cache/34E/EF0/shard%2F725 +1 -0
  78. data/spec/dummy/tmp/cache/34E/F00/shard%2F653 +1 -0
  79. data/spec/dummy/tmp/cache/34F/EE0/shard%2F546 +1 -0
  80. data/spec/dummy/tmp/cache/34F/F00/shard%2F807 +1 -0
  81. data/spec/dummy/tmp/cache/34F/F30/shard%2F672 +1 -0
  82. data/spec/dummy/tmp/cache/350/EA0/shard%2F178 +1 -0
  83. data/spec/dummy/tmp/cache/350/EB0/shard%2F349 +1 -0
  84. data/spec/dummy/tmp/cache/350/F00/shard%2F718 +0 -0
  85. data/spec/dummy/tmp/cache/350/F40/shard%2F592 +1 -0
  86. data/spec/dummy/tmp/cache/351/F00/shard%2F386 +0 -0
  87. data/spec/dummy/tmp/cache/351/F10/shard%2F638 +1 -0
  88. data/spec/dummy/tmp/cache/351/F10/shard%2F719 +0 -0
  89. data/spec/dummy/tmp/cache/352/F10/shard%2F387 +0 -0
  90. data/spec/dummy/tmp/cache/352/F10/shard%2F468 +1 -0
  91. data/spec/dummy/tmp/cache/352/F30/shard%2F729 +1 -0
  92. data/spec/dummy/tmp/cache/353/F10/shard%2F298 +1 -0
  93. data/spec/dummy/tmp/cache/353/F50/shard%2F739 +1 -0
  94. data/spec/dummy/tmp/cache/354/F50/shard%2F569 +1 -0
  95. data/spec/dummy/tmp/cache/354/F80/shard%2F677 +1 -0
  96. data/spec/dummy/tmp/cache/354/F90/shard%2F767 +1 -0
  97. data/spec/dummy/tmp/cache/358/FE0/shard%2F699 +1 -0
  98. data/spec/dummy/tmp/cache/3A5/EA0/shard%2F10004 +1 -0
  99. data/spec/dummy/tmp/cache/3A6/F40/shard%2F10410 +1 -0
  100. data/spec/dummy/tmp/cache/3A7/F30/shard%2F10231 +1 -0
  101. data/spec/dummy/tmp/cache/3A8/F90/shard%2F10520 +1 -0
  102. data/spec/dummy/tmp/cache/3A9/F40/shard%2F10062 +1 -0
  103. data/spec/dummy/tmp/cache/3A9/F80/shard%2F10341 +1 -0
  104. data/spec/dummy/tmp/cache/3AA/F10/shard%2F10027 +1 -0
  105. data/spec/dummy/tmp/cache/3AA/F10/shard%2F10108 +1 -0
  106. data/spec/dummy/tmp/cache/3AA/FB0/shard%2F10441 +1 -0
  107. data/spec/dummy/tmp/cache/3AA/FC0/shard%2F10612 +1 -0
  108. data/spec/dummy/tmp/cache/3AB/010/shard%2F10730 +1 -0
  109. data/spec/dummy/tmp/cache/3AB/F70/shard%2F10154 +1 -0
  110. data/spec/dummy/tmp/cache/3AC/020/shard%2F10650 +1 -0
  111. data/spec/dummy/tmp/cache/3AC/FC0/shard%2F10272 +1 -0
  112. data/spec/dummy/tmp/cache/3AD/000/shard%2F10543 +1 -0
  113. data/spec/dummy/tmp/cache/3AD/F50/shard%2F10039 +1 -0
  114. data/spec/dummy/tmp/cache/3AD/F90/shard%2F10318 +1 -0
  115. data/spec/dummy/tmp/cache/3AD/FA0/shard%2F10246 +1 -0
  116. data/spec/dummy/tmp/cache/3AE/060/shard%2F10751 +1 -0
  117. data/spec/dummy/tmp/cache/3AE/FF0/shard%2F10364 +1 -0
  118. data/spec/dummy/tmp/cache/3AF/030/shard%2F10635 +1 -0
  119. data/spec/dummy/tmp/cache/3B0/FE0/shard%2F10177 +1 -0
  120. data/spec/dummy/tmp/cache/3B1/030/shard%2F10295 +1 -0
  121. data/spec/dummy/tmp/cache/3B1/040/shard%2F10466 +1 -0
  122. data/spec/dummy/tmp/cache/3B1/090/shard%2F10673 +1 -0
  123. data/spec/dummy/tmp/cache/3B2/070/shard%2F10566 +1 -0
  124. data/spec/dummy/tmp/cache/3B3/060/shard%2F10387 +1 -0
  125. data/spec/dummy/tmp/cache/3B5/0B0/shard%2F10497 +1 -0
  126. data/spec/dummy/tmp/cache/3B6/100/shard%2F10696 +1 -0
  127. data/spec/dummy/tmp/cache/3B7/0E0/shard%2F10589 +1 -0
  128. data/spec/dummy/tmp/cache/3BA/160/shard%2F10799 +1 -0
  129. data/spec/lib/action_controller/caching_spec.rb +4 -4
  130. data/spec/lib/active_record/abstract_adapter_spec.rb +1 -1
  131. data/spec/lib/active_record/association_spec.rb +83 -67
  132. data/spec/lib/active_record/attribute_methods_spec.rb +29 -29
  133. data/spec/lib/active_record/base_spec.rb +20 -20
  134. data/spec/lib/active_record/calculations_spec.rb +79 -59
  135. data/spec/lib/active_record/connection_handler_spec.rb +14 -14
  136. data/spec/lib/active_record/connection_pool_spec.rb +7 -7
  137. data/spec/lib/active_record/finder_methods_spec.rb +8 -8
  138. data/spec/lib/active_record/query_cache_spec.rb +38 -38
  139. data/spec/lib/active_record/query_methods_spec.rb +45 -45
  140. data/spec/lib/active_record/relation_spec.rb +8 -8
  141. data/spec/lib/active_record/spawn_methods_spec.rb +11 -11
  142. data/spec/lib/connection_pool_proxy_spec.rb +2 -2
  143. data/spec/lib/database_server_spec.rb +37 -37
  144. data/spec/lib/default_shard_spec.rb +3 -3
  145. data/spec/lib/r_spec_helper_spec.rb +33 -7
  146. data/spec/lib/rails_spec.rb +5 -5
  147. data/spec/lib/shackles_spec.rb +35 -35
  148. data/spec/models/shard_spec.rb +104 -104
  149. data/spec/spec_helper.rb +1 -1
  150. metadata +254 -29
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709172.785986: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405708977.5977442: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709563.027033: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709625.1911669: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056316.0856729: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054473.924482: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710273.4462678: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710688.486557: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710383.000582: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056335.05036: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_721;TI"database_server_id;TI" test;TI" default;TF:@created_atf1406058474.6726232:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_730;TI"database_server_id;TI"2;TI" default;TF:@created_atf1406062223.73001:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056240.450111: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_722;TI"database_server_id;TI"1;TI" default;TF:@created_atf1406058475.311327:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054155.994775: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056246.029251: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056444.206968: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_750;TI"database_server_id;TI" test;TI" default;TF:@created_atf1406062293.398787:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710918.94204: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056233.44187: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_724;TI"database_server_id;TI" test;TI" default;TF:@created_atf1406058508.056969:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056187.420893: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_725;TI"database_server_id;TI"1;TI" default;TF:@created_atf1406058508.1540139:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406057669.3963132: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056374.8069131: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406063237.6105049:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_672;TI"database_server_id;TI" test;TI" default;TF:@created_atf1406057695.824834:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710424.571912: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056002.214963: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056439.333903: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056449.031681: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056287.720922: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value{ I"id:ETi�I" name;TI"switchman_test_shard_729;TI"database_server_id;TI" test;TI" default;TF:@created_atf1406062223.7280169:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054467.519041: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406062223.446721:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056419.763446: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406057694.251876:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406062291.6416168:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406057711.1559649:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405708977.399206: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056240.6011572: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710688.293992: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056335.088819: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709625.038962: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056002.0330062: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709172.5864232: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710273.410322: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056246.067667: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056444.249256: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406062223.318319:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710383.047894: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406057669.4699311: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054156.148363: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056374.8466759: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405709562.825376: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054473.961097: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710918.851407: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406062291.6871822:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056187.366626: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056449.071837: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1405710424.610155: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406054467.704592: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056287.545137: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406057694.149458:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056419.803245: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056233.548882: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056316.127557: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406057710.8676522:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1406056439.374727: @value" :nil
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @value:nil:@created_atf1406063237.677971:@expires_in0
@@ -20,13 +20,13 @@ module Switchman
20
20
  end
21
21
 
22
22
  it "should share the cache across shards on the same server" do
23
- @shard1.activate{ subject.cache_store }.
24
- should == @shard3.activate{ subject.cache_store }
23
+ expect(@shard1.activate{ subject.cache_store }).
24
+ to eq @shard3.activate{ subject.cache_store }
25
25
  end
26
26
 
27
27
  it "should not share the cache across shards on different servers" do
28
- @shard1.activate{ subject.cache_store }.
29
- should_not == @shard2.activate{ subject.cache_store }
28
+ expect(@shard1.activate{ subject.cache_store }).
29
+ not_to eq @shard2.activate{ subject.cache_store }
30
30
  end
31
31
  end
32
32
 
@@ -9,7 +9,7 @@ module Switchman
9
9
  conn = @shard1.activate{ User.connection }
10
10
  Time.stubs(:now).returns(conn.last_query_at + 1.minute)
11
11
  @shard1.activate{ User.create! }
12
- conn.last_query_at.should == Time.now
12
+ expect(conn.last_query_at).to eq Time.now
13
13
  end
14
14
  end
15
15
  end
@@ -16,34 +16,34 @@ module Switchman
16
16
 
17
17
  it "should associate built objects with parent shard" do
18
18
  a1 = @user1.appendages.build
19
- a1.shard.should == @shard1
19
+ expect(a1.shard).to eq @shard1
20
20
  end
21
21
 
22
22
  it "should associate created objects with parent shard" do
23
23
  a1 = @user1.appendages.create!
24
- a1.shard.should == @shard1
24
+ expect(a1.shard).to eq @shard1
25
25
  end
26
26
 
27
27
  it "should set shard value to parent for association scope" do
28
28
  scope = @user1.appendages
29
29
  scope = ::Rails.version < '4' ? scope.scoped : scope.scope
30
- scope.shard_value.should == @user1
31
- scope.shard_source_value.should == :association
30
+ expect(scope.shard_value).to eq @user1
31
+ expect(scope.shard_source_value).to eq :association
32
32
  end
33
33
 
34
34
  it "should find by id through association" do
35
35
  a1 = @user1.appendages.create!
36
36
 
37
- @user1.appendages.find(a1.id).should == a1
38
- lambda { @user2.appendages.find(a1.id) }.should raise_exception(::ActiveRecord::RecordNotFound)
37
+ expect(@user1.appendages.find(a1.id)).to eq a1
38
+ expect { @user2.appendages.find(a1.id) }.to raise_exception(::ActiveRecord::RecordNotFound)
39
39
  end
40
40
 
41
41
  describe "transaction" do
42
42
  it "should activate the owner's shard and start the transaction on that shard" do
43
43
  base_value = @user1.shard.activate { User.connection.open_transactions }
44
44
  @user1.appendages.transaction(:requires_new => true) do
45
- Shard.current.should == @shard1
46
- User.connection.open_transactions.should == base_value + 1
45
+ expect(Shard.current).to eq @shard1
46
+ expect(User.connection.open_transactions).to eq base_value + 1
47
47
  end
48
48
  end
49
49
  end
@@ -51,42 +51,58 @@ module Switchman
51
51
  it "should get the record size" do
52
52
  a1 = @user1.appendages.create!
53
53
  a2 = @user1.appendages.build
54
- @user1.appendages.size.should == 2
54
+ expect(@user1.appendages.size).to eq 2
55
55
  @user1.reload
56
- @user1.appendages.size.should == 1
56
+ expect(@user1.appendages.size).to eq 1
57
57
  end
58
58
 
59
59
  it "should reverse the association" do
60
60
  a1 = @user1.appendages.create!
61
61
  a1.reload
62
- a1.user.shard.should == @shard1
63
- a1.user.should == @user1
62
+ expect(a1.user.shard).to eq @shard1
63
+ expect(a1.user).to eq @user1
64
64
  end
65
65
 
66
66
  it "should work with has_many through associations" do
67
67
  a1 = @user1.appendages.create!
68
68
  d1 = a1.digits.create!
69
- d1.shard.should == @shard1
69
+ expect(d1.shard).to eq @shard1
70
70
 
71
71
  if ::Rails.version < '4'
72
- @user1.digits.scoped.shard_value.should == @user1
72
+ expect(@user1.digits.scoped.shard_value).to eq @user1
73
73
  else
74
- @user1.digits.scope.shard_value.should == @user1
74
+ expect(@user1.digits.scope.shard_value).to eq @user1
75
+ end
76
+ expect(@user1.digits.find(d1.id)).to eq d1
77
+ end
78
+
79
+ it "should resolve include? correctly for a has_many :through" do
80
+ @shard1.activate do
81
+ child = @user1.children.create!
82
+ @grandchild = child.children.create!
83
+ @user1.reload
84
+ expect(@user1.grandchildren.loaded?).to eq false
85
+ expect(@user1.grandchildren.include?(@grandchild)).to eq true
86
+ end
87
+ @shard2.activate do
88
+ fake = User.create!(id: @grandchild.local_id)
89
+ @user1.reload
90
+ expect(@user1.grandchildren.loaded?).to eq false
91
+ expect(@user1.grandchildren.include?(fake)).to eq false
75
92
  end
76
- @user1.digits.find(d1.id).should == d1
77
93
  end
78
94
 
79
95
  it "shard should be changeable, and change conditions when it is changed" do
80
96
  a1 = @user1.appendages.create!
81
97
  relation = @user1.appendages.where(:id => a1).shard(@shard1)
82
- relation.shard_value.should == @shard1
83
- relation.shard_source_value.should == :explicit
84
- relation.where_values.detect{|v| v.left.name == "id"}.right.should == a1.local_id
98
+ expect(relation.shard_value).to eq @shard1
99
+ expect(relation.shard_source_value).to eq :explicit
100
+ expect(relation.where_values.detect{|v| v.left.name == "id"}.right).to eq a1.local_id
85
101
 
86
102
  relation = @user1.appendages.where(:id => a1).shard(@shard2)
87
- relation.shard_value.should == @shard2
88
- relation.shard_source_value.should == :explicit
89
- relation.where_values.detect{|v| v.left.name == "id"}.right.should == a1.global_id
103
+ expect(relation.shard_value).to eq @shard2
104
+ expect(relation.shard_source_value).to eq :explicit
105
+ expect(relation.where_values.detect{|v| v.left.name == "id"}.right).to eq a1.global_id
90
106
  end
91
107
 
92
108
  it "should transpose predicates correctly" do
@@ -94,12 +110,12 @@ module Switchman
94
110
  a2 = @user2.appendages.create!
95
111
 
96
112
  relation = @user1.appendages.where(:id => a2)
97
- relation.shard_value.should == @user1
98
- relation.where_values.detect{|v| v.left.name == "id"}.right.should == a2.global_id
113
+ expect(relation.shard_value).to eq @user1
114
+ expect(relation.where_values.detect{|v| v.left.name == "id"}.right).to eq a2.global_id
99
115
 
100
116
  relation = @user1.appendages.where(:id => [a1, a2])
101
- relation.shard_value.should == @user1
102
- relation.where_values.detect{|v| v.left.name == "id"}.right.should == [a1.local_id, a2.global_id]
117
+ expect(relation.shard_value).to eq @user1
118
+ expect(relation.where_values.detect{|v| v.left.name == "id"}.right).to eq [a1.local_id, a2.global_id]
103
119
  end
104
120
 
105
121
  it "should properly set up a cross-shard-category query" do
@@ -107,12 +123,12 @@ module Switchman
107
123
  mirror_user = MirrorUser.create!
108
124
  relation = mirror_user.association(:user)
109
125
  relation = ::Rails.version < '4' ? relation.scoped : relation.scope
110
- relation.shard_value.should == Shard.default
126
+ expect(relation.shard_value).to eq Shard.default
111
127
  if ::Rails.version < '4'
112
- relation.where_values.first.right.should == mirror_user.global_id
128
+ expect(relation.where_values.first.right).to eq mirror_user.global_id
113
129
  else
114
- relation.where_values.first.right.should be_a(Arel::Nodes::BindParam)
115
- relation.bind_values.map(&:last).should == [mirror_user.global_id]
130
+ expect(relation.where_values.first.right).to be_a(Arel::Nodes::BindParam)
131
+ expect(relation.bind_values.map(&:last)).to eq [mirror_user.global_id]
116
132
  end
117
133
  end
118
134
  end
@@ -122,22 +138,22 @@ module Switchman
122
138
  @shard1.activate{ Appendage.create!(:user_id => @user1, :value => 1) }
123
139
  @shard2.activate{ Appendage.create!(:user => @user1, :value => 2) }
124
140
 
125
- @user1.appendages.to_a.map(&:value).should == [1]
141
+ expect(@user1.appendages.to_a.map(&:value)).to eq [1]
126
142
 
127
143
  @user1.reload
128
144
  @user1.associated_shards = [@shard1, @shard2]
129
- @user1.appendages.to_a.map(&:value).sort.should == [1, 2]
145
+ expect(@user1.appendages.to_a.map(&:value).sort).to eq [1, 2]
130
146
  end
131
147
 
132
148
  it "follow shards for has_many :through" do
133
149
  @shard1.activate{ a1 = Appendage.create!(:user_id => @user1); a1.digits.create!(:value => 1) }
134
150
  @shard2.activate{ a2 = Appendage.create!(:user_id => @user1); a2.digits.create!(:value => 2) }
135
151
 
136
- @user1.digits.to_a.map(&:value).should == [1]
152
+ expect(@user1.digits.to_a.map(&:value)).to eq [1]
137
153
 
138
154
  @user1.reload
139
155
  @user1.associated_shards = [@shard1, @shard2]
140
- @user1.digits.to_a.map(&:value).sort.should == [1, 2]
156
+ expect(@user1.digits.to_a.map(&:value).sort).to eq [1, 2]
141
157
  end
142
158
 
143
159
  it "should include the shard in scopes created by associations" do
@@ -146,10 +162,10 @@ module Switchman
146
162
  @shard1.activate{ Appendage.create!(:user_id => @user1, :value => 1) }
147
163
  @shard2.activate{ Appendage.create!(:user => @user1) }
148
164
 
149
- @user1.appendages.has_no_value.to_a.count.should == 1
165
+ expect(@user1.appendages.has_no_value.to_a.count).to eq 1
150
166
 
151
167
  @user1.reload
152
- @shard2.activate {@user1.appendages.has_no_value.to_a.count.should == 1}
168
+ @shard2.activate {expect(@user1.appendages.has_no_value.to_a.count).to eq 1}
153
169
  end
154
170
 
155
171
  it "should include the shard in scopes created by has_many :through associations" do
@@ -158,10 +174,10 @@ module Switchman
158
174
  @shard1.activate{ a1 = Appendage.create!(:user_id => @user1); a1.digits.create! }
159
175
  @shard2.activate{ a2 = Appendage.create!(:user_id => @user1); a2.digits.create!(:value => 2) }
160
176
 
161
- @user1.digits.has_no_value.count.should == 1
177
+ expect(@user1.digits.has_no_value.count).to eq 1
162
178
 
163
179
  @user1.reload
164
- @shard2.activate {@user1.digits.has_no_value.to_a.count.should == 1}
180
+ @shard2.activate {expect(@user1.digits.has_no_value.to_a.count).to eq 1}
165
181
  end
166
182
 
167
183
  it "should work with calculations in scopes created by associations" do
@@ -171,10 +187,10 @@ module Switchman
171
187
  @shard2.activate{ Appendage.create!(:user => @user1); @user1.appendages.create!(:value => 2) }
172
188
 
173
189
  @user1.reload
174
- @user1.appendages.has_value.sum(:value).should == 3
190
+ expect(@user1.appendages.has_value.sum(:value)).to eq 3
175
191
 
176
192
  @user1.reload
177
- @shard2.activate {@user1.appendages.has_value.sum(:value).should == 3}
193
+ @shard2.activate {expect(@user1.appendages.has_value.sum(:value)).to eq 3}
178
194
  end
179
195
 
180
196
  it "should work with calculations in scopes created by has_many :through associations" do
@@ -182,9 +198,9 @@ module Switchman
182
198
  @shard1.activate{ a1 = Appendage.create!(:user_id => @user1); a1.digits.create!; a1.digits.create!(:value => 1) }
183
199
  @shard2.activate{ a2 = Appendage.create!(:user_id => @user1); a2.digits.create!(:value => 2) }
184
200
 
185
- @user1.digits.has_value.sum(:value).should == 3
201
+ expect(@user1.digits.has_value.sum(:value)).to eq 3
186
202
  @user1.reload
187
- @shard2.activate {@user1.digits.has_value.sum(:value).should == 3}
203
+ @shard2.activate {expect(@user1.digits.has_value.sum(:value)).to eq 3}
188
204
  end
189
205
 
190
206
  it "should be able to explicitly set the shard and still work with named scopes" do
@@ -193,22 +209,22 @@ module Switchman
193
209
  @shard1.activate{ a1 = Appendage.create!(:user_id => @user1); a1.digits.create! }
194
210
  @shard2.activate{ a2 = Appendage.create!(:user_id => @user1); a2.digits.create!(:value => 2) }
195
211
 
196
- @user1.digits.shard(@shard1).has_no_value.to_a.count.should == 1
197
- @user1.digits.shard(@shard2).has_no_value.to_a.count.should == 0
212
+ expect(@user1.digits.shard(@shard1).has_no_value.to_a.count).to eq 1
213
+ expect(@user1.digits.shard(@shard2).has_no_value.to_a.count).to eq 0
198
214
 
199
215
  @user1.reload
200
216
 
201
- @user1.digits.has_no_value.shard(@shard1).to_a.count.should == 1
202
- @user1.digits.has_no_value.shard(@shard2).to_a.count.should == 0
217
+ expect(@user1.digits.has_no_value.shard(@shard1).to_a.count).to eq 1
218
+ expect(@user1.digits.has_no_value.shard(@shard2).to_a.count).to eq 0
203
219
  end
204
220
 
205
221
  describe "unsharded associations" do
206
222
  it "should be able to create an unsharded new record through a collection" do
207
223
  root = @user2.roots.create!
208
224
  root.reload
209
- root.shard.should == Shard.default
210
- root.user_id.should == @user2.global_id
211
- root.user.should == @user2
225
+ expect(root.shard).to eq Shard.default
226
+ expect(root.user_id).to eq @user2.global_id
227
+ expect(root.user).to eq @user2
212
228
  end
213
229
  end
214
230
 
@@ -216,7 +232,7 @@ module Switchman
216
232
  it "should identify an implied shard value based on the foreign id" do
217
233
  @shard1.activate do
218
234
  @appendage = Appendage.create!(:user_id => @user2.global_id)
219
- @appendage.reload.user.should == @user2
235
+ expect(@appendage.reload.user).to eq @user2
220
236
  end
221
237
  end
222
238
 
@@ -228,8 +244,8 @@ module Switchman
228
244
  copy.shard = @user1.shard
229
245
  copy.save!
230
246
  copy.reload
231
- copy.user.shard.should == @shard1
232
- copy.user.should == @user1
247
+ expect(copy.user.shard).to eq @shard1
248
+ expect(copy.user).to eq @user1
233
249
  end
234
250
  end
235
251
  end
@@ -244,7 +260,7 @@ module Switchman
244
260
  appendages = Appendage.includes(:user).to_a
245
261
  @user1.delete
246
262
 
247
- appendages.map(&:user).sort.should == [@user1, @user2, user3].sort
263
+ expect(appendages.map(&:user).sort).to eq [@user1, @user2, user3].sort
248
264
  end
249
265
 
250
266
  it "should preload belongs_to :through associations across shards" do
@@ -257,7 +273,7 @@ module Switchman
257
273
  digits = Digit.includes(:user).to_a
258
274
  @user1.delete
259
275
 
260
- digits.map(&:user).sort.should == [@user1, @user2].sort
276
+ expect(digits.map(&:user).sort).to eq [@user1, @user2].sort
261
277
  end
262
278
 
263
279
  it "should preload has_many associations across associated shards" do
@@ -269,14 +285,14 @@ module Switchman
269
285
 
270
286
  begin
271
287
  users = User.where(:id => [@user1, @user2]).includes(:appendages).to_a
272
- users.each {|u| u.appendages.loaded?.should be_true}
288
+ users.each {|u| expect(u.appendages.loaded?).to eq true}
273
289
 
274
290
  u1 = users.detect {|u| u.id == @user1.id}
275
291
  u2 = users.detect {|u| u.id == @user2.id}
276
292
 
277
293
  a1.delete
278
- u1.appendages.sort.should == [a1, a2].sort
279
- u2.appendages.should be_empty
294
+ expect(u1.appendages.sort).to eq [a1, a2].sort
295
+ expect(u2.appendages).to be_empty
280
296
  ensure
281
297
  User.associated_shards_map = nil
282
298
  end
@@ -305,15 +321,15 @@ module Switchman
305
321
 
306
322
  begin
307
323
  users = User.where(:id => [@user1, @user2]).includes(:digits).to_a
308
- users.each {|u| u.digits.loaded?.should be_true}
324
+ users.each {|u| expect(u.digits.loaded?).to eq true}
309
325
 
310
326
  u1 = users.detect {|u| u.id == @user1.id}
311
327
  u2 = users.detect {|u| u.id == @user2.id}
312
328
 
313
329
  d1.delete
314
330
 
315
- u1.digits.sort.should == [d1, d2, d3].sort
316
- u2.digits.should == [d7]
331
+ expect(u1.digits.sort).to eq [d1, d2, d3].sort
332
+ expect(u2.digits).to eq [d7]
317
333
  ensure
318
334
  User.associated_shards_map = nil
319
335
  Appendage.associated_shards_map = nil
@@ -327,27 +343,27 @@ module Switchman
327
343
  feature = Feature.create!(:owner => appendage)
328
344
 
329
345
  feature.reload
330
- feature.owner.should == appendage
331
- feature.owner_id.should == appendage.id
332
- feature.owner_type.should == "Appendage"
346
+ expect(feature.owner).to eq appendage
347
+ expect(feature.owner_id).to eq appendage.id
348
+ expect(feature.owner_type).to eq "Appendage"
333
349
 
334
350
  feature.owner = @user1
335
351
  feature.save!
336
352
 
337
353
  feature.reload
338
- feature.owner_id.should == @user1.global_id
339
- feature.owner_type.should == "User"
354
+ expect(feature.owner_id).to eq @user1.global_id
355
+ expect(feature.owner_type).to eq "User"
340
356
  end
341
357
 
342
358
  it "should work with multi-shard associations" do
343
359
  @shard1.activate{ Feature.create!(:owner => @user1, :value => 1) }
344
360
  @shard2.activate{ Feature.create!(:owner => @user1, :value => 2) }
345
361
 
346
- @user1.features.to_a.map(&:value).should == [1]
362
+ expect(@user1.features.to_a.map(&:value)).to eq [1]
347
363
 
348
364
  @user1.reload
349
365
  @user1.associated_shards = [@shard1, @shard2]
350
- @user1.features.to_a.map(&:value).sort.should == [1, 2]
366
+ expect(@user1.features.to_a.map(&:value).sort).to eq [1, 2]
351
367
  end
352
368
  end
353
369
  end