brick 1.0.28 → 1.0.29

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab7e6a8198638a0e6d3cde289db17d107e699fad2b4b5a200703cb1982d19569
4
- data.tar.gz: 708360bb9463e45c8f7fece60dc762dc65b2b3893d8044ffce9ee87e33f63b80
3
+ metadata.gz: 1a312c2fd5baf0793b4bb4143167b4399c70a514991206a611d525d0784de95b
4
+ data.tar.gz: bb1af47d2d073dab2c046ff9757fb5db9447f02dd0688330ad7ac8ad678d6751
5
5
  SHA512:
6
- metadata.gz: 92229661eff9aac30ec7fad96603bc649a122131956e8632562e22d11c8bae67db0272ec5453ab2cc233bd11f7ab72222c3520f2acceecb83e35d4c54cbd8f4d
7
- data.tar.gz: ddc169b2effaf58e60861d0153f191f6f1e2f11d459363a000da2c1f44c1583c8cd037f78269c238a84de58e04d7633c7a7ecbf046c08ef48fdaf5fb01de76a3
6
+ metadata.gz: dbfabaf60608b2094e9903cb538bab00706f434f94289b9647320bb128adf0b34317a6404ace34897cf4b2f91700ebd7c028a12b4072ba1ebf9de3380f75add3
7
+ data.tar.gz: 6e5444ac763c71de71fc1aca64cdb41db6276f1df57f5b556b03bad0b743373f2720865ba7c6ce36f9887d77ffee3b091f32d233121742c4786ca21e8d512705
@@ -72,7 +72,11 @@ module ActiveRecord
72
72
 
73
73
  pk = primary_key.is_a?(String) ? [primary_key] : primary_key || []
74
74
  # Just return [] if we're missing any part of the primary key. (PK is usually just "id")
75
- @_brick_primary_key ||= pk.any? { |pk_part| !relation[:cols].key?(pk_part) } ? [] : pk
75
+ if relation && pk.present?
76
+ @_brick_primary_key ||= pk.any? { |pk_part| !relation[:cols].key?(pk_part) } ? [] : pk
77
+ else # No definitive key yet, so return what we can without setting the instance variable
78
+ pk
79
+ end
76
80
  end
77
81
 
78
82
  # Used to show a little prettier name for an object
@@ -303,7 +307,7 @@ module ActiveRecord
303
307
  # %%% Skip the metadata columns
304
308
  if selects&.empty? # Default to all columns
305
309
  columns.each do |col|
306
- selects << "#{table.name}.#{col.name}"
310
+ selects << "\"#{table.name}\".\"#{col.name}\""
307
311
  end
308
312
  end
309
313
 
@@ -361,7 +365,7 @@ module ActiveRecord
361
365
  v1.map { |x| [translations[x[0..-2].map(&:to_s).join('.')], x.last] }.each_with_index do |sel_col, idx|
362
366
  field_tbl_name = field_tbl_names[v.first][sel_col.first] ||= shift_or_first(chains[sel_col.first])
363
367
 
364
- selects << "#{"#{field_tbl_name}.#{sel_col.last}"} AS \"#{(col_alias = "_brfk_#{v.first}__#{sel_col.last}")}\""
368
+ selects << "#{"\"#{field_tbl_name}\".\"#{sel_col.last}\""} AS \"#{(col_alias = "_brfk_#{v.first}__#{sel_col.last}")}\""
365
369
  v1[idx] << col_alias
366
370
  end
367
371
 
@@ -369,7 +373,7 @@ module ActiveRecord
369
373
  # Accommodate composite primary key by allowing id_col to come in as an array
370
374
  ((id_col = k1.primary_key).is_a?(Array) ? id_col : [id_col]).each do |id_part|
371
375
  id_for_tables[v.first] << if id_part
372
- selects << "#{"#{tbl_name}.#{id_part}"} AS \"#{(id_alias = "_brfk_#{v.first}__#{id_part}")}\""
376
+ selects << "#{"\"#{tbl_name}\".\"#{id_part}\""} AS \"#{(id_alias = "_brfk_#{v.first}__#{id_part}")}\""
373
377
  id_alias
374
378
  end
375
379
  end
@@ -610,6 +614,7 @@ class Object
610
614
  new_model_class.primary_key = (pk_sym = our_pks.first.to_sym)
