neetob 0.5.67 → 0.5.68

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: 2f2d8babeb0b3188023da71a4db99c635a8dc04872ef2ce2f8c53ae234d53b9c
4
- data.tar.gz: dfa33938f38a65a1332ba4f12d3d6b890aac10cf8138f35c737b1ad6380c98f6
3
+ metadata.gz: 7e552e130888b6f3315ca5eca7e6a17e9dc3e03d5c3330d21f98e5c45bc87416
4
+ data.tar.gz: af535649338ce0ad4139b204027b08ffad842d261a29b0135e74e49202fe0545
5
5
  SHA512:
6
- metadata.gz: 637ff5e57251fce98acb1897aaf0125c7f027e864267b569109b5debde735dfe40f486d7098098ec4fd9c9082d0aa012d05edbc1b1c9bc047760c7b9e435feb8
7
- data.tar.gz: 3f2c595dd57f32cddb1f83f04c84c2a465b32ffd3765418d4a8fc99850cb4ba2355688c27e0ae300fbe18978ee526593086be3d2070cca085ca1b27f79670bf1
6
+ metadata.gz: 45dabca79cf9eb38ca6bae03b0ac9a56a42bab6d820c1b0f6045d7e53c35f967bf2a1b539780bd5f72df3db5fc924d2f24b1323a91412bd123df14cd2eafef5e
7
+ data.tar.gz: e854b32638603388a3673622ee0dc248ce4fbc5a4179a05c4fb1237535124318a5c8ac872cce8ab84523a31831ac09b334c265336dda91389d4ba9bd84dfb889
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetob (0.5.67)
4
+ neetob (0.5.68)
5
5
  actionview
6
6
  activesupport
7
7
  brakeman (~> 5.0)
@@ -50,13 +50,28 @@ module Neetob
50
50
 
51
51
  def find_tables_without_uuid_as_primary_key(db_schema)
52
52
  create_table_regex = /create_table.*?,\s*force:\s*:cascade\s*do\s*\|t\|/
53
+
53
54
  db_schema.scan(create_table_regex).map do |create_table_line|
54
- !(create_table_line.include?("id: :uuid") || create_table_line.include?("id: false")) ?
55
- create_table_line.scan(/"([^"]+)"/).flatten.first :
56
- nil
55
+ keys = extract_primary_keys(create_table_line)
56
+ !(
57
+ create_table_line.include?("id: :uuid") ||
58
+ create_table_line.include?("id: false") ||
59
+ (keys.length > 0 && create_table_line.include?("primary_key") && !keys.include?("id"))
60
+ ) ?
61
+ create_table_line.scan(/"([^"]+)"/).flatten.first :
62
+ nil
57
63
  end
58
64
  end
59
65
 
66
+ def extract_primary_keys(table_def)
67
+ # Match the part inside primary_key: [ ... ]
68
+ match = table_def[/primary_key:\s*\[(.*?)\]/, 1]
69
+ return [] unless match
70
+
71
+ # Extract each string inside quotes
72
+ match.scan(/"([^"]+)"/).flatten
73
+ end
74
+
60
75
  def verify_unique_email_index(db_schema)
61
76
  index_pattern = /
62
77
  create_table\s+"users".*?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Neetob
4
- VERSION = "0.5.67"
4
+ VERSION = "0.5.68"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neetob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.67
4
+ version: 0.5.68
5
5
  platform: ruby
6
6
  authors:
7
7
  - Udai Gupta
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-06-24 00:00:00.000000000 Z
11
+ date: 2025-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor