brick 1.0.114 → 1.0.115

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: 5006a6dabf5c9e86965e57a40ae344f9d67c2fc5e76caec8a00e978117089062
4
- data.tar.gz: 5bd0fef75e305514b4ef22e4930660cdbf9385c22b07ee92d6eb77a626a13943
3
+ metadata.gz: 6e92e1445b603e8611ad927b8864b6ff04fd819d2f2243051d109d0894838e0d
4
+ data.tar.gz: b76bc7adf85927a5ff4988027a0d7ff1d40b84d4a80531d23390867bcca0fc5e
5
5
  SHA512:
6
- metadata.gz: b0621761d15baec575a9cd16fdb1b22e9a1d4784308c071d9878121ac841f6cf7419cb6fbcc210afad2ce98a69814c27279dc951a5d84750e7573e203d2f806a
7
- data.tar.gz: ed4b5c992076b4f28c85ab8af48bab847ab80105f2999371475529219cc6b0053444dc722a700d686fc7ed7ea39d3d939cb448c43d798bde18a0b5cfd80be23e
6
+ metadata.gz: 9caa3d9fdbc5229123058ec526482bf4c6926c42a44012d974a26d4f94f6f0e2f1dd2040ee76b1fbec21e431ea479694030365a1982878c6100245a607803260
7
+ data.tar.gz: 0e09bb3d9556bc8b4a442eccc9f19a374684c901dc0f9769030313ebdc57248f31a994e5deb7dbde394f066187b961eab169545e3466ab0851cb6df7636c62f1
@@ -972,7 +972,10 @@ Module.class_exec do
972
972
  end
973
973
  # puts "#{self.name} - #{args.first}"
974
974
  desired_classname = (self == Object || !name) ? requested : "#{name}::#{requested}"
975
- if ((is_defined = self.const_defined?(args.first)) && (possible = self.const_get(args.first)) && possible.name == desired_classname) ||
975
+ if ((is_defined = self.const_defined?(args.first)) && (possible = self.const_get(args.first)) &&
976
+ # Reset `possible` if it's a controller request that's not a perfect match
977
+ # Was: (possible = nil) but changed to #local_variable_set in order to suppress the "= should be ==" warning
978
+ (possible.name == desired_classname || (is_controller && binding.local_variable_set(:possible, nil)))) ||
976
979
  # Try to require the respective Ruby file
