brick 1.0.35 → 1.0.36

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: 34a23d1057771acea1beb9ea1ea2ff3d27e5983084bcd47f4c87686af77328d5
4
- data.tar.gz: 44aea0d5fb92a361913ba4a17ebca62cf5be9aca5585fa9785b7c388c2652cee
3
+ metadata.gz: 6ef930474d4e1496812af0a626f57a2db1b05396c2dc46eb8f117c6fbf2f4df5
4
+ data.tar.gz: 8847971321e1a6178b340ef6929298d2d33edb1a1918584c43d67edc5b844a39
5
5
  SHA512:
6
- metadata.gz: e9124cbd0db47816db2dcbf59a76adcc0d4dcaea8f4ad02ea9ee99aace025c8914a7871c78a4a703f4daeced7dbaec12d52fdf56b6bc131c4c855be931d4f838
7
- data.tar.gz: 671d0333b9a89870db67cdec05306311475724d674aab494c794baa0648736c873ea2aade170bdbc51642b96e4fe76a19f568bf31e724bd513230e1a78c69521
6
+ metadata.gz: cba480c932d00067c122b99d22f2633d8b26795295a4039a4c6ac014893ed0e4313ac33571cad06a880d9cbf426627e766c2b13514e7bf7b81093acc723aa425
7
+ data.tar.gz: 75aa1e29cd0619bf9654df74a4f36625b1b703bd307b9f72439e4ce9e25f0b80bd9fb10b4fe6f2eadf70effcf28849e1a513c1745d48b31000d33e8948ab555c
@@ -1108,9 +1108,11 @@ module ActiveRecord::ConnectionHandling
1108
1108
  # Only for Postgres? (Doesn't work in sqlite3)
1109
1109
  # puts ActiveRecord::Base.execute_sql("SELECT current_setting('SEARCH_PATH')").to_a.inspect
1110
1110
 
1111
+ is_postgres = nil
1111
1112
  schema_sql = 'SELECT NULL AS table_schema;'
1112
1113
  case ActiveRecord::Base.connection.adapter_name
1113
1114
  when 'PostgreSQL'
1115
+ is_postgres = true
1114
1116
  if (is_multitenant = (multitenancy = ::Brick.config.schema_behavior[:multitenant]) &&
1115
1117
  (sta = multitenancy[:schema_to_analyse]) != 'public')
1116
1118
  ::Brick.default_schema = schema = sta
@@ -1158,7 +1160,8 @@ module ActiveRecord::ConnectionHandling
1158
1160
  # %%% Retrieve internal ActiveRecord table names like this:
1159
1161
  # ActiveRecord::Base.internal_metadata_table_name, ActiveRecord::Base.schema_migrations_table_name
1160
1162
  # For if it's not SQLite -- so this is the Postgres and MySQL version
1161
- sql ||= "SELECT t.table_schema AS schema, t.table_name AS relation_name, t.table_type,
1163
+ sql ||= "SELECT t.table_schema AS schema, t.table_name AS relation_name, t.table_type,#{"
1164
+ pg_catalog.obj_description((t.table_schema || '.' || t.table_name)::regclass, 'pg_class') AS table_description," if is_postgres}
1162
1165
  c.column_name, c.data_type,
1163
1166
  COALESCE(c.character_maximum_length, c.numeric_precision) AS max_length,
1164
1167
  tc.constraint_type AS const, kcu.constraint_name AS \"key\",
@@ -1197,6 +1200,7 @@ module ActiveRecord::ConnectionHandling
1197
1200
  relation_name = schema_name ? "#{schema_name}.#{r['relation_name']}" : r['relation_name']
1198
1201
  relation = relations[relation_name]
1199
1202
  relation[:isView] = true if r['table_type'] == 'VIEW'
1203
+ relation[:description] = r['table_description'] if r['table_description']
1200
1204
  col_name = r['column_name']
1201
1205
  key = case r['const']
1202
1206
  when 'PRIMARY KEY'
