Class: Supabase::Generators::UserModelGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Supabase::Generators::UserModelGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/supabase/user_model/user_model_generator.rb
Overview
‘rails g supabase:user_model` (FR-W14 / US-025).
Opt-in shadow ‘User` ActiveRecord model. Emits a `users` migration with a UUID primary key matching Supabase’s ‘user.id`, an AR model with a `from_supabase(claims)` upsert helper, and patches the `config/initializers/supabase.rb` to set `config.supabase.user_model = “User”` so the Authentication concern (US-016) substitutes the AR record for `Current.user`.
Class Method Summary collapse
-
.next_migration_number(_dirname) ⇒ Object
Rails’ built-in timestamp for migration filenames.
Instance Method Summary collapse
Class Method Details
.next_migration_number(_dirname) ⇒ Object
Rails’ built-in timestamp for migration filenames. Mirrors what ‘ActiveRecord::Generators::Migration#next_migration_number` does so the generator works standalone (without ActiveRecord loaded).
34 35 36 |
# File 'lib/generators/supabase/user_model/user_model_generator.rb', line 34 def self.next_migration_number(_dirname) Time.now.utc.strftime("%Y%m%d%H%M%S") end |
Instance Method Details
#create_migration_file ⇒ Object
38 39 40 41 |
# File 'lib/generators/supabase/user_model/user_model_generator.rb', line 38 def create_migration_file migration_template "db/migrate/create_supabase_users.rb.tt", "db/migrate/create_supabase_users.rb" end |
#create_user_model ⇒ Object
43 44 45 |
# File 'lib/generators/supabase/user_model/user_model_generator.rb', line 43 def create_user_model template "app/models/user.rb.tt", "app/models/user.rb" end |
#patch_initializer ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/generators/supabase/user_model/user_model_generator.rb', line 47 def patch_initializer initializer_path = "config/initializers/supabase.rb" return unless File.exist?(File.(initializer_path, destination_root)) return if initializer_already_patched?(initializer_path) append_to_file initializer_path, %(\nRails.application.config.supabase.user_model = "User"\n) end |