Class: Souls::DB
- Inherits:
-
Thor
- Object
- Thor
- Souls::DB
- Defined in:
- lib/souls/cli/db/index.rb,
lib/souls/cli/db/model.rb,
lib/souls/cli/db/model_rbs.rb,
lib/souls/cli/db/rspec_model.rb,
lib/souls/cli/db/create_migration.rb,
lib/souls/cli/db/create_migration_rbs.rb
Instance Method Summary collapse
- #add_column(class_name) ⇒ Object
- #change_column(class_name) ⇒ Object
- #create ⇒ Object
- #create_migration(class_name) ⇒ Object
- #create_migration_rbs(class_name) ⇒ Object
- #drop_table(class_name) ⇒ Object
- #migrate ⇒ Object
- #migrate_reset ⇒ Object
- #model(class_name) ⇒ Object
- #model_rbs(class_name) ⇒ Object
- #remove_column(class_name) ⇒ Object
- #rename_column(class_name) ⇒ Object
- #rspec_model(class_name) ⇒ Object
- #seed ⇒ Object
Instance Method Details
#add_column(class_name) ⇒ Object
59 60 61 62 |
# File 'lib/souls/cli/db/index.rb', line 59 def add_column(class_name) pluralized_class_name = class_name.underscore.pluralize system("rake db:create_migration NAME=add_column_to_#{pluralized_class_name}") end |
#change_column(class_name) ⇒ Object
71 72 73 74 |
# File 'lib/souls/cli/db/index.rb', line 71 def change_column(class_name) pluralized_class_name = class_name.underscore.pluralize system("rake db:create_migration NAME=change_column_to_#{pluralized_class_name}") end |
#create ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/souls/cli/db/index.rb', line 25 def create case [:env] when "production" db_system("rake db:create RACK_ENV=production") else db_system("rake db:create") end end |
#create_migration(class_name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/souls/cli/db/create_migration.rb', line 4 def create_migration(class_name) pluralized_class_name = class_name.underscore.pluralize singularized_class_name = class_name.underscore.singularize Souls::DB.new.invoke(:model, [singularized_class_name], {}) Souls::DB.new.invoke(:rspec_model, [singularized_class_name], {}) Souls::DB.new.invoke(:model_rbs, [singularized_class_name], {}) puts(Paint["Created file! : ", :green]) system("rake db:create_migration NAME=create_#{pluralized_class_name}") file_path = Dir["db/migrate/*create_#{pluralized_class_name}.rb"].first File.open(file_path, "w") do |f| f.write(<<~TEXT) class Create#{pluralized_class_name.camelize} < ActiveRecord::Migration[6.1] def change create_table :#{pluralized_class_name} do |t| t.boolean :is_deleted, null: false, default: false t.timestamps end end end TEXT end end |
#create_migration_rbs(class_name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/souls/cli/db/create_migration_rbs.rb', line 4 def create_migration_rbs(class_name) file_path = "" Dir.chdir(Souls.get_mother_path.to_s) do file_dir = "./sig/api/db/migrate" FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir) pluralized_class_name = class_name.underscore.pluralize file_path = "#{file_dir}/create_#{pluralized_class_name}.rbs" File.open(file_path, "w") do |f| f.write(<<~TEXT) class Create#{pluralized_class_name.camelize} def change: () -> untyped def create_table: (:#{pluralized_class_name}) { (untyped) -> untyped } -> untyped def add_index: (:#{pluralized_class_name}, *untyped) -> untyped end TEXT end Souls::Painter.create_file(file_path.to_s) end file_path end |
#drop_table(class_name) ⇒ Object
83 84 85 86 |
# File 'lib/souls/cli/db/index.rb', line 83 def drop_table(class_name) pluralized_class_name = class_name.underscore.pluralize system("rake db:create_migration NAME=drop_table_to_#{pluralized_class_name}") end |
#migrate ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/souls/cli/db/index.rb', line 12 def migrate case [:env] when "production" db_system("rake db:migrate RACK_ENV=production") else db_system("rake db:migrate") db_system("rake db:migrate RACK_ENV=test") end true end |
#migrate_reset ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/souls/cli/db/index.rb', line 48 def migrate_reset case [:env] when "production" db_system("rake db:migrate:reset RACK_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1") else db_system("rake db:migrate:reset") db_system("rake db:migrate RACK_ENV=test") end end |
#model(class_name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/souls/cli/db/model.rb', line 4 def model(class_name) file_dir = "./app/models/" FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir) file_path = "#{file_dir}#{class_name.singularize}.rb" return "Model already exist! #{file_path}" if File.exist?(file_path) File.open(file_path, "w") do |f| f.write(<<~TEXT) class #{class_name.camelize} < ActiveRecord::Base end TEXT end Souls::Painter.create_file(file_path.to_s) file_path end |
#model_rbs(class_name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/souls/cli/db/model_rbs.rb', line 4 def model_rbs(class_name) file_path = "" Dir.chdir(Souls.get_mother_path.to_s) do file_dir = "./sig/api/app/models/" FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir) singularized_class_name = class_name.underscore.singularize file_path = "#{file_dir}#{singularized_class_name}.rbs" File.open(file_path, "w") do |f| f.write(<<~TEXT) class #{singularized_class_name.camelize} < ActiveRecord::Base end TEXT end Souls::Painter.create_file(file_path.to_s) end file_path end |
#remove_column(class_name) ⇒ Object
77 78 79 80 |
# File 'lib/souls/cli/db/index.rb', line 77 def remove_column(class_name) pluralized_class_name = class_name.underscore.pluralize system("rake db:create_migration NAME=remove_column_to_#{pluralized_class_name}") end |
#rename_column(class_name) ⇒ Object
65 66 67 68 |
# File 'lib/souls/cli/db/index.rb', line 65 def rename_column(class_name) pluralized_class_name = class_name.underscore.pluralize system("rake db:create_migration NAME=rename_column_to_#{pluralized_class_name}") end |
#rspec_model(class_name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/souls/cli/db/rspec_model.rb', line 4 def rspec_model(class_name) file_dir = "./spec/models/" FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir) file_path = "./spec/models/#{class_name}_spec.rb" return "RspecModel already exist! #{file_path}" if File.exist?(file_path) File.open(file_path, "w") do |f| f.write(<<~TEXT) RSpec.describe "#{class_name.camelize} Model テスト", type: :model do describe "#{class_name.camelize} データを書き込む" do it "valid #{class_name.camelize} Model" do expect(FactoryBot.build(:#{class_name.singularize})).to be_valid end end end TEXT end Souls::Painter.create_file(file_path.to_s) file_path end |
#seed ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/souls/cli/db/index.rb', line 36 def seed case [:env] when "production" db_system("rake db:seed RACK_ENV=production") else db_system("rake db:seed") db_system("rake db:seed RACK_ENV=test") end end |