Class: SharedUtilities::MigrationGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- SharedUtilities::MigrationGenerator
- Includes:
- ActiveRecord::Generators::Migration, Rails::Generators::Migration, OrmHelper
- Defined in:
- lib/generators/shared_utilities/migration_generator.rb
Instance Method Summary collapse
- #copy_migration ⇒ Object
- #inet? ⇒ Boolean
-
#initialize(args, *options) ⇒ MigrationGenerator
constructor
A new instance of MigrationGenerator.
- #ip_column ⇒ Object
- #manifest ⇒ Object
- #migration_data ⇒ Object
- #migration_version ⇒ Object
- #postgresql? ⇒ Boolean
- #primary_key_string ⇒ Object
- #primary_key_type ⇒ Object
- #rails5? ⇒ Boolean
Constructor Details
#initialize(args, *options) ⇒ MigrationGenerator
Returns a new instance of MigrationGenerator.
16 17 18 19 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 16 def initialize(args, *) raise StandardError, "Only 'authentication' model is currently implemented" if args.first != "authentication" super end |
Instance Method Details
#copy_migration ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 25 def copy_migration if (behavior == :invoke && model_exists?) || (behavior == :revoke && migration_exists?(table_name)) migration_template "migration_existing.rb", "#{migration_path}/update_authentications_on_#{table_name}.rb", migration_version: migration_version else migration_template "migration.rb", "#{migration_path}/create_#{table_name}.rb", migration_version: migration_version end end |
#inet? ⇒ Boolean
51 52 53 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 51 def inet? postgresql? end |
#ip_column ⇒ Object
46 47 48 49 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 46 def ip_column # Padded with spaces so it aligns nicely with the rest of the columns. "%-8s" % (inet? ? "inet" : "string") end |
#manifest ⇒ Object
21 22 23 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 21 def manifest copy_migration end |
#migration_data ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 33 def migration_data <<RUBY ## Required # t.references "resource", :polymorphic => true, :index => true # t.string :name # t.string :authtype # t.string :status # t.string :status_details # t.#{ip_column} :tenant_id # t.timestamps RUBY end |
#migration_version ⇒ Object
73 74 75 76 77 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 73 def migration_version if rails5? "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" end end |
#postgresql? ⇒ Boolean
59 60 61 62 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 59 def postgresql? config = ActiveRecord::Base.configurations[Rails.env] config && config['adapter'] == 'postgresql' end |
#primary_key_string ⇒ Object
68 69 70 71 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 68 def primary_key_string key_string = [:primary_key_type] || "bigserial" ", id: :#{key_string}" if key_string end |
#primary_key_type ⇒ Object
64 65 66 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 64 def primary_key_type primary_key_string if rails5? end |
#rails5? ⇒ Boolean
55 56 57 |
# File 'lib/generators/shared_utilities/migration_generator.rb', line 55 def rails5? Rails.version.start_with? '5' end |