brick 1.0.103 → 1.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74743982216a9827513b4aaa68fe0887c9ba3e7b78c45ff52f0a2f2b99dc7b88
4
- data.tar.gz: 3857a95e891e7561d285dd3ecbdeb6c4c16cc9a8205e7b733b55867ed7a69f64
3
+ metadata.gz: 6d30161a8558282149a49e7eafbd43bb175ce95574178c65a75323eaacf96422
4
+ data.tar.gz: 6d56c5e77c2a0d120bc8e878bde9d33fdfa7d58bed690a21fea176d5d6b55d50
5
5
  SHA512:
6
- metadata.gz: 8b71aa5b1d4da8c4aa1ce88af6d0767c12bdf72b2457594575795d4b9b3f36d1bfb2adef82413a3bc80e041813e7bc6c05768016c5e4cfc197e3bbb730113934
7
- data.tar.gz: 6399e040cb4b54eac4d7a09b907cfba11037a4b3391dd3a86b4845e79bd0c4d4e169586c095fdaaaa8506f346628072c9c4c9b6d2ed60c3306a58866e6f9d030
6
+ metadata.gz: 14bfffec6fd768d4b3abff2b3ceaeb2a2dca29b167edd64c2e57a63c72eaa70bf46fc8056af25fca86812bfac63d3b793bdeaf7f13a8c2ba7834ac9e65f1fb16
7
+ data.tar.gz: 97f7c94051bb068c4d8bdb5e847e53576c8ebbe18d5c4c93e12d52566008ac612bb40f7088ba81fea21337a3c13c29f366fb993b77f2f88f9fbddea4ffb95982
@@ -257,11 +257,11 @@ module ActiveRecord
257
257
  assoc_html_name ? "#{assoc_name}-#{link}".html_safe : link
258
258
  end
259
259
 
260
- def self._brick_index(mode = nil)
260
+ def self._brick_index(mode = nil, separator = '_')
261
261
  tbl_parts = ((mode == :singular) ? table_name.singularize : table_name).split('.')
262
262
  tbl_parts.shift if ::Brick.apartment_multitenant && tbl_parts.length > 1 && tbl_parts.first == ::Brick.apartment_default_tenant
263
263
  tbl_parts.unshift(::Brick.config.path_prefix) if ::Brick.config.path_prefix
264
- index = tbl_parts.map(&:underscore).join('_')
264
+ index = tbl_parts.map(&:underscore).join(separator)
265
265
  # Rails applies an _index suffix to that route when the resource name is singular
266
266
  index << '_index' if mode != :singular && index == index.singularize
267
267
  index
@@ -396,6 +396,8 @@ module ActiveRecord
396
396
  end
397
397
 
398
398
  class Relation
399
+ attr_accessor :_brick_page_num
400
+
399
401
  # Links from ActiveRecord association pathing names over to real table correlation names
400
402
  # that get chosen when the AREL AST tree is walked.
401
403
  def brick_links