977
980
  ((filename = ActiveSupport::Dependencies.search_for_file(desired_classname.underscore) ||
978
981
  (self != Object && ActiveSupport::Dependencies.search_for_file((desired_classname = requested).underscore))
@@ -983,7 +986,7 @@ Module.class_exec do
983
986
  # then return what we've found.
984
987
  (is_defined && !::Brick.is_eager_loading) # Used to also have: && possible != self
985
988
  if (!brick_root && (filename || possible.instance_of?(Class))) ||
986
- (possible.instance_of?(Module) && possible.module_parent == self) ||
989
+ (possible.instance_of?(Module) && possible&.module_parent == self) ||
987
990
  (possible.instance_of?(Class) && possible == self) # Are we simply searching for ourselves?
988
991
  return possible
989
992
  end
@@ -82,6 +82,15 @@ function linkSchemas() {
82
82
  }
83
83
  };
84
84
  "
85
+ BRICK_SVG = "<svg version=\"1.1\" style=\"display: inline; padding-left: 0.5em;\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
86
+ viewBox=\"0 0 58 58\" height=\"1.4em\" xml:space=\"preserve\">
87
+ <g>
88
+ <polygon style=\"fill:#C2615F;\" points=\"58,15.831 19.106,35.492 0,26.644 40,6\"/>
89
+ <polygon style=\"fill:#6D4646;\" points=\"19,52 0,43.356 0,26.644 19,35\"/>
90
+ <polygon style=\"fill:#894747;\" points=\"58,31.559 19,52 19,35 58,15.831\"/>
91
+ </g>
92
+ </svg>
93
+ ".html_safe
85
94
 
86
95
  # paths['app/models'] << 'lib/brick/frameworks/active_record/models'
87
96
  config.brick = ActiveSupport::OrderedOptions.new
@@ -246,15 +255,7 @@ window.addEventListener(\"popstate\", linkSchemas);
246
255
  end
247
256
  def to_s
248
257
  @_name.to_s.html_safe + @vc.instance_variable_get(:@__vc_helpers)&.link_to_brick(nil,
249
- "<svg version=\"1.1\" style=\"display: inline; padding-left: 0.5em;\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
250
- viewBox=\"0 0 58 58\" height=\"1.4em\" xml:space=\"preserve\">
251
- <g>
252
- <polygon style=\"fill:#C2615F;\" points=\"58,15.831 19.106,35.492 0,26.644 40,6\"/>
253
- <polygon style=\"fill:#6D4646;\" points=\"19,52 0,43.356 0,26.644 19,35\"/>
254
- <polygon style=\"fill:#894747;\" points=\"58,31.559 19,52 19,35 58,15.831\"/>
255
- </g>
256
- </svg>
257
- ".html_safe,
258
+ BRICK_SVG,
258
259
  { title: "#{@_name} in Brick" }
259
260
  )
260
261
  end
@@ -298,7 +299,14 @@ window.addEventListener(\"popstate\", linkSchemas);
298
299
  )
299
300
  nil
300
301
  else # This is either a non-Avo request or a proper Avo request, so carry on
301
- _brick_url_for(options, *args)
302
+ begin
303
+ _brick_url_for(options, *args)
304
+ rescue
305
+ # Last-ditch effort in case we were in yet a different RouteSet
306
+ unless (rar = ::Rails.application.routes) == self
307
+ rar.url_for(options, *args)
308
+ end
309
+ end
302
310
  end
303
311
  end
304
312
  end
@@ -314,14 +322,34 @@ window.addEventListener(\"popstate\", linkSchemas);
314
322
  ::Brick.relations.each do |k, v|
315
323
  next if k == 'active_admin_comments'
316
324
 
317
- if (class_name = Object.const_get(v.fetch(:class_name, nil)))
318
- ::ActiveAdmin.register(class_name) { config.clear_batch_actions! }
325
+ begin
326
+ if (class_name = Object.const_get(v.fetch(:class_name, nil)))
327
+ ::ActiveAdmin.register(class_name) { config.clear_batch_actions! }
328
+ end
329
+ rescue
319
330
  end
320
331
  end
321
332
  _brick_routes(*args)
322
333
  end
323
334
  end
324
335
  end
336
+ ::ActiveAdmin::Views::TitleBar.class_exec do
337
+ alias _brick_build_title_tag build_title_tag
338
+ def build_title_tag
339
+ if klass = begin
340
+ aa_id = helpers.instance_variable_get(:@current_tab)&.id
341
+ ::Brick.relations.fetch(aa_id, nil)&.fetch(:class_name, nil)&.constantize
342
+ rescue
343
+ end
344
+ h2((@title + link_to_brick(nil,
345
+ BRICK_SVG, # This would do well to be sized a bit smaller
346
+ { title: "#{@_name} in Brick" }
347
+ )).html_safe)
348
+ else
349
+ _brick_build_title_tag # Revert to the original
350
+ end
351
+ end
352
+ end
325
353
  end
326
354
 
327
355
  # ====================================
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 114
8
+ TINY = 115
9
9
 
10
10
  # PRE is nil unless it's a pre-release (beta, RC, etc.)
11
11
  PRE = nil
data/lib/brick.rb CHANGED
@@ -660,7 +660,7 @@ In config/initializers/brick.rb appropriate entries would look something like:
660
660
  module RouteSet
661
661
  def finalize!
662
662
  routeset_to_use = ::Rails.application.routes
663
- return super unless self == routeset_to_use
663
+ return super if self != routeset_to_use || ::Brick.routes_done
664
664
 
665
665
  path_prefix = ::Brick.config.path_prefix
666
666
  existing_controllers = routes.each_with_object({}) do |r, s|
@@ -867,9 +867,12 @@ In config/initializers/brick.rb appropriate entries would look something like:
867
867
 
868
868
  # Trestle compatibility
869
869
  if Object.const_defined?('Trestle') && ::Trestle.config.options&.key?(:site_title) &&
870
- !Object.const_defined?("#{resource_name.camelize}Admin")
871
- ::Trestle.resource(res_sym = k.to_sym) do
872
- menu { item res_sym, icon: "fa fa-star" }
870
+ !Object.const_defined?("#{(res_name = resource_name.tr('/', '_')).camelize}Admin")
871
+ begin
872
+ ::Trestle.resource(res_sym = res_name.to_sym, model: class_name&.constantize) do
873
+ menu { item res_sym, icon: "fa fa-star" }
874
+ end
875
+ rescue
873
876
  end
874
877
  end
875
878
  end
@@ -920,7 +923,6 @@ In config/initializers/brick.rb appropriate entries would look something like:
920
923
  end
921
924
  end
922
925
 
923
- ::Brick.routes_done = true
924
926
  puts "\n" if tables.present? || views.present?
925
927
  if tables.present?
926
928
  puts "Classes that can be built from tables:#{' ' * (table_class_length - 38)} Path:"
@@ -934,6 +936,7 @@ In config/initializers/brick.rb appropriate entries would look something like:
934
936
  end
935
937
  end
936
938
  end
939
+ ::Brick.routes_done = true
937
940
  super
938
941
  end
939
942
  end
@@ -976,6 +979,21 @@ module ::Rails
976
979
  end
977
980
  end
978
981
 
982
+ # # Support for when a table or view is named just 's'
983
+ # ActiveSupport::Inflector.class_eval do
984
+ # class << self
985
+ # alias _brick_singularize singularize
986
+ # def singularize(word, locale = :en)
987
+ # if word.present? && ((ret = _brick_singularize(word, locale)).empty? || ret[-1] == '/')
988
+ # # puts word
989
+ # # binding.pry if ret.empty? || ret[-1] == '/'
990
+ # ret << 's'
991
+ # end
992
+ # ret
993
+ # end
994
+ # end
995
+ # end
996
+
979
997
  # Major compatibility fixes for ActiveRecord < 4.2
980
998
  # ================================================
981
999
  ActiveSupport.on_load(:active_record) do
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.114
4
+ version: 1.0.115
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-02-19 00:00:00.000000000 Z
11
+ date: 2023-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord