activerecord-multi-tenant 2.0.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/active-record-multi-tenant-tests.yml +83 -0
  3. data/.gitignore +6 -0
  4. data/.readthedocs.yaml +15 -0
  5. data/.rspec +0 -0
  6. data/.rubocop.yml +51 -0
  7. data/Appraisals +6 -22
  8. data/CHANGELOG.md +42 -0
  9. data/Gemfile +3 -1
  10. data/LICENSE +0 -0
  11. data/README.md +3 -2
  12. data/Rakefile +1 -1
  13. data/activerecord-multi-tenant.gemspec +28 -22
  14. data/docker-compose.yml +24 -18
  15. data/docs/.gitignore +3 -0
  16. data/docs/Makefile +28 -0
  17. data/docs/api-reference.sh +10 -0
  18. data/docs/requirements.in +4 -0
  19. data/docs/requirements.txt +62 -0
  20. data/docs/source/_static/api-reference/ActiveRecord/Associations/Association.html +285 -0
  21. data/docs/source/_static/api-reference/ActiveRecord/Associations/ClassMethods.html +255 -0
  22. data/docs/source/_static/api-reference/ActiveRecord/Associations.html +117 -0
  23. data/docs/source/_static/api-reference/ActiveRecord/ConnectionAdapters/SchemaStatements.html +232 -0
  24. data/docs/source/_static/api-reference/ActiveRecord/ConnectionAdapters.html +126 -0
  25. data/docs/source/_static/api-reference/ActiveRecord/QueryMethods.html +336 -0
  26. data/docs/source/_static/api-reference/ActiveRecord/SchemaDumper.html +121 -0
  27. data/docs/source/_static/api-reference/ActiveRecord.html +130 -0
  28. data/docs/source/_static/api-reference/MultiTenant/ArelTenantVisitor.html +755 -0
  29. data/docs/source/_static/api-reference/MultiTenant/ArelVisitorsDepthFirst.html +208 -0
  30. data/docs/source/_static/api-reference/MultiTenant/BaseTenantEnforcementClause.html +462 -0
  31. data/docs/source/_static/api-reference/MultiTenant/Context.html +659 -0
  32. data/docs/source/_static/api-reference/MultiTenant/ControllerExtensions.html +202 -0
  33. data/docs/source/_static/api-reference/MultiTenant/CopyFromClient.html +186 -0
  34. data/docs/source/_static/api-reference/MultiTenant/CopyFromClientHelper.html +362 -0
  35. data/docs/source/_static/api-reference/MultiTenant/Current.html +124 -0
  36. data/docs/source/_static/api-reference/MultiTenant/DatabaseStatements.html +366 -0
  37. data/docs/source/_static/api-reference/MultiTenant/FastTruncate.html +226 -0
  38. data/docs/source/_static/api-reference/MultiTenant/MigrationExtensions.html +554 -0
  39. data/docs/source/_static/api-reference/MultiTenant/MissingTenantError.html +124 -0
  40. data/docs/source/_static/api-reference/MultiTenant/ModelExtensionsClassMethods.html +492 -0
  41. data/docs/source/_static/api-reference/MultiTenant/QueryMonitor.html +257 -0
  42. data/docs/source/_static/api-reference/MultiTenant/Table.html +419 -0
  43. data/docs/source/_static/api-reference/MultiTenant/TenantEnforcementClause.html +148 -0
  44. data/docs/source/_static/api-reference/MultiTenant/TenantIsImmutable.html +135 -0
  45. data/docs/source/_static/api-reference/MultiTenant/TenantJoinEnforcementClause.html +310 -0
  46. data/docs/source/_static/api-reference/MultiTenant/TenantValueVisitor.html +239 -0
  47. data/docs/source/_static/api-reference/MultiTenant.html +1454 -0
  48. data/docs/source/_static/api-reference/MultiTenantFindBy.html +180 -0
  49. data/docs/source/_static/api-reference/Sidekiq/Client.html +302 -0
  50. data/docs/source/_static/api-reference/Sidekiq/Middleware/MultiTenant/Client.html +217 -0
  51. data/docs/source/_static/api-reference/Sidekiq/Middleware/MultiTenant/Server.html +219 -0
  52. data/docs/source/_static/api-reference/Sidekiq/Middleware/MultiTenant.html +126 -0
  53. data/docs/source/_static/api-reference/Sidekiq.html +126 -0
  54. data/docs/source/_static/api-reference/_index.html +399 -0
  55. data/docs/source/_static/api-reference/class_list.html +51 -0
  56. data/docs/source/_static/api-reference/css/common.css +1 -0
  57. data/docs/source/_static/api-reference/css/full_list.css +58 -0
  58. data/docs/source/_static/api-reference/css/style.css +497 -0
  59. data/docs/source/_static/api-reference/file.README.html +167 -0
  60. data/docs/source/_static/api-reference/file_list.html +56 -0
  61. data/docs/source/_static/api-reference/frames.html +17 -0
  62. data/docs/source/_static/api-reference/index.html +167 -0
  63. data/docs/source/_static/api-reference/js/app.js +314 -0
  64. data/docs/source/_static/api-reference/js/full_list.js +216 -0
  65. data/docs/source/_static/api-reference/js/jquery.js +4 -0
  66. data/docs/source/_static/api-reference/method_list.html +715 -0
  67. data/docs/source/_static/api-reference/top-level-namespace.html +126 -0
  68. data/docs/source/_templates/.gitignore +4 -0
  69. data/docs/source/api-reference.rst +8 -0
  70. data/docs/source/appendix.rst +26 -0
  71. data/docs/source/changelog.rst +8 -0
  72. data/docs/source/community-and-support.rst +26 -0
  73. data/docs/source/conf.py +30 -0
  74. data/docs/source/contributing.rst +70 -0
  75. data/docs/source/getting-started.rst +37 -0
  76. data/docs/source/guides-and-tutorials.rst +129 -0
  77. data/docs/source/index.rst +54 -0
  78. data/docs/source/introduction.rst +33 -0
  79. data/docs/source/license.rst +22 -0
  80. data/docs/source/troubleshooting.rst +41 -0
  81. data/docs/source/usage-guide.rst +59 -0
  82. data/lib/activerecord-multi-tenant/arel_visitors_depth_first.rb +183 -174
  83. data/lib/activerecord-multi-tenant/controller_extensions.rb +15 -4
  84. data/lib/activerecord-multi-tenant/copy_from_client.rb +4 -0
  85. data/lib/activerecord-multi-tenant/fast_truncate.rb +4 -2
  86. data/lib/activerecord-multi-tenant/habtm.rb +50 -0
  87. data/lib/activerecord-multi-tenant/migrations.rb +87 -10
  88. data/lib/activerecord-multi-tenant/model_extensions.rb +96 -38
  89. data/lib/activerecord-multi-tenant/multi_tenant.rb +83 -24
  90. data/lib/activerecord-multi-tenant/query_monitor.rb +21 -5
  91. data/lib/activerecord-multi-tenant/query_rewriter.rb +121 -87
  92. data/lib/activerecord-multi-tenant/sidekiq.rb +46 -19
  93. data/lib/activerecord-multi-tenant/table_node.rb +13 -0
  94. data/lib/activerecord-multi-tenant/version.rb +1 -1
  95. data/lib/activerecord-multi-tenant.rb +3 -13
  96. data/lib/activerecord_multi_tenant.rb +13 -0
  97. data/spec/activerecord-multi-tenant/associations_spec.rb +42 -0
  98. data/spec/activerecord-multi-tenant/controller_extensions_spec.rb +3 -2
  99. data/spec/activerecord-multi-tenant/fast_truncate_spec.rb +8 -6
  100. data/spec/activerecord-multi-tenant/model_extensions_spec.rb +300 -147
  101. data/spec/activerecord-multi-tenant/multi_tenant_spec.rb +69 -13
  102. data/spec/activerecord-multi-tenant/query_rewriter_spec.rb +60 -59
  103. data/spec/activerecord-multi-tenant/record_callback_spec.rb +0 -0
  104. data/spec/activerecord-multi-tenant/record_finding_spec.rb +11 -11
  105. data/spec/activerecord-multi-tenant/record_modifications_spec.rb +23 -4
  106. data/spec/activerecord-multi-tenant/sidekiq_spec.rb +10 -10
  107. data/spec/database.yml +0 -0
  108. data/spec/schema.rb +20 -3
  109. data/spec/spec_helper.rb +46 -17
  110. data/spec/support/format_sql.rb +20 -0
  111. metadata +134 -32
  112. data/.github/workflows/CI.yml +0 -73
  113. data/gemfiles/.bundle/config +0 -2
  114. data/gemfiles/active_record_5.2.3.gemfile +0 -16
  115. data/gemfiles/active_record_5.2.gemfile +0 -16
  116. data/gemfiles/active_record_6.0.gemfile +0 -8
  117. data/gemfiles/active_record_6.1.gemfile +0 -8
  118. data/gemfiles/active_record_7.0.gemfile +0 -8
  119. data/gemfiles/rails_5.2.3.gemfile +0 -16
  120. data/gemfiles/rails_5.2.gemfile +0 -16
  121. data/gemfiles/rails_6.0.gemfile +0 -8
  122. data/gemfiles/rails_6.1.gemfile +0 -8
  123. data/gemfiles/rails_7.0.gemfile +0 -8
  124. data/lib/activerecord-multi-tenant/persistence_extension.rb +0 -13
  125. data/lib/activerecord-multi-tenant/with_lock.rb +0 -15
  126. data/spec/activerecord-multi-tenant/schema_dumper_tester.rb +0 -0
@@ -0,0 +1,715 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta charset="utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <title>Method List</title>
19
+ <base id="base_target" target="_parent" />
20
+ </head>
21
+ <body>
22
+ <div id="content">
23
+ <div class="fixed_header">
24
+ <h1 id="full_list_header">Method List</h1>
25
+ <div id="full_list_nav">
26
+
27
+ <span><a target="_self" href="class_list.html">
28
+ Classes
29
+ </a></span>
30
+
31
+ <span><a target="_self" href="method_list.html">
32
+ Methods
33
+ </a></span>
34
+
35
+ <span><a target="_self" href="file_list.html">
36
+ Files
37
+ </a></span>
38
+
39
+ </div>
40
+
41
+ <div id="search">Search: <input type="text" /></div>
42
+ </div>
43
+
44
+ <ul id="full_list" class="method">
45
+
46
+
47
+ <li class="odd ">
48
+ <div class="item">
49
+ <span class='object_link'><a href="MultiTenant/CopyFromClientHelper.html#<<-instance_method" title="MultiTenant::CopyFromClientHelper#&lt;&lt; (method)">#&lt;&lt;</a></span>
50
+ <small>MultiTenant::CopyFromClientHelper</small>
51
+ </div>
52
+ </li>
53
+
54
+
55
+ <li class="even ">
56
+ <div class="item">
57
+ <span class='object_link'><a href="MultiTenant/Context.html#arel_node-instance_method" title="MultiTenant::Context#arel_node (method)">#arel_node</a></span>
58
+ <small>MultiTenant::Context</small>
59
+ </div>
60
+ </li>
61
+
62
+
63
+ <li class="odd ">
64
+ <div class="item">
65
+ <span class='object_link'><a href="MultiTenant/Table.html#arel_table-instance_method" title="MultiTenant::Table#arel_table (method)">#arel_table</a></span>
66
+ <small>MultiTenant::Table</small>
67
+ </div>
68
+ </li>
69
+
70
+
71
+ <li class="even ">
72
+ <div class="item">
73
+ <span class='object_link'><a href="ActiveRecord/QueryMethods.html#build_arel-instance_method" title="ActiveRecord::QueryMethods#build_arel (method)">#build_arel</a></span>
74
+ <small>ActiveRecord::QueryMethods</small>
75
+ </div>
76
+ </li>
77
+
78
+
79
+ <li class="odd ">
80
+ <div class="item">
81
+ <span class='object_link'><a href="ActiveRecord/QueryMethods.html#build_arel_orig-instance_method" title="ActiveRecord::QueryMethods#build_arel_orig (method)">#build_arel_orig</a></span>
82
+ <small>ActiveRecord::QueryMethods</small>
83
+ </div>
84
+ </li>
85
+
86
+
87
+ <li class="even ">
88
+ <div class="item">
89
+ <span class='object_link'><a href="MultiTenantFindBy.html#cached_find_by_statement-instance_method" title="MultiTenantFindBy#cached_find_by_statement (method)">#cached_find_by_statement</a></span>
90
+ <small>MultiTenantFindBy</small>
91
+ </div>
92
+ </li>
93
+
94
+
95
+ <li class="odd ">
96
+ <div class="item">
97
+ <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Client.html#call-instance_method" title="Sidekiq::Middleware::MultiTenant::Client#call (method)">#call</a></span>
98
+ <small>Sidekiq::Middleware::MultiTenant::Client</small>
99
+ </div>
100
+ </li>
101
+
102
+
103
+ <li class="even ">
104
+ <div class="item">
105
+ <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Server.html#call-instance_method" title="Sidekiq::Middleware::MultiTenant::Server#call (method)">#call</a></span>
106
+ <small>Sidekiq::Middleware::MultiTenant::Server</small>
107
+ </div>
108
+ </li>
109
+
110
+
111
+ <li class="odd ">
112
+ <div class="item">
113
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#citus_version-instance_method" title="MultiTenant::MigrationExtensions#citus_version (method)">#citus_version</a></span>
114
+ <small>MultiTenant::MigrationExtensions</small>
115
+ </div>
116
+ </li>
117
+
118
+
119
+ <li class="even ">
120
+ <div class="item">
121
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#contexts-instance_method" title="MultiTenant::ArelTenantVisitor#contexts (method)">#contexts</a></span>
122
+ <small>MultiTenant::ArelTenantVisitor</small>
123
+ </div>
124
+ </li>
125
+
126
+
127
+ <li class="odd ">
128
+ <div class="item">
129
+ <span class='object_link'><a href="MultiTenant/CopyFromClient.html#copy_from_client-instance_method" title="MultiTenant::CopyFromClient#copy_from_client (method)">#copy_from_client</a></span>
130
+ <small>MultiTenant::CopyFromClient</small>
131
+ </div>
132
+ </li>
133
+
134
+
135
+ <li class="even ">
136
+ <div class="item">
137
+ <span class='object_link'><a href="MultiTenant/CopyFromClientHelper.html#count-instance_method" title="MultiTenant::CopyFromClientHelper#count (method)">#count</a></span>
138
+ <small>MultiTenant::CopyFromClientHelper</small>
139
+ </div>
140
+ </li>
141
+
142
+
143
+ <li class="odd ">
144
+ <div class="item">
145
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#create_distributed_table-instance_method" title="MultiTenant::MigrationExtensions#create_distributed_table (method)">#create_distributed_table</a></span>
146
+ <small>MultiTenant::MigrationExtensions</small>
147
+ </div>
148
+ </li>
149
+
150
+
151
+ <li class="even ">
152
+ <div class="item">
153
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#create_reference_table-instance_method" title="MultiTenant::MigrationExtensions#create_reference_table (method)">#create_reference_table</a></span>
154
+ <small>MultiTenant::MigrationExtensions</small>
155
+ </div>
156
+ </li>
157
+
158
+
159
+ <li class="odd ">
160
+ <div class="item">
161
+ <span class='object_link'><a href="ActiveRecord/ConnectionAdapters/SchemaStatements.html#create_table-instance_method" title="ActiveRecord::ConnectionAdapters::SchemaStatements#create_table (method)">#create_table</a></span>
162
+ <small>ActiveRecord::ConnectionAdapters::SchemaStatements</small>
163
+ </div>
164
+ </li>
165
+
166
+
167
+ <li class="even ">
168
+ <div class="item">
169
+ <span class='object_link'><a href="MultiTenant.html#current_tenant-class_method" title="MultiTenant.current_tenant (method)">current_tenant</a></span>
170
+ <small>MultiTenant</small>
171
+ </div>
172
+ </li>
173
+
174
+
175
+ <li class="odd ">
176
+ <div class="item">
177
+ <span class='object_link'><a href="MultiTenant.html#current_tenant=-class_method" title="MultiTenant.current_tenant= (method)">current_tenant=</a></span>
178
+ <small>MultiTenant</small>
179
+ </div>
180
+ </li>
181
+
182
+
183
+ <li class="even ">
184
+ <div class="item">
185
+ <span class='object_link'><a href="MultiTenant.html#current_tenant_class-class_method" title="MultiTenant.current_tenant_class (method)">current_tenant_class</a></span>
186
+ <small>MultiTenant</small>
187
+ </div>
188
+ </li>
189
+
190
+
191
+ <li class="odd ">
192
+ <div class="item">
193
+ <span class='object_link'><a href="MultiTenant.html#current_tenant_id-class_method" title="MultiTenant.current_tenant_id (method)">current_tenant_id</a></span>
194
+ <small>MultiTenant</small>
195
+ </div>
196
+ </li>
197
+
198
+
199
+ <li class="even ">
200
+ <div class="item">
201
+ <span class='object_link'><a href="MultiTenant.html#current_tenant_is_id%3F-class_method" title="MultiTenant.current_tenant_is_id? (method)">current_tenant_is_id?</a></span>
202
+ <small>MultiTenant</small>
203
+ </div>
204
+ </li>
205
+
206
+
207
+ <li class="odd ">
208
+ <div class="item">
209
+ <span class='object_link'><a href="MultiTenant.html#default_tenant_class-class_method" title="MultiTenant.default_tenant_class (method)">default_tenant_class</a></span>
210
+ <small>MultiTenant</small>
211
+ </div>
212
+ </li>
213
+
214
+
215
+ <li class="even ">
216
+ <div class="item">
217
+ <span class='object_link'><a href="MultiTenant.html#default_tenant_class=-class_method" title="MultiTenant.default_tenant_class= (method)">default_tenant_class=</a></span>
218
+ <small>MultiTenant</small>
219
+ </div>
220
+ </li>
221
+
222
+
223
+ <li class="odd ">
224
+ <div class="item">
225
+ <span class='object_link'><a href="MultiTenant/DatabaseStatements.html#delete-instance_method" title="MultiTenant::DatabaseStatements#delete (method)">#delete</a></span>
226
+ <small>MultiTenant::DatabaseStatements</small>
227
+ </div>
228
+ </li>
229
+
230
+
231
+ <li class="even ">
232
+ <div class="item">
233
+ <span class='object_link'><a href="MultiTenant/Context.html#discover_relations-instance_method" title="MultiTenant::Context#discover_relations (method)">#discover_relations</a></span>
234
+ <small>MultiTenant::Context</small>
235
+ </div>
236
+ </li>
237
+
238
+
239
+ <li class="odd ">
240
+ <div class="item">
241
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#enable_extension_on_all_nodes-instance_method" title="MultiTenant::MigrationExtensions#enable_extension_on_all_nodes (method)">#enable_extension_on_all_nodes</a></span>
242
+ <small>MultiTenant::MigrationExtensions</small>
243
+ </div>
244
+ </li>
245
+
246
+
247
+ <li class="even ">
248
+ <div class="item">
249
+ <span class='object_link'><a href="MultiTenant.html#enable_query_monitor-class_method" title="MultiTenant.enable_query_monitor (method)">enable_query_monitor</a></span>
250
+ <small>MultiTenant</small>
251
+ </div>
252
+ </li>
253
+
254
+
255
+ <li class="odd ">
256
+ <div class="item">
257
+ <span class='object_link'><a href="MultiTenant.html#enable_write_only_mode-class_method" title="MultiTenant.enable_write_only_mode (method)">enable_write_only_mode</a></span>
258
+ <small>MultiTenant</small>
259
+ </div>
260
+ </li>
261
+
262
+
263
+ <li class="even ">
264
+ <div class="item">
265
+ <span class='object_link'><a href="MultiTenant/Table.html#eql%3F-instance_method" title="MultiTenant::Table#eql? (method)">#eql?</a></span>
266
+ <small>MultiTenant::Table</small>
267
+ </div>
268
+ </li>
269
+
270
+
271
+ <li class="odd ">
272
+ <div class="item">
273
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#execute_on_all_nodes-instance_method" title="MultiTenant::MigrationExtensions#execute_on_all_nodes (method)">#execute_on_all_nodes</a></span>
274
+ <small>MultiTenant::MigrationExtensions</small>
275
+ </div>
276
+ </li>
277
+
278
+
279
+ <li class="even ">
280
+ <div class="item">
281
+ <span class='object_link'><a href="MultiTenant/QueryMonitor.html#finish-instance_method" title="MultiTenant::QueryMonitor#finish (method)">#finish</a></span>
282
+ <small>MultiTenant::QueryMonitor</small>
283
+ </div>
284
+ </li>
285
+
286
+
287
+ <li class="odd ">
288
+ <div class="item">
289
+ <span class='object_link'><a href="MultiTenant/Context.html#handled_relations-instance_method" title="MultiTenant::Context#handled_relations (method)">#handled_relations</a></span>
290
+ <small>MultiTenant::Context</small>
291
+ </div>
292
+ </li>
293
+
294
+
295
+ <li class="even ">
296
+ <div class="item">
297
+ <span class='object_link'><a href="ActiveRecord/Associations/ClassMethods.html#has_and_belongs_to_many_with_tenant-instance_method" title="ActiveRecord::Associations::ClassMethods#has_and_belongs_to_many_with_tenant (method)">#has_and_belongs_to_many_with_tenant</a></span>
298
+ <small>ActiveRecord::Associations::ClassMethods</small>
299
+ </div>
300
+ </li>
301
+
302
+
303
+ <li class="odd ">
304
+ <div class="item">
305
+ <span class='object_link'><a href="MultiTenant/Table.html#hash-instance_method" title="MultiTenant::Table#hash (method)">#hash</a></span>
306
+ <small>MultiTenant::Table</small>
307
+ </div>
308
+ </li>
309
+
310
+
311
+ <li class="even ">
312
+ <div class="item">
313
+ <span class='object_link'><a href="MultiTenant/Table.html#initialize-instance_method" title="MultiTenant::Table#initialize (method)">#initialize</a></span>
314
+ <small>MultiTenant::Table</small>
315
+ </div>
316
+ </li>
317
+
318
+
319
+ <li class="odd ">
320
+ <div class="item">
321
+ <span class='object_link'><a href="MultiTenant/Context.html#initialize-instance_method" title="MultiTenant::Context#initialize (method)">#initialize</a></span>
322
+ <small>MultiTenant::Context</small>
323
+ </div>
324
+ </li>
325
+
326
+
327
+ <li class="even ">
328
+ <div class="item">
329
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#initialize-instance_method" title="MultiTenant::ArelTenantVisitor#initialize (method)">#initialize</a></span>
330
+ <small>MultiTenant::ArelTenantVisitor</small>
331
+ </div>
332
+ </li>
333
+
334
+
335
+ <li class="odd ">
336
+ <div class="item">
337
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html#initialize-instance_method" title="MultiTenant::BaseTenantEnforcementClause#initialize (method)">#initialize</a></span>
338
+ <small>MultiTenant::BaseTenantEnforcementClause</small>
339
+ </div>
340
+ </li>
341
+
342
+
343
+ <li class="even ">
344
+ <div class="item">
345
+ <span class='object_link'><a href="MultiTenant/TenantJoinEnforcementClause.html#initialize-instance_method" title="MultiTenant::TenantJoinEnforcementClause#initialize (method)">#initialize</a></span>
346
+ <small>MultiTenant::TenantJoinEnforcementClause</small>
347
+ </div>
348
+ </li>
349
+
350
+
351
+ <li class="odd ">
352
+ <div class="item">
353
+ <span class='object_link'><a href="MultiTenant/CopyFromClientHelper.html#initialize-instance_method" title="MultiTenant::CopyFromClientHelper#initialize (method)">#initialize</a></span>
354
+ <small>MultiTenant::CopyFromClientHelper</small>
355
+ </div>
356
+ </li>
357
+
358
+
359
+ <li class="even ">
360
+ <div class="item">
361
+ <span class='object_link'><a href="MultiTenant/ArelVisitorsDepthFirst.html#initialize-instance_method" title="MultiTenant::ArelVisitorsDepthFirst#initialize (method)">#initialize</a></span>
362
+ <small>MultiTenant::ArelVisitorsDepthFirst</small>
363
+ </div>
364
+ </li>
365
+
366
+
367
+ <li class="odd ">
368
+ <div class="item">
369
+ <span class='object_link'><a href="MultiTenant/DatabaseStatements.html#join_to_delete-instance_method" title="MultiTenant::DatabaseStatements#join_to_delete (method)">#join_to_delete</a></span>
370
+ <small>MultiTenant::DatabaseStatements</small>
371
+ </div>
372
+ </li>
373
+
374
+
375
+ <li class="even ">
376
+ <div class="item">
377
+ <span class='object_link'><a href="MultiTenant/DatabaseStatements.html#join_to_update-instance_method" title="MultiTenant::DatabaseStatements#join_to_update (method)">#join_to_update</a></span>
378
+ <small>MultiTenant::DatabaseStatements</small>
379
+ </div>
380
+ </li>
381
+
382
+
383
+ <li class="odd ">
384
+ <div class="item">
385
+ <span class='object_link'><a href="MultiTenant/Context.html#known_relations-instance_method" title="MultiTenant::Context#known_relations (method)">#known_relations</a></span>
386
+ <small>MultiTenant::Context</small>
387
+ </div>
388
+ </li>
389
+
390
+
391
+ <li class="even ">
392
+ <div class="item">
393
+ <span class='object_link'><a href="MultiTenant.html#load_current_tenant!-class_method" title="MultiTenant.load_current_tenant! (method)">load_current_tenant!</a></span>
394
+ <small>MultiTenant</small>
395
+ </div>
396
+ </li>
397
+
398
+
399
+ <li class="odd ">
400
+ <div class="item">
401
+ <span class='object_link'><a href="MultiTenant/ModelExtensionsClassMethods.html#multi_tenant-instance_method" title="MultiTenant::ModelExtensionsClassMethods#multi_tenant (method)">#multi_tenant</a></span>
402
+ <small>MultiTenant::ModelExtensionsClassMethods</small>
403
+ </div>
404
+ </li>
405
+
406
+
407
+ <li class="even ">
408
+ <div class="item">
409
+ <span class='object_link'><a href="MultiTenant.html#multi_tenant_model_for_arel-class_method" title="MultiTenant.multi_tenant_model_for_arel (method)">multi_tenant_model_for_arel</a></span>
410
+ <small>MultiTenant</small>
411
+ </div>
412
+ </li>
413
+
414
+
415
+ <li class="odd ">
416
+ <div class="item">
417
+ <span class='object_link'><a href="MultiTenant.html#multi_tenant_model_for_table-class_method" title="MultiTenant.multi_tenant_model_for_table (method)">multi_tenant_model_for_table</a></span>
418
+ <small>MultiTenant</small>
419
+ </div>
420
+ </li>
421
+
422
+
423
+ <li class="even ">
424
+ <div class="item">
425
+ <span class='object_link'><a href="ActiveRecord/ConnectionAdapters/SchemaStatements.html#orig_create_table-instance_method" title="ActiveRecord::ConnectionAdapters::SchemaStatements#orig_create_table (method)">#orig_create_table</a></span>
426
+ <small>ActiveRecord::ConnectionAdapters::SchemaStatements</small>
427
+ </div>
428
+ </li>
429
+
430
+
431
+ <li class="odd ">
432
+ <div class="item">
433
+ <span class='object_link'><a href="MultiTenant.html#partition_key-class_method" title="MultiTenant.partition_key (method)">partition_key</a></span>
434
+ <small>MultiTenant</small>
435
+ </div>
436
+ </li>
437
+
438
+
439
+ <li class="even ">
440
+ <div class="item">
441
+ <span class='object_link'><a href="Sidekiq/Client.html#push_bulk_with_tenants-instance_method" title="Sidekiq::Client#push_bulk_with_tenants (method)">#push_bulk_with_tenants</a></span>
442
+ <small>Sidekiq::Client</small>
443
+ </div>
444
+ </li>
445
+
446
+
447
+ <li class="odd ">
448
+ <div class="item">
449
+ <span class='object_link'><a href="Sidekiq/Client.html#push_bulk_with_tenants-class_method" title="Sidekiq::Client.push_bulk_with_tenants (method)">push_bulk_with_tenants</a></span>
450
+ <small>Sidekiq::Client</small>
451
+ </div>
452
+ </li>
453
+
454
+
455
+ <li class="even ">
456
+ <div class="item">
457
+ <span class='object_link'><a href="MultiTenant.html#query_monitor_enabled%3F-class_method" title="MultiTenant.query_monitor_enabled? (method)">query_monitor_enabled?</a></span>
458
+ <small>MultiTenant</small>
459
+ </div>
460
+ </li>
461
+
462
+
463
+ <li class="odd ">
464
+ <div class="item">
465
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#rebalance_table_shards-instance_method" title="MultiTenant::MigrationExtensions#rebalance_table_shards (method)">#rebalance_table_shards</a></span>
466
+ <small>MultiTenant::MigrationExtensions</small>
467
+ </div>
468
+ </li>
469
+
470
+
471
+ <li class="even ">
472
+ <div class="item">
473
+ <span class='object_link'><a href="MultiTenant.html#register_multi_tenant_model-class_method" title="MultiTenant.register_multi_tenant_model (method)">register_multi_tenant_model</a></span>
474
+ <small>MultiTenant</small>
475
+ </div>
476
+ </li>
477
+
478
+
479
+ <li class="odd ">
480
+ <div class="item">
481
+ <span class='object_link'><a href="MultiTenant/FastTruncate.html#run-class_method" title="MultiTenant::FastTruncate.run (method)">run</a></span>
482
+ <small>MultiTenant::FastTruncate</small>
483
+ </div>
484
+ </li>
485
+
486
+
487
+ <li class="even ">
488
+ <div class="item">
489
+ <span class='object_link'><a href="MultiTenant/ControllerExtensions.html#set_current_tenant_through_filter-instance_method" title="MultiTenant::ControllerExtensions#set_current_tenant_through_filter (method)">#set_current_tenant_through_filter</a></span>
490
+ <small>MultiTenant::ControllerExtensions</small>
491
+ </div>
492
+ </li>
493
+
494
+
495
+ <li class="odd ">
496
+ <div class="item">
497
+ <span class='object_link'><a href="ActiveRecord/Associations/Association.html#skip_statement_cache%3F-instance_method" title="ActiveRecord::Associations::Association#skip_statement_cache? (method)">#skip_statement_cache?</a></span>
498
+ <small>ActiveRecord::Associations::Association</small>
499
+ </div>
500
+ </li>
501
+
502
+
503
+ <li class="even ">
504
+ <div class="item">
505
+ <span class='object_link'><a href="ActiveRecord/Associations/Association.html#skip_statement_cache_orig-instance_method" title="ActiveRecord::Associations::Association#skip_statement_cache_orig (method)">#skip_statement_cache_orig</a></span>
506
+ <small>ActiveRecord::Associations::Association</small>
507
+ </div>
508
+ </li>
509
+
510
+
511
+ <li class="odd ">
512
+ <div class="item">
513
+ <span class='object_link'><a href="MultiTenant/QueryMonitor.html#start-instance_method" title="MultiTenant::QueryMonitor#start (method)">#start</a></span>
514
+ <small>MultiTenant::QueryMonitor</small>
515
+ </div>
516
+ </li>
517
+
518
+
519
+ <li class="even ">
520
+ <div class="item">
521
+ <span class='object_link'><a href="MultiTenant/TenantJoinEnforcementClause.html#table_left-instance_method" title="MultiTenant::TenantJoinEnforcementClause#table_left (method)">#table_left</a></span>
522
+ <small>MultiTenant::TenantJoinEnforcementClause</small>
523
+ </div>
524
+ </li>
525
+
526
+
527
+ <li class="odd ">
528
+ <div class="item">
529
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html#tenant_attribute-instance_method" title="MultiTenant::BaseTenantEnforcementClause#tenant_attribute (method)">#tenant_attribute</a></span>
530
+ <small>MultiTenant::BaseTenantEnforcementClause</small>
531
+ </div>
532
+ </li>
533
+
534
+
535
+ <li class="even ">
536
+ <div class="item">
537
+ <span class='object_link'><a href="MultiTenant.html#tenant_klass_defined%3F-class_method" title="MultiTenant.tenant_klass_defined? (method)">tenant_klass_defined?</a></span>
538
+ <small>MultiTenant</small>
539
+ </div>
540
+ </li>
541
+
542
+
543
+ <li class="odd ">
544
+ <div class="item">
545
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html#to_s-instance_method" title="MultiTenant::BaseTenantEnforcementClause#to_s (method)">#to_s</a></span>
546
+ <small>MultiTenant::BaseTenantEnforcementClause</small>
547
+ </div>
548
+ </li>
549
+
550
+
551
+ <li class="even ">
552
+ <div class="item">
553
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html#to_sql-instance_method" title="MultiTenant::BaseTenantEnforcementClause#to_sql (method)">#to_sql</a></span>
554
+ <small>MultiTenant::BaseTenantEnforcementClause</small>
555
+ </div>
556
+ </li>
557
+
558
+
559
+ <li class="odd ">
560
+ <div class="item">
561
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html#to_str-instance_method" title="MultiTenant::BaseTenantEnforcementClause#to_str (method)">#to_str</a></span>
562
+ <small>MultiTenant::BaseTenantEnforcementClause</small>
563
+ </div>
564
+ </li>
565
+
566
+
567
+ <li class="even ">
568
+ <div class="item">
569
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html#undistribute_table-instance_method" title="MultiTenant::MigrationExtensions#undistribute_table (method)">#undistribute_table</a></span>
570
+ <small>MultiTenant::MigrationExtensions</small>
571
+ </div>
572
+ </li>
573
+
574
+
575
+ <li class="odd ">
576
+ <div class="item">
577
+ <span class='object_link'><a href="MultiTenant/Context.html#unhandled_relations-instance_method" title="MultiTenant::Context#unhandled_relations (method)">#unhandled_relations</a></span>
578
+ <small>MultiTenant::Context</small>
579
+ </div>
580
+ </li>
581
+
582
+
583
+ <li class="even ">
584
+ <div class="item">
585
+ <span class='object_link'><a href="MultiTenant/DatabaseStatements.html#update-instance_method" title="MultiTenant::DatabaseStatements#update (method)">#update</a></span>
586
+ <small>MultiTenant::DatabaseStatements</small>
587
+ </div>
588
+ </li>
589
+
590
+
591
+ <li class="odd ">
592
+ <div class="item">
593
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_Arel_Attributes_Attribute-instance_method" title="MultiTenant::ArelTenantVisitor#visit_Arel_Attributes_Attribute (method)">#visit_Arel_Attributes_Attribute</a></span>
594
+ <small>MultiTenant::ArelTenantVisitor</small>
595
+ </div>
596
+ </li>
597
+
598
+
599
+ <li class="even ">
600
+ <div class="item">
601
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_Arel_Nodes_Equality-instance_method" title="MultiTenant::ArelTenantVisitor#visit_Arel_Nodes_Equality (method)">#visit_Arel_Nodes_Equality</a></span>
602
+ <small>MultiTenant::ArelTenantVisitor</small>
603
+ </div>
604
+ </li>
605
+
606
+
607
+ <li class="odd ">
608
+ <div class="item">
609
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_Arel_Nodes_OuterJoin-instance_method" title="MultiTenant::ArelTenantVisitor#visit_Arel_Nodes_OuterJoin (method)">#visit_Arel_Nodes_OuterJoin</a></span>
610
+ <small>MultiTenant::ArelTenantVisitor</small>
611
+ </div>
612
+ </li>
613
+
614
+
615
+ <li class="even ">
616
+ <div class="item">
617
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_Arel_Nodes_SelectCore-instance_method" title="MultiTenant::ArelTenantVisitor#visit_Arel_Nodes_SelectCore (method)">#visit_Arel_Nodes_SelectCore</a></span>
618
+ <small>MultiTenant::ArelTenantVisitor</small>
619
+ </div>
620
+ </li>
621
+
622
+
623
+ <li class="odd ">
624
+ <div class="item">
625
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_Arel_Table-instance_method" title="MultiTenant::ArelTenantVisitor#visit_Arel_Table (method)">#visit_Arel_Table</a></span>
626
+ <small>MultiTenant::ArelTenantVisitor</small>
627
+ </div>
628
+ </li>
629
+
630
+
631
+ <li class="even ">
632
+ <div class="item">
633
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_MultiTenant_TenantEnforcementClause-instance_method" title="MultiTenant::ArelTenantVisitor#visit_MultiTenant_TenantEnforcementClause (method)">#visit_MultiTenant_TenantEnforcementClause</a></span>
634
+ <small>MultiTenant::ArelTenantVisitor</small>
635
+ </div>
636
+ </li>
637
+
638
+
639
+ <li class="odd ">
640
+ <div class="item">
641
+ <span class='object_link'><a href="MultiTenant/TenantValueVisitor.html#visit_MultiTenant_TenantEnforcementClause-instance_method" title="MultiTenant::TenantValueVisitor#visit_MultiTenant_TenantEnforcementClause (method)">#visit_MultiTenant_TenantEnforcementClause</a></span>
642
+ <small>MultiTenant::TenantValueVisitor</small>
643
+ </div>
644
+ </li>
645
+
646
+
647
+ <li class="even ">
648
+ <div class="item">
649
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html#visit_MultiTenant_TenantJoinEnforcementClause-instance_method" title="MultiTenant::ArelTenantVisitor#visit_MultiTenant_TenantJoinEnforcementClause (method)">#visit_MultiTenant_TenantJoinEnforcementClause</a></span>
650
+ <small>MultiTenant::ArelTenantVisitor</small>
651
+ </div>
652
+ </li>
653
+
654
+
655
+ <li class="odd ">
656
+ <div class="item">
657
+ <span class='object_link'><a href="MultiTenant/TenantValueVisitor.html#visit_MultiTenant_TenantJoinEnforcementClause-instance_method" title="MultiTenant::TenantValueVisitor#visit_MultiTenant_TenantJoinEnforcementClause (method)">#visit_MultiTenant_TenantJoinEnforcementClause</a></span>
658
+ <small>MultiTenant::TenantValueVisitor</small>
659
+ </div>
660
+ </li>
661
+
662
+
663
+ <li class="even ">
664
+ <div class="item">
665
+ <span class='object_link'><a href="MultiTenant/Context.html#visited_handled_relation-instance_method" title="MultiTenant::Context#visited_handled_relation (method)">#visited_handled_relation</a></span>
666
+ <small>MultiTenant::Context</small>
667
+ </div>
668
+ </li>
669
+
670
+
671
+ <li class="odd ">
672
+ <div class="item">
673
+ <span class='object_link'><a href="MultiTenant/Context.html#visited_relation-instance_method" title="MultiTenant::Context#visited_relation (method)">#visited_relation</a></span>
674
+ <small>MultiTenant::Context</small>
675
+ </div>
676
+ </li>
677
+
678
+
679
+ <li class="even ">
680
+ <div class="item">
681
+ <span class='object_link'><a href="MultiTenant.html#with-class_method" title="MultiTenant.with (method)">with</a></span>
682
+ <small>MultiTenant</small>
683
+ </div>
684
+ </li>
685
+
686
+
687
+ <li class="odd ">
688
+ <div class="item">
689
+ <span class='object_link'><a href="MultiTenant.html#with_write_only_mode_enabled%3F-class_method" title="MultiTenant.with_write_only_mode_enabled? (method)">with_write_only_mode_enabled?</a></span>
690
+ <small>MultiTenant</small>
691
+ </div>
692
+ </li>
693
+
694
+
695
+ <li class="even ">
696
+ <div class="item">
697
+ <span class='object_link'><a href="MultiTenant.html#without-class_method" title="MultiTenant.without (method)">without</a></span>
698
+ <small>MultiTenant</small>
699
+ </div>
700
+ </li>
701
+
702
+
703
+ <li class="odd ">
704
+ <div class="item">
705
+ <span class='object_link'><a href="MultiTenant.html#wrap_methods-class_method" title="MultiTenant.wrap_methods (method)">wrap_methods</a></span>
706
+ <small>MultiTenant</small>
707
+ </div>
708
+ </li>
709
+
710
+
711
+
712
+ </ul>
713
+ </div>
714
+ </body>
715
+ </html>