@@ -785,8 +787,21 @@ JOIN (SELECT #{hm_selects.map { |s| "#{'br_t0.' if from_clause}#{s}" }.join(', '
785
787
  end
786
788
  self.order_values |= final_order_by # Same as: order!(*final_order_by)
787
789
  end
788
- # Don't want to get too carried away just yet
789
- self.limit_value = 1000 # Same as: limit!(1000)
790
+ if (page = params['_brick_page']&.to_i)
791
+ page = 1 if page < 1
792
+ limit = params['_brick_page_size'] || 1000
793
+ offset = (page - 1) * limit.to_i
794
+ else
795
+ offset = params['_brick_offset']
796
+ limit = params['_brick_limit']
797
+ end
798
+ if offset.is_a?(Numeric) || offset&.present?
799
+ offset = offset.to_i
800
+ self.offset_value = offset unless offset == 0
801
+ @_brick_page_num = (offset / limit.to_i) + 1 if limit&.!= 0 && (offset % limit.to_i) == 0
802
+ end
803
+ # By default just 1000 rows (Like doing: limit!(1000) but this way is compatible with AR <= 4.2)
804
+ self.limit_value = limit&.to_i || 1000 unless limit.is_a?(String) && limit.empty?
790
805
  wheres unless wheres.empty? # Return the specific parameters that we did use
791
806
  end
792
807
 
@@ -228,8 +228,8 @@ window.addEventListener(\"popstate\", linkSchemas);
228
228
  # When available, add a clickable brick icon to go to the Brick version of the page
229
229
  PanelComponent.class_exec do
230
230
  alias _brick_init initialize
231
- def initialize(*args)
232
- _brick_init(*args)
231
+ def initialize(*args, **kwargs)
232
+ _brick_init(*args, **kwargs)
233
233
  @name = BrickTitle.new(@name, self)
234
234
  end
235
235
  end
@@ -263,6 +263,16 @@ window.addEventListener(\"popstate\", linkSchemas);
263
263
  _brick_resource_view_path
264
264
  end
265
265
  end
266
+
267
+ module Concerns::HasFields
268
+ class_methods do
269
+ alias _brick_field field
270
+ def field(name, *args, **kwargs, &block)
271
+ kwargs.merge!(args.pop) if args.last.is_a?(Hash)
272
+ _brick_field(name, **kwargs, &block)
273
+ end
274
+ end
275
+ end
266
276
  end # module Avo
267
277
 
268
278
  # Steer any Avo-related controller/action based URL lookups to the Avo RouteSet
@@ -454,6 +464,12 @@ window.addEventListener(\"popstate\", linkSchemas);
454
464
  table_options << "<option value=\"#{prefix}brick_orphans\">(Orphans)</option>".html_safe if is_orphans
455
465
  table_options << "<option value=\"#{prefix}brick_orphans\">(Crosstab)</option>".html_safe if is_crosstab
456
466
  css = +"<style>
467
+ #titleBox {
468
+ position: sticky;
469
+ display: inline-block;
470
+ left: 0;
471
+ }
472
+
457
473
  h1, h3 {
458
474
  margin-bottom: 0;
459
475
  }
@@ -465,7 +481,6 @@ h1, h3 {
465
481
  cursor: pointer;
466
482
  }
467
483
  #mermaidErd {
468
- position: relative;
469
484
  display: none;
470
485
  }
471
486
  #mermaidErd .exclude {
@@ -1112,13 +1127,16 @@ erDiagram
1112
1127
  %></title>
1113
1128
  </head>
1114
1129
  <body>
1130
+ <div id=\"titleBox\">
1115
1131
  <p style=\"color: green\"><%= notice %></p>#{"
1116
1132
  #{schema_options}" if schema_options}
1117
1133
  <select id=\"tbl\">#{table_options}</select>
1118
1134
  <table id=\"resourceName\"><tr>
1119
- <td><h1><%= model.name %></h1></td>
1135
+ <td><h1><%= td_count = 2
1136
+ model.name %></h1></td>
1120
1137
  <td id=\"imgErd\" title=\"Show ERD\"></td>
1121
- <% if Object.const_defined?('Avo') && ::Avo.respond_to?(:railtie_namespace) %>
1138
+ <% if Object.const_defined?('Avo') && ::Avo.respond_to?(:railtie_namespace)
1139
+ td_count += 1 %>
1122
1140
  <td><%= link_to_brick(
1123
1141
  avo_svg,
1124
1142
  { index_proc: Proc.new do |avo_model|
@@ -1127,7 +1145,9 @@ erDiagram
1127
1145
  title: \"#\{model.name} in Avo\" }
1128
1146
  ) %></td>
1129
1147
  <% end %>
1130
- </tr></table>#{template_link}<%
1148
+ </tr><%= if (page_num = @#{table_name}._brick_page_num)
1149
+ \"<tr><td colspan=\\\"#\{td_count}\\\">Page #\{page_num}</td></tr>\".html_safe
1150
+ end %></table>#{template_link}<%
1131
1151
  if description.present? %><%=
1132
1152
  description %><br><%
1133
1153
  end
@@ -1162,6 +1182,7 @@ erDiagram
1162
1182
  });
1163
1183
  </script>
1164
1184
  <% end %>
1185
+ </div>
1165
1186
  #{erd_markup}
1166
1187
 
1167
1188
  <%= # Consider getting the name from the association -- hm.first.name -- if a more \"friendly\" alias should be used for a screwy table name
@@ -1327,7 +1348,7 @@ end
1327
1348
  options[:url] = send(\"#\{#{model_name}._brick_index(:singular)}_path\".to_sym, obj) if ::Brick.config.path_prefix
1328
1349
  %>
1329
1350
  <br><br>
1330
- <%= form_for(obj.becomes(#{model_name}), options) do |f| %>
1351
+ <%= form_for(obj.becomes(#{model_name}), options) do |f| %>
1331
1352
  <table class=\"shadow\">
1332
1353
  <% has_fields = false
1333
1354
  @#{obj_name}.attributes.each do |k, val|
@@ -1432,7 +1453,7 @@ end
1432
1453
  is_revert = false %>
1433
1454
  <% else %>
1434
1455
  <%= is_revert = false
1435
- display_value(col_type, val) %>
1456
+ display_value(col_type, val).html_safe %>
1436
1457
  <% end
1437
1458
  end
1438
1459
  if is_revert
@@ -1449,7 +1470,7 @@ end
1449
1470
  <tr><td colspan=\"2\">(No displayable fields)</td></tr>
1450
1471
  <% end %>
1451
1472
  </table>
1452
- <% end %>
1473
+ <% end %>
1453
1474
 
1454
1475
  #{unless args.first == 'new'
1455
1476
  # Was: confirm_are_you_sure = ActionView.version < ::Gem::Version.new('7.0') ? "data: { confirm: 'Delete #\{model_name} -- Are you sure?' }" : "form: { data: { turbo_confirm: 'Delete #\{model_name} -- Are you sure?' } }"
@@ -1538,7 +1559,7 @@ flatpickr(\".timepicker\", {enableTime: true, noCalendar: true});
1538
1559
  if (imgErd) imgErd.addEventListener(\"click\", showErd);
1539
1560
  function showErd() {
1540
1561
  imgErd.style.display = \"none\";
1541
- mermaidErd.style.display = \"inline-block\";
1562
+ mermaidErd.style.display = \"block\";
1542
1563
  if (mermaidCode) return; // Cut it short if we've already rendered the diagram
1543
1564
 
1544
1565
  mermaidCode = document.createElement(\"SCRIPT\");
@@ -56,85 +56,85 @@ module Brick::Rails::FormTags
56
56
  end
57
57
  out << "</tr></thead>
58
58
  <tbody>"
59
- # %%% Have once gotten this error with MSSQL referring to http://localhost:3000/warehouse/cold_room_temperatures__archive
60
- # ActiveRecord::StatementTimeout in Warehouse::ColdRoomTemperatures_Archive#index
61
- # TinyTds::Error: Adaptive Server connection timed out
62
- # (After restarting the server it worked fine again.)
63
- relation.each do |obj|
64
- out << "<tr>\n"
65
- out << "<td>#{link_to('⇛', send("#{klass._brick_index(:singular)}_path".to_sym,
66
- pk.map { |pk_part| obj.send(pk_part.to_sym) }), { class: 'big-arrow' })}</td>\n" if pk.present?
67
- sequence.each do |col_name|
68
- val = obj.attributes[col_name]
69
- out << '<td'
70
- out << ' class=\"dimmed\"' unless cols.key?(col_name) || (cust_col = cust_cols[col_name]) ||
71
- (col_name.is_a?(Symbol) && bts.key?(col_name)) # HOT
72
- out << '>'
73
- if (bt = bts[col_name])
74
- if bt[2] # Polymorphic?
75
- bt_class = obj.send("#{bt.first}_type")
76
- base_class_underscored = (::Brick.existing_stis[bt_class] || bt_class).constantize.base_class._brick_index(:singular)
77
- poly_id = obj.send("#{bt.first}_id")
78
- out << link_to("#{bt_class} ##{poly_id}", send("#{base_class_underscored}_path".to_sym, poly_id)) if poly_id
79
- else # BT or HOT
80
- bt_class = bt[1].first.first
81
- descrips = bt_descrip[bt.first][bt_class]
82
- bt_id_col = if descrips.nil?
83
- puts "Caught it in the act for obj / #{col_name}!"
84
- elsif descrips.length == 1
85
- [obj.class.reflect_on_association(bt.first)&.foreign_key]
86
- else
87
- descrips.last
88
- end
89
- bt_txt = bt_class.brick_descrip(
90
- # 0..62 because Postgres column names are limited to 63 characters
91
- obj, descrips[0..-2].map { |id| obj.send(id.last[0..62]) }, bt_id_col
92
- )
93
- bt_txt = display_binary(bt_txt).html_safe if bt_txt&.encoding&.name == 'ASCII-8BIT'
94
- bt_txt ||= "<span class=\"orphan\">&lt;&lt; Orphaned ID: #{val} >></span>" if val
95
- bt_id = bt_id_col&.map { |id_col| obj.respond_to?(id_sym = id_col.to_sym) ? obj.send(id_sym) : id_col }
96
- out << (bt_id&.first ? link_to(bt_txt, send("#{bt_class.base_class._brick_index(:singular)}_path".to_sym, bt_id)) : bt_txt || '')
97
- end
98
- elsif (hms_col = hms_cols[col_name])
99
- if hms_col.length == 1
100
- out << hms_col.first
101
- else
102
- hm_klass = (col = cols[col_name])[1]
103
- if col[2] == 'HO'
104
- descrips = bt_descrip[col_name.to_sym][hm_klass]
105
- if (ho_id = (ho_id_col = descrips.last).map { |id_col| obj.send(id_col.to_sym) })&.first
106
- ho_txt = hm_klass.brick_descrip(obj, descrips[0..-2].map { |id| obj.send(id.last[0..62]) }, ho_id_col)
107
- out << link_to(ho_txt, send("#{hm_klass.base_class._brick_index(:singular)}_path".to_sym, ho_id))
108
- end
59
+ # %%% Have once gotten this error with MSSQL referring to http://localhost:3000/warehouse/cold_room_temperatures__archive
60
+ # ActiveRecord::StatementTimeout in Warehouse::ColdRoomTemperatures_Archive#index
61
+ # TinyTds::Error: Adaptive Server connection timed out
62
+ # (After restarting the server it worked fine again.)
63
+ relation.each do |obj|
64
+ out << "<tr>\n"
65
+ out << "<td>#{link_to('⇛', send("#{klass._brick_index(:singular)}_path".to_sym,
66
+ pk.map { |pk_part| obj.send(pk_part.to_sym) }), { class: 'big-arrow' })}</td>\n" if pk.present?
67
+ sequence.each do |col_name|
68
+ val = obj.attributes[col_name]
69
+ out << '<td'
70
+ out << ' class=\"dimmed\"' unless cols.key?(col_name) || (cust_col = cust_cols[col_name]) ||
71
+ (col_name.is_a?(Symbol) && bts.key?(col_name)) # HOT
72
+ out << '>'
73
+ if (bt = bts[col_name])
74
+ if bt[2] # Polymorphic?
75
+ bt_class = obj.send("#{bt.first}_type")
76
+ base_class_underscored = (::Brick.existing_stis[bt_class] || bt_class).constantize.base_class._brick_index(:singular)
77
+ poly_id = obj.send("#{bt.first}_id")
78
+ out << link_to("#{bt_class} ##{poly_id}", send("#{base_class_underscored}_path".to_sym, poly_id)) if poly_id
79
+ else # BT or HOT
80
+ bt_class = bt[1].first.first
81
+ descrips = bt_descrip[bt.first][bt_class]
82
+ bt_id_col = if descrips.nil?
83
+ puts "Caught it in the act for obj / #{col_name}!"
84
+ elsif descrips.length == 1
85
+ [obj.class.reflect_on_association(bt.first)&.foreign_key]
86
+ else
87
+ descrips.last
88
+ end
89
+ bt_txt = bt_class.brick_descrip(
90
+ # 0..62 because Postgres column names are limited to 63 characters
91
+ obj, descrips[0..-2].map { |id| obj.send(id.last[0..62]) }, bt_id_col
92
+ )
93
+ bt_txt = display_binary(bt_txt).html_safe if bt_txt&.encoding&.name == 'ASCII-8BIT'
94
+ bt_txt ||= "<span class=\"orphan\">&lt;&lt; Orphaned ID: #{val} >></span>" if val
95
+ bt_id = bt_id_col&.map { |id_col| obj.respond_to?(id_sym = id_col.to_sym) ? obj.send(id_sym) : id_col }
96
+ out << (bt_id&.first ? link_to(bt_txt, send("#{bt_class.base_class._brick_index(:singular)}_path".to_sym, bt_id)) : bt_txt || '')
97
+ end
98
+ elsif (hms_col = hms_cols[col_name])
99
+ if hms_col.length == 1
100
+ out << hms_col.first
109
101
  else
110
- if (ct = obj.send(hms_col[1].to_sym)&.to_i)&.positive?
111
- out << "#{link_to("#{ct || 'View'} #{hms_col.first}",
112
- send("#{hm_klass._brick_index}_path".to_sym,
113
- hms_col[2].each_with_object({}) { |v, s| s[v.first] = v.last.is_a?(String) ? v.last : obj.send(v.last) })
114
- )}\n"
102
+ hm_klass = (col = cols[col_name])[1]
103
+ if col[2] == 'HO'
104
+ descrips = bt_descrip[col_name.to_sym][hm_klass]
105
+ if (ho_id = (ho_id_col = descrips.last).map { |id_col| obj.send(id_col.to_sym) })&.first
106
+ ho_txt = hm_klass.brick_descrip(obj, descrips[0..-2].map { |id| obj.send(id.last[0..62]) }, ho_id_col)
107
+ out << link_to(ho_txt, send("#{hm_klass.base_class._brick_index(:singular)}_path".to_sym, ho_id))
108
+ end
109
+ else
110
+ if (ct = obj.send(hms_col[1].to_sym)&.to_i)&.positive?
111
+ out << "#{link_to("#{ct || 'View'} #{hms_col.first}",
112
+ send("#{hm_klass._brick_index}_path".to_sym,
113
+ hms_col[2].each_with_object({}) { |v, s| s[v.first] = v.last.is_a?(String) ? v.last : obj.send(v.last) })
114
+ )}\n"
115
+ end
115
116
  end
116
117
  end
118
+ elsif (col = cols[col_name]).is_a?(ActiveRecord::ConnectionAdapters::Column)
119
+ binding.pry if col.is_a?(Array)
120
+ col_type = col&.sql_type == 'geography' ? col.sql_type : col&.type
121
+ out << display_value(col_type || col&.sql_type, val).to_s
122
+ elsif cust_col
123
+ data = cust_col.first.map { |cc_part| obj.send(cc_part.last) }
124
+ cust_txt = klass.brick_descrip(cust_col[-2], data)
125
+ if (link_id = obj.send(cust_col.last[1]) if cust_col.last)
126
+ out << link_to(cust_txt, send("#{cust_col.last.first._brick_index(:singular)}_path", link_id))
127
+ else
128
+ out << (cust_txt || '')
129
+ end
130
+ else # Bad column name!
131
+ out << '?'
117
132
  end
118
- elsif (col = cols[col_name]).is_a?(ActiveRecord::ConnectionAdapters::Column)
119
- binding.pry if col.is_a?(Array)
120
- col_type = col&.sql_type == 'geography' ? col.sql_type : col&.type
121
- out << display_value(col_type || col&.sql_type, val).to_s
122
- elsif cust_col
123
- data = cust_col.first.map { |cc_part| obj.send(cc_part.last) }
124
- cust_txt = klass.brick_descrip(cust_col[-2], data)
125
- if (link_id = obj.send(cust_col.last[1]) if cust_col.last)
126
- out << link_to(cust_txt, send("#{cust_col.last.first._brick_index(:singular)}_path", link_id))
127
- else
128
- out << (cust_txt || '')
129
- end
130
- else # Bad column name!
131
- out << '?'
133
+ out << '</td>'
132
134
  end
133
- out << '</td>'
135
+ out << '</tr>'
134
136
  end
135
- out << '</tr>'
136
- end
137
- out << " </tbody>
137
+ out << " </tbody>
138
138
  </table>
139
139
  "
140
140
  out.html_safe
@@ -143,6 +143,16 @@ module Brick::Rails::FormTags
143
143
  def link_to_brick(*args, **kwargs)
144
144
  return unless ::Brick.config.mode == :on
145
145
 
146
+ kwargs.merge!(args.pop) if args.last.is_a?(Hash)
147
+ # Avoid infinite recursion
148
+ if (visited = kwargs.fetch(:visited, nil))
149
+ return if visited.key?(object_id)
150
+
151
+ kwargs[:visited][object_id] = nil
152
+ else
153
+ kwargs[:visited] = {}
154
+ end
155
+
146
156
  text = ((args.first.is_a?(String) || args.first.is_a?(Proc)) && args.shift) || args[1]
147
157
  text = text.call if text.is_a?(Proc)
148
158
  klass_or_obj = ((args.first.is_a?(ActiveRecord::Relation) ||
@@ -192,13 +202,14 @@ module Brick::Rails::FormTags
192
202
  app_routes = Rails.application.routes # In case we're operating in another engine, reference the application since Brick routes are placed there.
193
203
  if (klass_or_obj&.is_a?(Class) && klass_or_obj < ActiveRecord::Base) ||
194
204
  (klass_or_obj&.is_a?(ActiveRecord::Base) && klass_or_obj.new_record? && (klass_or_obj = klass_or_obj.class))
195
- path = (proc = kwargs[:index_proc]) ? proc.call(klass_or_obj) : "#{app_routes.path_for(controller: klass_or_obj.base_class._brick_index, action: :index)}#{filter}"
205
+ path = (proc = kwargs[:index_proc]) ? proc.call(klass_or_obj) : "#{app_routes.path_for(controller: klass_or_obj.base_class._brick_index(nil, '/'), action: :index)}#{filter}"
196
206
  lt_args = [text || "Index for #{klass_or_obj.name.pluralize}", path]
197
207
  else
198
208
  # If there are multiple incoming parameters then last one is probably the actual ID, and first few might be some nested tree of stuff leading up to it
199
- path = (proc = kwargs[:show_proc]) ? proc.call(klass_or_obj) : "#{app_routes.path_for(controller: klass_or_obj.class.base_class._brick_index, action: :show, id: klass_or_obj)}#{filter}"
209
+ path = (proc = kwargs[:show_proc]) ? proc.call(klass_or_obj) : "#{app_routes.path_for(controller: klass_or_obj.class.base_class._brick_index(nil, '/'), action: :show, id: klass_or_obj)}#{filter}"
200
210
  lt_args = [text || "Show this #{klass_or_obj.class.name}", path]
201
211
  end
212
+ kwargs.delete(:visited)
202
213
  link_to(*lt_args, **kwargs)
203
214
  else
204
215
  # puts "Warning: link_to_brick could not find a class for \"#{controller_path}\" -- consider setting @_brick_model within that controller."
@@ -215,7 +226,7 @@ module Brick::Rails::FormTags
215
226
  if links.length == 1 # If there's only one match then use any text that was supplied
216
227
  link_to_brick(text || links.first.last.join('/'), links.first.first, **kwargs)
217
228
  else
218
- links.map { |k, v| link_to_brick(v.join('/'), v, **kwargs) }.join(' &nbsp; ').html_safe
229
+ links.each_with_object([]) { |v, s| s << link if link = link_to_brick(v.join('/'), v, **kwargs) }.join(' &nbsp; ').html_safe
219
230
  end
220
231
  end
221
232
  end # link_to_brick
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 103
8
+ TINY = 104
9
9
 
10
10
  # PRE is nil unless it's a pre-release (beta, RC, etc.)
11
11
  PRE = nil
@@ -288,16 +288,18 @@ if ActiveRecord::Base.respond_to?(:brick_select)
288
288
 
289
289
  # # POLYMORPHIC ASSOCIATIONS
290
290
 
291
- # # Database schema to use when analysing existing data, such as deriving a list of polymorphic classes in the case that
292
- # # it wasn't originally specified.
291
+ # # Polymorphic associations are set up by providing a model name and polymorphic association name#{poly}
292
+
293
+ # # For multi-tenant databases that use a separate schema for each tenant, a single representative database schema
294
+ # # can be analysed to determine the range of polymorphic classes that can be used for each association. Hopefully
295
+ # # the schema chosen is one loaded with existing data that is representative of all possible polymorphic
296
+ # # associations.
293
297
  # Brick.schema_behavior = :namespaced
294
298
  #{Brick.config.schema_behavior.present? ? " Brick.schema_behavior = { multitenant: { schema_to_analyse: #{
295
299
  Brick.config.schema_behavior[:multitenant]&.fetch(:schema_to_analyse, nil).inspect}" :
296
300
  " # Brick.schema_behavior = { multitenant: { schema_to_analyse: 'engineering'"
297
301
  } } }
298
302
 
299
- # # Polymorphic associations are set up by providing a model name and polymorphic association name#{poly}
300
-
301
303
  # # DEFAULT ROOT ROUTE
302
304
 
303
305
  # # If a default route is not supplied, Brick attempts to find the most \"central\" table and wires up the default
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brick
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.103
4
+ version: 1.0.104
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorin Thwaits
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-09 00:00:00.000000000 Z
11
+ date: 2023-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -164,20 +164,6 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.42.0
167
- - !ruby/object:Gem::Dependency
168
- name: mysql2
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.5'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '0.5'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: pg
183
169
  requirement: !ruby/object:Gem::Requirement