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,399 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Documentation by YARD 0.9.34
8
+
9
+ </title>
10
+
11
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
12
+
13
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
14
+
15
+ <script type="text/javascript">
16
+ pathId = null;
17
+ relpath = '';
18
+ </script>
19
+
20
+
21
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
24
+
25
+
26
+ </head>
27
+ <body>
28
+ <div class="nav_wrap">
29
+ <iframe id="nav" src="class_list.html?1"></iframe>
30
+ <div id="resizer"></div>
31
+ </div>
32
+
33
+ <div id="main" tabindex="-1">
34
+ <div id="header">
35
+ <div id="menu">
36
+
37
+ </div>
38
+
39
+ <div id="search">
40
+
41
+ <a class="full_list_link" id="class_list_link"
42
+ href="class_list.html">
43
+
44
+ <svg width="24" height="24">
45
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
46
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
47
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
48
+ </svg>
49
+ </a>
50
+
51
+ </div>
52
+ <div class="clear"></div>
53
+ </div>
54
+
55
+ <div id="content"><h1 class="noborder title">Documentation by YARD 0.9.34</h1>
56
+ <div id="listing">
57
+ <h1 class="alphaindex">Alphabetic Index</h1>
58
+
59
+ <h2>File Listing</h2>
60
+ <ul id="files" class="index_inline_list">
61
+
62
+
63
+ <li class="r1"><a href="index.html" title="README">README</a></li>
64
+
65
+
66
+ </ul>
67
+
68
+ <div class="clear"></div>
69
+ <h2>Namespace Listing A-Z</h2>
70
+
71
+
72
+
73
+
74
+ <table>
75
+ <tr>
76
+ <td valign='top' width="33%">
77
+
78
+
79
+ <ul id="alpha_A" class="alpha">
80
+ <li class="letter">A</li>
81
+ <ul>
82
+
83
+ <li>
84
+ <span class='object_link'><a href="ActiveRecord.html" title="ActiveRecord (module)">ActiveRecord</a></span>
85
+
86
+ </li>
87
+
88
+ <li>
89
+ <span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html" title="MultiTenant::ArelTenantVisitor (class)">ArelTenantVisitor</a></span>
90
+
91
+ <small>(MultiTenant)</small>
92
+
93
+ </li>
94
+
95
+ <li>
96
+ <span class='object_link'><a href="MultiTenant/ArelVisitorsDepthFirst.html" title="MultiTenant::ArelVisitorsDepthFirst (class)">ArelVisitorsDepthFirst</a></span>
97
+
98
+ <small>(MultiTenant)</small>
99
+
100
+ </li>
101
+
102
+ <li>
103
+ <span class='object_link'><a href="ActiveRecord/Associations/Association.html" title="ActiveRecord::Associations::Association (class)">Association</a></span>
104
+
105
+ <small>(ActiveRecord::Associations)</small>
106
+
107
+ </li>
108
+
109
+ <li>
110
+ <span class='object_link'><a href="ActiveRecord/Associations.html" title="ActiveRecord::Associations (module)">Associations</a></span>
111
+
112
+ <small>(ActiveRecord)</small>
113
+
114
+ </li>
115
+
116
+ </ul>
117
+ </ul>
118
+
119
+
120
+ <ul id="alpha_B" class="alpha">
121
+ <li class="letter">B</li>
122
+ <ul>
123
+
124
+ <li>
125
+ <span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html" title="MultiTenant::BaseTenantEnforcementClause (class)">BaseTenantEnforcementClause</a></span>
126
+
127
+ <small>(MultiTenant)</small>
128
+
129
+ </li>
130
+
131
+ </ul>
132
+ </ul>
133
+
134
+
135
+ <ul id="alpha_C" class="alpha">
136
+ <li class="letter">C</li>
137
+ <ul>
138
+
139
+ <li>
140
+ <span class='object_link'><a href="ActiveRecord/Associations/ClassMethods.html" title="ActiveRecord::Associations::ClassMethods (module)">ClassMethods</a></span>
141
+
142
+ <small>(ActiveRecord::Associations)</small>
143
+
144
+ </li>
145
+
146
+ <li>
147
+ <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Client.html" title="Sidekiq::Middleware::MultiTenant::Client (class)">Client</a></span>
148
+
149
+ <small>(Sidekiq::Middleware::MultiTenant)</small>
150
+
151
+ </li>
152
+
153
+ <li>
154
+ <span class='object_link'><a href="Sidekiq/Client.html" title="Sidekiq::Client (class)">Client</a></span>
155
+
156
+ <small>(Sidekiq)</small>
157
+
158
+ </li>
159
+
160
+ <li>
161
+ <span class='object_link'><a href="ActiveRecord/ConnectionAdapters.html" title="ActiveRecord::ConnectionAdapters (module)">ConnectionAdapters</a></span>
162
+
163
+ <small>(ActiveRecord)</small>
164
+
165
+ </li>
166
+
167
+ <li>
168
+ <span class='object_link'><a href="MultiTenant/Context.html" title="MultiTenant::Context (class)">Context</a></span>
169
+
170
+ <small>(MultiTenant)</small>
171
+
172
+ </li>
173
+
174
+ <li>
175
+ <span class='object_link'><a href="MultiTenant/ControllerExtensions.html" title="MultiTenant::ControllerExtensions (module)">ControllerExtensions</a></span>
176
+
177
+ <small>(MultiTenant)</small>
178
+
179
+ </li>
180
+
181
+ <li>
182
+ <span class='object_link'><a href="MultiTenant/CopyFromClient.html" title="MultiTenant::CopyFromClient (module)">CopyFromClient</a></span>
183
+
184
+ <small>(MultiTenant)</small>
185
+
186
+ </li>
187
+
188
+ <li>
189
+ <span class='object_link'><a href="MultiTenant/CopyFromClientHelper.html" title="MultiTenant::CopyFromClientHelper (class)">CopyFromClientHelper</a></span>
190
+
191
+ <small>(MultiTenant)</small>
192
+
193
+ </li>
194
+
195
+ <li>
196
+ <span class='object_link'><a href="MultiTenant/Current.html" title="MultiTenant::Current (class)">Current</a></span>
197
+
198
+ <small>(MultiTenant)</small>
199
+
200
+ </li>
201
+
202
+ </ul>
203
+ </ul>
204
+
205
+
206
+ <ul id="alpha_D" class="alpha">
207
+ <li class="letter">D</li>
208
+ <ul>
209
+
210
+ <li>
211
+ <span class='object_link'><a href="MultiTenant/DatabaseStatements.html" title="MultiTenant::DatabaseStatements (module)">DatabaseStatements</a></span>
212
+
213
+ <small>(MultiTenant)</small>
214
+
215
+ </li>
216
+
217
+ </ul>
218
+ </ul>
219
+
220
+
221
+ <ul id="alpha_F" class="alpha">
222
+ <li class="letter">F</li>
223
+ <ul>
224
+
225
+ <li>
226
+ <span class='object_link'><a href="MultiTenant/FastTruncate.html" title="MultiTenant::FastTruncate (module)">FastTruncate</a></span>
227
+
228
+ <small>(MultiTenant)</small>
229
+
230
+ </li>
231
+
232
+ </ul>
233
+ </ul>
234
+
235
+
236
+ <ul id="alpha_M" class="alpha">
237
+ <li class="letter">M</li>
238
+ <ul>
239
+
240
+ <li>
241
+ <span class='object_link'><a href="MultiTenant/MigrationExtensions.html" title="MultiTenant::MigrationExtensions (module)">MigrationExtensions</a></span>
242
+
243
+ <small>(MultiTenant)</small>
244
+
245
+ </li>
246
+
247
+ <li>
248
+ <span class='object_link'><a href="MultiTenant/MissingTenantError.html" title="MultiTenant::MissingTenantError (class)">MissingTenantError</a></span>
249
+
250
+ <small>(MultiTenant)</small>
251
+
252
+ </li>
253
+
254
+ <li>
255
+ <span class='object_link'><a href="MultiTenant/ModelExtensionsClassMethods.html" title="MultiTenant::ModelExtensionsClassMethods (module)">ModelExtensionsClassMethods</a></span>
256
+
257
+ <small>(MultiTenant)</small>
258
+
259
+ </li>
260
+
261
+ <li>
262
+ <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant.html" title="Sidekiq::Middleware::MultiTenant (module)">MultiTenant</a></span>
263
+
264
+ <small>(Sidekiq::Middleware)</small>
265
+
266
+ </li>
267
+
268
+ <li>
269
+ <span class='object_link'><a href="MultiTenant.html" title="MultiTenant (module)">MultiTenant</a></span>
270
+
271
+ </li>
272
+
273
+ <li>
274
+ <span class='object_link'><a href="MultiTenantFindBy.html" title="MultiTenantFindBy (module)">MultiTenantFindBy</a></span>
275
+
276
+ </li>
277
+
278
+ </ul>
279
+ </ul>
280
+
281
+
282
+ <ul id="alpha_Q" class="alpha">
283
+ <li class="letter">Q</li>
284
+ <ul>
285
+
286
+ <li>
287
+ <span class='object_link'><a href="ActiveRecord/QueryMethods.html" title="ActiveRecord::QueryMethods (module)">QueryMethods</a></span>
288
+
289
+ <small>(ActiveRecord)</small>
290
+
291
+ </li>
292
+
293
+ <li>
294
+ <span class='object_link'><a href="MultiTenant/QueryMonitor.html" title="MultiTenant::QueryMonitor (class)">QueryMonitor</a></span>
295
+
296
+ <small>(MultiTenant)</small>
297
+
298
+ </li>
299
+
300
+ </ul>
301
+ </ul>
302
+
303
+
304
+ </td><td valign='top' width="33%">
305
+
306
+
307
+ <ul id="alpha_S" class="alpha">
308
+ <li class="letter">S</li>
309
+ <ul>
310
+
311
+ <li>
312
+ <span class='object_link'><a href="ActiveRecord/SchemaDumper.html" title="ActiveRecord::SchemaDumper (class)">SchemaDumper</a></span>
313
+
314
+ <small>(ActiveRecord)</small>
315
+
316
+ </li>
317
+
318
+ <li>
319
+ <span class='object_link'><a href="ActiveRecord/ConnectionAdapters/SchemaStatements.html" title="ActiveRecord::ConnectionAdapters::SchemaStatements (module)">SchemaStatements</a></span>
320
+
321
+ <small>(ActiveRecord::ConnectionAdapters)</small>
322
+
323
+ </li>
324
+
325
+ <li>
326
+ <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Server.html" title="Sidekiq::Middleware::MultiTenant::Server (class)">Server</a></span>
327
+
328
+ <small>(Sidekiq::Middleware::MultiTenant)</small>
329
+
330
+ </li>
331
+
332
+ <li>
333
+ <span class='object_link'><a href="Sidekiq.html" title="Sidekiq (module)">Sidekiq</a></span>
334
+
335
+ </li>
336
+
337
+ </ul>
338
+ </ul>
339
+
340
+
341
+ <ul id="alpha_T" class="alpha">
342
+ <li class="letter">T</li>
343
+ <ul>
344
+
345
+ <li>
346
+ <span class='object_link'><a href="MultiTenant/Table.html" title="MultiTenant::Table (class)">Table</a></span>
347
+
348
+ <small>(MultiTenant)</small>
349
+
350
+ </li>
351
+
352
+ <li>
353
+ <span class='object_link'><a href="MultiTenant/TenantEnforcementClause.html" title="MultiTenant::TenantEnforcementClause (class)">TenantEnforcementClause</a></span>
354
+
355
+ <small>(MultiTenant)</small>
356
+
357
+ </li>
358
+
359
+ <li>
360
+ <span class='object_link'><a href="MultiTenant/TenantIsImmutable.html" title="MultiTenant::TenantIsImmutable (class)">TenantIsImmutable</a></span>
361
+
362
+ <small>(MultiTenant)</small>
363
+
364
+ </li>
365
+
366
+ <li>
367
+ <span class='object_link'><a href="MultiTenant/TenantJoinEnforcementClause.html" title="MultiTenant::TenantJoinEnforcementClause (class)">TenantJoinEnforcementClause</a></span>
368
+
369
+ <small>(MultiTenant)</small>
370
+
371
+ </li>
372
+
373
+ <li>
374
+ <span class='object_link'><a href="MultiTenant/TenantValueVisitor.html" title="MultiTenant::TenantValueVisitor (module)">TenantValueVisitor</a></span>
375
+
376
+ <small>(MultiTenant)</small>
377
+
378
+ </li>
379
+
380
+ </ul>
381
+ </ul>
382
+
383
+ </td>
384
+ </tr>
385
+ </table>
386
+
387
+ </div>
388
+
389
+ </div>
390
+
391
+ <div id="footer">
392
+ Generated on Sat May 27 10:16:23 2023 by
393
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
394
+ 0.9.34 (ruby-3.2.2).
395
+ </div>
396
+
397
+ </div>
398
+ </body>
399
+ </html>
@@ -0,0 +1,51 @@
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>Class 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">Class 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="class">
45
+ <li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
46
+ <li id='object_ActiveRecord' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="ActiveRecord.html" title="ActiveRecord (module)">ActiveRecord</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_ActiveRecord::Associations' class='collapsed odd'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="ActiveRecord/Associations.html" title="ActiveRecord::Associations (module)">Associations</a></span><small class='search_info'>ActiveRecord</small></div><ul><li id='object_ActiveRecord::Associations::Association' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="ActiveRecord/Associations/Association.html" title="ActiveRecord::Associations::Association (class)">Association</a></span> &lt; Object<small class='search_info'>ActiveRecord::Associations</small></div></li><li id='object_ActiveRecord::Associations::ClassMethods' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="ActiveRecord/Associations/ClassMethods.html" title="ActiveRecord::Associations::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>ActiveRecord::Associations</small></div></li></ul></li><li id='object_ActiveRecord::ConnectionAdapters' class='collapsed even'><div class='item' style='padding-left:45px'><a class='toggle'></a> <span class='object_link'><a href="ActiveRecord/ConnectionAdapters.html" title="ActiveRecord::ConnectionAdapters (module)">ConnectionAdapters</a></span><small class='search_info'>ActiveRecord</small></div><ul><li id='object_ActiveRecord::ConnectionAdapters::SchemaStatements' class='collapsed'><div class='item' style='padding-left:60px'><span class='object_link'><a href="ActiveRecord/ConnectionAdapters/SchemaStatements.html" title="ActiveRecord::ConnectionAdapters::SchemaStatements (module)">SchemaStatements</a></span><small class='search_info'>ActiveRecord::ConnectionAdapters</small></div></li></ul></li><li id='object_ActiveRecord::QueryMethods' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="ActiveRecord/QueryMethods.html" title="ActiveRecord::QueryMethods (module)">QueryMethods</a></span><small class='search_info'>ActiveRecord</small></div></li><li id='object_ActiveRecord::SchemaDumper' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="ActiveRecord/SchemaDumper.html" title="ActiveRecord::SchemaDumper (class)">SchemaDumper</a></span> &lt; Object<small class='search_info'>ActiveRecord</small></div></li></ul></li><li id='object_MultiTenant' class='odd'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="MultiTenant.html" title="MultiTenant (module)">MultiTenant</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_MultiTenant::ArelTenantVisitor' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/ArelTenantVisitor.html" title="MultiTenant::ArelTenantVisitor (class)">ArelTenantVisitor</a></span> &lt; Object<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::ArelVisitorsDepthFirst' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/ArelVisitorsDepthFirst.html" title="MultiTenant::ArelVisitorsDepthFirst (class)">ArelVisitorsDepthFirst</a></span> &lt; Visitor<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::BaseTenantEnforcementClause' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/BaseTenantEnforcementClause.html" title="MultiTenant::BaseTenantEnforcementClause (class)">BaseTenantEnforcementClause</a></span> &lt; Node<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::Context' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/Context.html" title="MultiTenant::Context (class)">Context</a></span> &lt; Object<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::ControllerExtensions' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/ControllerExtensions.html" title="MultiTenant::ControllerExtensions (module)">ControllerExtensions</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::CopyFromClient' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/CopyFromClient.html" title="MultiTenant::CopyFromClient (module)">CopyFromClient</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::CopyFromClientHelper' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/CopyFromClientHelper.html" title="MultiTenant::CopyFromClientHelper (class)">CopyFromClientHelper</a></span> &lt; Object<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::Current' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/Current.html" title="MultiTenant::Current (class)">Current</a></span> &lt; CurrentAttributes<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::DatabaseStatements' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/DatabaseStatements.html" title="MultiTenant::DatabaseStatements (module)">DatabaseStatements</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::FastTruncate' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/FastTruncate.html" title="MultiTenant::FastTruncate (module)">FastTruncate</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::MigrationExtensions' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/MigrationExtensions.html" title="MultiTenant::MigrationExtensions (module)">MigrationExtensions</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::MissingTenantError' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/MissingTenantError.html" title="MultiTenant::MissingTenantError (class)">MissingTenantError</a></span> &lt; StandardError<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::ModelExtensionsClassMethods' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/ModelExtensionsClassMethods.html" title="MultiTenant::ModelExtensionsClassMethods (module)">ModelExtensionsClassMethods</a></span><small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::QueryMonitor' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/QueryMonitor.html" title="MultiTenant::QueryMonitor (class)">QueryMonitor</a></span> &lt; Object<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::Table' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/Table.html" title="MultiTenant::Table (class)">Table</a></span> &lt; Object<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::TenantEnforcementClause' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/TenantEnforcementClause.html" title="MultiTenant::TenantEnforcementClause (class)">TenantEnforcementClause</a></span> &lt; BaseTenantEnforcementClause<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::TenantIsImmutable' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/TenantIsImmutable.html" title="MultiTenant::TenantIsImmutable (class)">TenantIsImmutable</a></span> &lt; StandardError<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::TenantJoinEnforcementClause' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/TenantJoinEnforcementClause.html" title="MultiTenant::TenantJoinEnforcementClause (class)">TenantJoinEnforcementClause</a></span> &lt; BaseTenantEnforcementClause<small class='search_info'>MultiTenant</small></div></li><li id='object_MultiTenant::TenantValueVisitor' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="MultiTenant/TenantValueVisitor.html" title="MultiTenant::TenantValueVisitor (module)">TenantValueVisitor</a></span><small class='search_info'>MultiTenant</small></div></li></ul></li><li id='object_MultiTenantFindBy' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="MultiTenantFindBy.html" title="MultiTenantFindBy (module)">MultiTenantFindBy</a></span><small class='search_info'>Top Level Namespace</small></div></li><li id='object_Sidekiq' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="Sidekiq.html" title="Sidekiq (module)">Sidekiq</a></span><small class='search_info'>Top Level Namespace</small></div><ul><li id='object_Sidekiq::Client' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Sidekiq/Client.html" title="Sidekiq::Client (class)">Client</a></span> &lt; Object<small class='search_info'>Sidekiq</small></div></li></ul></li><li id='object_Sidekiq::Middleware::MultiTenant' class='even'><div class='item' style='padding-left:30px'><a class='toggle'></a> <span class='object_link'><a href="Sidekiq/Middleware/MultiTenant.html" title="Sidekiq::Middleware::MultiTenant (module)">Sidekiq::Middleware::MultiTenant</a></span><small class='search_info'>Sidekiq::Middleware</small></div><ul><li id='object_Sidekiq::Middleware::MultiTenant::Client' class='collapsed odd'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Client.html" title="Sidekiq::Middleware::MultiTenant::Client (class)">Client</a></span> &lt; Object<small class='search_info'>Sidekiq::Middleware::MultiTenant</small></div></li><li id='object_Sidekiq::Middleware::MultiTenant::Server' class='collapsed even'><div class='item' style='padding-left:45px'><span class='object_link'><a href="Sidekiq/Middleware/MultiTenant/Server.html" title="Sidekiq::Middleware::MultiTenant::Server (class)">Server</a></span> &lt; Object<small class='search_info'>Sidekiq::Middleware::MultiTenant</small></div></li></ul></li>
47
+
48
+ </ul>
49
+ </div>
50
+ </body>
51
+ </html>
@@ -0,0 +1 @@
1
+ /* Override this file with custom rules */
@@ -0,0 +1,58 @@
1
+ body {
2
+ margin: 0;
3
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
+ font-size: 13px;
5
+ height: 101%;
6
+ overflow-x: hidden;
7
+ background: #fafafa;
8
+ }
9
+
10
+ h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
11
+ .clear { clear: both; }
12
+ .fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; }
13
+ #search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
14
+ #content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
15
+ #full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; }
16
+ #full_list ul { padding: 0; }
17
+ #full_list li { padding: 0; margin: 0; list-style: none; }
18
+ #full_list li .item { padding: 5px 5px 5px 12px; }
19
+ #noresults { padding: 7px 12px; background: #fff; }
20
+ #content.insearch #noresults { margin-left: 7px; }
21
+ li.collapsed ul { display: none; }
22
+ li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
23
+ li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
24
+ li { color: #888; cursor: pointer; }
25
+ li.deprecated { text-decoration: line-through; font-style: italic; }
26
+ li.odd { background: #f0f0f0; }
27
+ li.even { background: #fafafa; }
28
+ .item:hover { background: #ddd; }
29
+ li small:before { content: "("; }
30
+ li small:after { content: ")"; }
31
+ li small.search_info { display: none; }
32
+ a, a:visited { text-decoration: none; color: #05a; }
33
+ li.clicked > .item { background: #05a; color: #ccc; }
34
+ li.clicked > .item a, li.clicked > .item a:visited { color: #eee; }
35
+ li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; }
36
+ li.collapsed.clicked a.toggle { background-position: top right; }
37
+ #search input { border: 1px solid #bbb; border-radius: 3px; }
38
+ #full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; }
39
+ #full_list_nav a, #nav a:visited { color: #358; }
40
+ #full_list_nav a:hover { background: transparent; color: #5af; }
41
+ #full_list_nav span:after { content: ' | '; }
42
+ #full_list_nav span:last-child:after { content: ''; }
43
+
44
+ #content h1 { margin-top: 0; }
45
+ li { white-space: nowrap; cursor: normal; }
46
+ li small { display: block; font-size: 0.8em; }
47
+ li small:before { content: ""; }
48
+ li small:after { content: ""; }
49
+ li small.search_info { display: none; }
50
+ #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
51
+ #content.insearch #search { background-position: center right; }
52
+ #search input { width: 110px; }
53
+
54
+ #full_list.insearch ul { display: block; }
55
+ #full_list.insearch .item { display: none; }
56
+ #full_list.insearch .found { display: block; padding-left: 11px !important; }
57
+ #full_list.insearch li a.toggle { display: none; }
58
+ #full_list.insearch li small.search_info { display: block; }