brick 1.0.114 → 1.0.115

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: 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