611
615
  code << " self.primary_key = #{pk_sym.inspect}\n"
612
616
  end
617
+ _brick_primary_key(relation) # Set the newly-found PK in the instance variable
613
618
  else
614
619
  code << " # Could not identify any column(s) to use as a primary key\n" unless is_view
615
620
  end
@@ -751,7 +756,7 @@ class Object
751
756
  def build_controller(class_name, plural_class_name, model, relations)
752
757
  table_name = ActiveSupport::Inflector.underscore(plural_class_name)
753
758
  singular_table_name = ActiveSupport::Inflector.singularize(table_name)
754
- pk = model._brick_primary_key(relations[table_name])
759
+ pk = model._brick_primary_key(relations.fetch(table_name, nil))
755
760
 
756
761
  code = +"class #{class_name} < ApplicationController\n"
757
762
  built_controller = Class.new(ActionController::Base) do |new_controller_class|
@@ -83,7 +83,7 @@ module Brick
83
83
  return _brick_find_template(*args, **options) unless @_brick_model
84
84
 
85
85
  model_name = @_brick_model.name
86
- pk = @_brick_model._brick_primary_key(::Brick.relations[model_name])
86
+ pk = @_brick_model._brick_primary_key(::Brick.relations.fetch(model_name, nil))
87
87
  obj_name = model_name.underscore
88
88
  table_name = model_name.pluralize.underscore
89
89
  template_link = nil
@@ -207,7 +207,13 @@ input[type=submit] {
207
207
  val.is_a?(String) && val.length == 60 && val.start_with?('$2a$')
208
208
  end
209
209
  def hide_bcrypt(val)
210
- is_bcrypt?(val) ? '(hidden)' : val
210
+ if is_bcrypt?(val)
211
+ '(hidden)'
212
+ elsif val.is_a?(String) && val.encoding.name != 'UTF-8'
213
+ val[0..1000].force_encoding('UTF-8')
214
+ else
215
+ val
216
+ end
211
217
  end %>"
212
218
 
213
219
  if ['index', 'show', 'update'].include?(args.first)
@@ -388,7 +394,7 @@ function changeout(href, param, value) {
388
394
  <table id=\"#{table_name}\">
389
395
  <thead><tr>#{'<th></th>' if pk.present?}
390
396
  <% @#{table_name}.columns.map(&:name).each do |col| %>
391
- <% next if #{pk.inspect}.include?(col) || ::Brick.config.metadata_columns.include?(col) || poly_cols.include?(col) %>
397
+ <% next if #{(pk || []).inspect}.include?(col) || ::Brick.config.metadata_columns.include?(col) || poly_cols.include?(col) %>
392
398
  <th>
393
399
  <% if (bt = bts[col]) %>
394
400
  BT <%
@@ -409,7 +415,7 @@ function changeout(href, param, value) {
409
415
  <tr>#{"
410
416
  <td><%= link_to '⇛', #{obj_name}_path(#{obj_pk}), { class: 'big-arrow' } %></td>" if obj_pk}
411
417
  <% #{obj_name}.attributes.each do |k, val| %>
412
- <% next if #{obj_pk.inspect}.include?(k) || ::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'))) %>
418
+ <% next if #{(obj_pk || []).inspect}.include?(k) || ::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'))) %>
413
419
  <td>
414
420
  <% if (bt = bts[k]) %>
415
421
  <%# binding.pry # Postgres column names are limited to 63 characters %>
@@ -456,8 +462,7 @@ function changeout(href, param, value) {
456
462
  <% has_fields = false
457
463
  @#{obj_name}.attributes.each do |k, val| %>
458
464
  <tr>
459
- <%# %%% Accommodate composite keys %>
460
- <% next if #{pk}.include?(k) || ::Brick.config.metadata_columns.include?(k) %>
465
+ <% next if #{(pk || []).inspect}.include?(k) || ::Brick.config.metadata_columns.include?(k) %>
461
466
  <th class=\"show-field\">
462
467
  <% has_fields = true
463
468
  if (bt = bts[k])
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 28
8
+ TINY = 29
9
9
 
10
10
  # PRE is nil unless it's a pre-release (beta, RC, etc.)
11
11
  PRE = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brick
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.28
4
+ version: 1.0.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorin Thwaits