neetob 0.5.66 → 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: ddafbcca9ce2ca97d79d33db31d0ff96a8afc346efece92236f7dea825fb8b46
4
- data.tar.gz: a778c56a4ccac54a58646737c671de93b00a613b4c8eddf3dc2f733adf34677b
3
+ metadata.gz: 7e552e130888b6f3315ca5eca7e6a17e9dc3e03d5c3330d21f98e5c45bc87416
4
+ data.tar.gz: af535649338ce0ad4139b204027b08ffad842d261a29b0135e74e49202fe0545
5
5
  SHA512:
6
- metadata.gz: 5642d4b0d507469de3a58551429086a2153804ddf4e240ce000ecc8cdd4d80dd5d45a30a02d8435b15a8279dbb6df01bc1ce7fe4ada2b78fd1735fbf54f83288
7
- data.tar.gz: bbdd2ac2f57aae1924ae09c12827381254b3add3dfc89eb70e661cfa90505b5663d658358b7534b22110869207169e9d5ff1c96db404ffb1a93c4c0403cd9514
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.66)
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".*?
@@ -41,12 +41,18 @@ module Neetob
41
41
  "Content-Type" => "application/json"
42
42
  }
43
43
 
44
- response = HTTParty.post(url, body: body.to_json, headers:)
44
+ response = HTTParty.post(url, body: body.to_json, headers:, follow_redirects: false)
45
45
 
46
46
  if response.code == 200
47
- ui.success("Added #{email} to #{workspace}.#{app} with role #{role}")
47
+ ui.success(" Successfully added #{email} to #{workspace}.#{app} with the role #{role}.\n\n")
48
+ elsif response.code == 302
49
+ ui.error("❌ Could not add #{email} to #{workspace}.#{app} with role #{role}.")
50
+ ui.say("ℹ️ The #{app} app is not enabled for the workspace #{workspace}.\n\n")
51
+ elsif response.code == 422
52
+ ui.error("❌ Could not add #{email} to #{workspace}.#{app} with role #{role}.")
53
+ ui.say("Reason: #{response['error']}\n\n")
48
54
  else
49
- ui.error("Failed to add #{email} to #{workspace}.#{app}. Status: #{response.code}")
55
+ ui.error("Failed to add #{email} to #{workspace}.#{app} Response status: #{response.code}.\n\n")
50
56
  end
51
57
  end
52
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Neetob
4
- VERSION = "0.5.66"
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.66
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