@@ -415,18 +415,19 @@ function changeout(href, param, value, trimAfter) {
415
415
  end
416
416
  # %%% Instead of our current "for Janet Leverling (Employee)" kind of link we previously had this code that did a "where x = 123" thing:
417
417
  # (where <%= @_brick_params.each_with_object([]) { |v, s| s << \"#\{v.first\} = #\{v.last.inspect\}\" }.join(', ') %>)
418
- "#{css}
418
+ x = "#{css}
419
419
  <p style=\"color: green\"><%= notice %></p>#{"
420
420
  <select id=\"schema\">#{schema_options}</select>" if ::Brick.config.schema_behavior[:multitenant] && ::Brick.db_schemas.length > 1}
421
421
  <select id=\"tbl\">#{table_options}</select>
422
- <h1>#{model_plural = model_name.pluralize}</h1>#{template_link}
423
-
424
- <% if @_brick_params&.present? %>
422
+ <h1>#{model_plural = model_name.pluralize}</h1>#{template_link}<%
423
+ if (relation = Brick.relations[#{model_name}.table_name])[:description] %><%=
424
+ relation.fetch(:description, nil) %><br><%
425
+ end
426
+ if @_brick_params&.present? %>
425
427
  <% if @_brick_params.length == 1 # %%% Does not yet work with composite keys
426
428
  k, id = @_brick_params.first
427
429
  id = id.first if id.is_a?(Array) && id.length == 1
428
430
  origin = (key_parts = k.split('.')).length == 1 ? #{model_name} : #{model_name}.reflect_on_association(key_parts.first).klass
429
- # binding.pry
430
431
  if (destination_fk = Brick.relations[origin.table_name][:fks].values.find { |fk| puts fk.inspect; fk[:fk] == key_parts.last }) &&
431
432
  (obj = (destination = origin.reflect_on_association(destination_fk[:assoc_name])&.klass)&.find(id)) %>
432
433
  <h3>for <%= link_to \"#{"#\{obj.brick_descrip\} (#\{destination.name\})\""}, send(\"#\{destination.name.underscore.tr('/', '_')\}_path\".to_sym, id) %></h3><%
@@ -436,19 +437,23 @@ function changeout(href, param, value, trimAfter) {
436
437
  <% end %>
437
438
  <table id=\"#{table_name}\">
438
439
  <thead><tr>#{'<th></th>' if pk.present?}
439
- <% @#{table_name}.columns.map(&:name).each do |col| %>
440
- <% next if (#{(pk || []).inspect}.include?(col) && #{model_name}.column_for_attribute(col).type == :integer && !bts.key?(col)) ||
441
- ::Brick.config.metadata_columns.include?(col) || poly_cols.include?(col) %>
442
- <th>
443
- <% if (bt = bts[col]) %>
440
+ <% col_order = []
441
+ @#{table_name}.columns.each do |col|
442
+ col_name = col.name
443
+ next if (#{(pk || []).inspect}.include?(col_name) && col.type == :integer && !bts.key?(col_name)) ||
444
+ ::Brick.config.metadata_columns.include?(col_name) || poly_cols.include?(col_name)
445
+
446
+ col_order << col_name %>
447
+ <th<%= \" title = \\\"#\{col.comment}\\\"\".html_safe unless col.comment.blank? %>><%
448
+ if (bt = bts[col_name]) %>
444
449
  BT <%
445
450
  bt[1].each do |bt_pair| %><%=
446
451
  bt_pair.first.bt_link(bt.first) %> <%
447
452
  end %><%
448
453
  else %><%=
449
- col %><%
450
- end %>
451
- </th>
454
+ col_name %><%
455
+ end
456
+ %></th>
452
457
  <% end %>
453
458
  <%# Consider getting the name from the association -- h.first.name -- if a more \"friendly\" alias should be used for a screwy table name %>
454
459
  #{hms_headers.map { |h| "<th>#{h[1]} <%= link_to('#{h[2]}', #{h.first.klass.name.underscore.tr('/', '_').pluralize}_path) %></th>\n" }.join}
@@ -458,11 +463,10 @@ function changeout(href, param, value, trimAfter) {
458
463
  <% @#{table_name}.each do |#{obj_name}| %>
459
464
  <tr>#{"
460
465
  <td><%= link_to '⇛', #{path_obj_name}_path(#{obj_pk}), { class: 'big-arrow' } %></td>" if obj_pk}
461
- <% #{obj_name}.attributes.each do |k, val| %>
462
- <% next if (#{(obj_pk || []).inspect}.include?(k) && #{model_name}.column_for_attribute(k).type == :integer && !bts.key?(k)) ||
463
- ::Brick.config.metadata_columns.include?(k) || poly_cols.include?(k) || k.start_with?('_brfk_') || (k.start_with?('_br_') && (k.length == 63 || k.end_with?('_ct'))) %>
466
+ <% col_order.each do |col_name|
467
+ val = #{obj_name}.attributes[col_name] %>
464
468
  <td>
465
- <% if (bt = bts[k]) %>
469
+ <% if (bt = bts[col_name]) %>
466
470
  <% if bt[2] # Polymorphic?
467
471
  bt_class = #{obj_name}.send(\"#\{bt.first\}_type\")
468
472
  base_class = (::Brick.existing_stis[bt_class] || bt_class).constantize.base_class.name.underscore
@@ -491,13 +495,18 @@ function changeout(href, param, value, trimAfter) {
491
495
 
492
496
  #{"<hr><%= link_to \"New #{obj_name}\", new_#{path_obj_name}_path %>" unless @_brick_model.is_view?}
493
497
  #{script}"
498
+ puts x
499
+ x
494
500
  when 'show', 'update'
495
501
  "#{css}
496
502
  <p style=\"color: green\"><%= notice %></p>#{"
497
503
  <select id=\"schema\">#{schema_options}</select>" if ::Brick.config.schema_behavior[:multitenant] && ::Brick.db_schemas.length > 1}
498
504
  <select id=\"tbl\">#{table_options}</select>
499
- <h1>#{model_name}: <%= (obj = @#{obj_name})&.brick_descrip || controller_name %></h1>
500
- <%= link_to '(See all #{obj_name.pluralize})', #{path_obj_name.pluralize}_path %>
505
+ <h1>#{model_name}: <%= (obj = @#{obj_name})&.brick_descrip || controller_name %></h1><%
506
+ if (relation = Brick.relations[#{model_name}.table_name])[:description] %><%=
507
+ relation.fetch(:description, nil) %><br><%
508
+ end
509
+ %><%= link_to '(See all #{obj_name.pluralize})', #{path_obj_name.pluralize}_path %>
501
510
  <% if obj %>
502
511
  <%= # path_options = [obj.#{pk}]
503
512
  # path_options << { '_brick_schema': } if
@@ -505,11 +514,12 @@ function changeout(href, param, value, trimAfter) {
505
514
  form_for(obj.becomes(#{model_name})) do |f| %>
506
515
  <table>
507
516
  <% has_fields = false
508
- @#{obj_name}.attributes.each do |k, val| %>
517
+ @#{obj_name}.attributes.each do |k, val|
518
+ col = #{model_name}.columns_hash[k] %>
509
519
  <tr>
510
520
  <% next if (#{(pk || []).inspect}.include?(k) && !bts.key?(k)) ||
511
521
  ::Brick.config.metadata_columns.include?(k) %>
512
- <th class=\"show-field\">
522
+ <th class=\"show-field\"<%= \" title = \\\"#\{col.comment}\\\"\".html_safe unless col.comment.blank? %>>
513
523
  <% has_fields = true
514
524
  if (bt = bts[k])
515
525
  # Add a final member in this array with descriptive options to be used in <select> drop-downs
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 35
8
+ TINY = 36
9
9
 
10
10
  # PRE is nil unless it's a pre-release (beta, RC, etc.)
11
11
  PRE = nil
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.35
4
+ version: 1.0.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorin Thwaits
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-25 00:00:00.000000000 Z
11
+ date: 2022-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord