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 +4 -4
 - data/lib/brick/extensions.rb +5 -1
 - data/lib/brick/frameworks/rails/engine.rb +31 -21
 - data/lib/brick/version_number.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6ef930474d4e1496812af0a626f57a2db1b05396c2dc46eb8f117c6fbf2f4df5
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 8847971321e1a6178b340ef6929298d2d33edb1a1918584c43d67edc5b844a39
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: cba480c932d00067c122b99d22f2633d8b26795295a4039a4c6ac014893ed0e4313ac33571cad06a880d9cbf426627e766c2b13514e7bf7b81093acc723aa425
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 75aa1e29cd0619bf9654df74a4f36625b1b703bd307b9f72439e4ce9e25f0b80bd9fb10b4fe6f2eadf70effcf28849e1a513c1745d48b31000d33e8948ab555c
         
     | 
    
        data/lib/brick/extensions.rb
    CHANGED
    
    | 
         @@ -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 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
              <%  
     | 
| 
       440 
     | 
    
         
            -
             
     | 
| 
       441 
     | 
    
         
            -
             
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
                      
     | 
| 
       450 
     | 
    
         
            -
                   end 
     | 
| 
       451 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
                <%  
     | 
| 
       462 
     | 
    
         
            -
             
     | 
| 
       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[ 
     | 
| 
      
 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 
     | 
    
         
            -
             
     | 
| 
      
 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
         
     | 
    
        data/lib/brick/version_number.rb
    CHANGED
    
    
    
        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. 
     | 
| 
      
 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- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-06-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activerecord
         
     |