brick 1.0.175 → 1.0.177

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: 566c62de5deb537568049267ecd415bfb4f22b0343f689a5c4c819a173cc92ba
4
- data.tar.gz: aaf90092d67a2669f64ad0ce5484196fefedb3ce666c6977d0b9b66f5fcc8739
3
+ metadata.gz: 236474c3b0979bffb66ab3561a8fe008ee912ce358dc13556afc2e6e7564fe9a
4
+ data.tar.gz: d288645dce34156548bd393352591ae1d8eb83a4d1797fa9a2d4150d6e40506d
5
5
  SHA512:
6
- metadata.gz: 98748d0a02f3d004963652c02d17465406fe586b9ea1bf581f55e9f3fa119d72c3edf323f1934c165059ca0088eb47c7cbe82bf9cba8799bfec83e862dcd13c9
7
- data.tar.gz: 916e16bf303120062467e8555ca2845c9ca3e4ed752c0b95094cc556632453ae8dcb66819cb920f101d9da1abf37c57af5ace6282e39a39747f5d117460b8e2d
6
+ metadata.gz: a8c336750619205c99a76a97414a1315261b0f1498981f3ec7573e73aa759be935357ce7844eb51de4fb905744b3ebe47890fc63005e38fa5f11ce3b009f02c1
7
+ data.tar.gz: b05c551dc2b483cabdd4b7788c1dc2c8e211803f4d9d1632c69cbe44b2bcf2933f1f39ac4217507fbefe42e0fa680315b3fdcf17b6129108d7811108e7f6f893
@@ -1553,9 +1553,13 @@ class Object
1553
1553
  end))
1554
1554
  end
1555
1555
  hmts = nil
1556
+ if (schema_module || Object).const_defined?((chosen_name = (inheritable_name || model_name)).to_sym)
1557
+ possible = (schema_module || Object).const_get(chosen_name)
1558
+ return possible unless possible == schema_module
1559
+ end
1556
1560
  code = +"class #{full_name} < #{base_model.name}\n"
1557
1561
  built_model = Class.new(base_model) do |new_model_class|
1558
- (schema_module || Object).const_set((chosen_name = (inheritable_name || model_name)).to_sym, new_model_class)
1562
+ (schema_module || Object).const_set(chosen_name, new_model_class)
1559
1563
  @_brick_relation = relation
1560
1564
  if inheritable_name
1561
1565
  new_model_class.define_singleton_method :inherited do |subclass|
@@ -3100,7 +3104,8 @@ module Brick
3100
3104
  missing << fk[1] unless relations.key?(fk[1])
3101
3105
  missing << primary_table unless is_class || relations.key?(primary_table)
3102
3106
  unless missing.empty?
3103
- tables = relations.reject { |_k, v| v.fetch(:isView, nil) }.keys.sort
3107
+ tables = relations.reject { |_k, v| v.is_a?(Hash) && v.fetch(:isView, nil) }.keys
3108
+ .select { |table_name| table_name.is_a?(String) }.sort
3104
3109
  puts "Brick: Additional reference #{fk.inspect} refers to non-existent #{'table'.pluralize(missing.length)} #{missing.join(' and ')}. (Available tables include #{tables.join(', ')}.)"
3105
3110
  return
3106
3111
  end
@@ -5,7 +5,7 @@ module Brick
5
5
  module VERSION
6
6
  MAJOR = 1
7
7
  MINOR = 0
8
- TINY = 175
8
+ TINY = 177
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
@@ -89,7 +89,7 @@ end
89
89
  # is first established), and then automatically creates models, controllers, views,
90
90
  # and routes based on those available relations.
91
91
  require 'brick/config'
92
- if Gem::Specification.all_names.any? { |g| g.start_with?('rails-') && g[6..-1] =~ /^([0-9]|\.)+$/ }
92
+ if Gem::Specification.all_names.any? { |g| g.start_with?('rails-') && g[6..-1] =~ /^([0-9]|\.)+(?:|rc1|beta1)$/ }
93
93
  require 'rails'
94
94
  require 'brick/frameworks/rails'
95
95
  end
@@ -18,7 +18,7 @@ module Brick
18
18
  ::Brick.mode = :on
19
19
  ActiveRecord::Base.establish_connection
20
20
 
21
- if (tables = ::Brick.relations.reject { |k, v| v.key?(:isView) && v[:isView] == true }.map(&:first).sort).empty?
21
+ if (tables = ::Brick.relations.reject { |k, v| k.is_a?(Symbol) || v.key?(:isView) && v[:isView] == true }.map(&:first).sort).empty?
22
22
  puts "No tables found in database #{ActiveRecord::Base.connection.current_database}."
23
23
  return
24
24
  end
@@ -28,11 +28,13 @@ module Brick
28
28
  existing_models = ActiveRecord::Base.descendants.reject do |m|
29
29
  m.abstract_class? || !m.table_exists? || ::Brick.relations.key?(m.table_name)
30
30
  end
31
- models = ::Brick.relations.keys.map do |tbl|
31
+ models = ::Brick.relations.keys.each_with_object([]) do |tbl, s|
32
+ next if tbl.is_a?(Symbol)
33
+
32
34
  tbl_parts = tbl.split('.')
33
35
  tbl_parts.shift if [::Brick.default_schema, 'public'].include?(tbl_parts.first)
34
36
  tbl_parts[-1] = tbl_parts[-1].singularize
35
- tbl_parts.join('/').camelize
37
+ s << tbl_parts.join('/').camelize
36
38
  end - existing_models.map(&:name)
37
39
  models.sort! do |a, b| # Sort first to separate namespaced stuff from the rest, then alphabetically
38
40
  is_a_namespaced = a.include?('::')
@@ -31,7 +31,7 @@ module Brick
31
31
  models = (existing_models.values +
32
32
  # ... then add models which can be auto-built by Brick
33
33
  ::Brick.relations.reject do |k, v|
34
- (v.key?(:isView) && v[:isView] == true) || existing_models.key?(k)
34
+ k.is_a?(Symbol) || (v.key?(:isView) && v[:isView] == true) || existing_models.key?(k)
35
35
  end.map { |k, v| SeedModel.new(k, v[:class_name].constantize, true) }
36
36
  ).sort { |a, b| a.to_s <=> b.to_s }
37
37
  if models.empty?
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.175
4
+ version: 1.0.177
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-09-15 00:00:00.000000000 Z
11
+ date: 2023-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -178,20 +178,6 @@ dependencies:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: mysql2
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '0.5'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '0.5'
195
181
  - !ruby/object:Gem::Dependency
196
182
  name: pg
197
183
  requirement: !ruby/object:Gem::Requirement