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
- #reset ⇒ Object
- #rspec_model(class_name) ⇒ Object
- #seed ⇒ Object
Instance Method Details
#add_column(class_name) ⇒ Object
73 74 75 76 |
# File 'lib/souls/cli/db/index.rb', line 73 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
85 86 87 88 |
# File 'lib/souls/cli/db/index.rb', line 85 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], {}) SOULs::Painter.create_file("") 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(" class Create\#{pluralized_class_name.camelize} < ActiveRecord::Migration[6.1]\n def change\n create_table :\#{pluralized_class_name} do |t|\n\n t.boolean :is_deleted, null: false, default: false\n t.timestamps\n end\n end\n end\n TEXT\n end\nend\n") |
#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(" class Create\#{pluralized_class_name.camelize}\n def change: () -> untyped\n def create_table: (:\#{pluralized_class_name}) { (untyped) -> untyped } -> untyped\n def add_index: (:\#{pluralized_class_name}, *untyped) -> untyped\n end\n TEXT\n end\n SOULs::Painter.create_file(file_path.to_s)\n end\n file_path\nend\n") |
#drop_table(class_name) ⇒ Object
97 98 99 100 |
# File 'lib/souls/cli/db/index.rb', line 97 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(" class \#{class_name.camelize} < ActiveRecord::Base\n end\n TEXT\n end\n SOULs::Painter.create_file(file_path.to_s)\n file_path\nend\n") |
#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(" class \#{singularized_class_name.camelize} < ActiveRecord::Base\n end\n TEXT\n end\n SOULs::Painter.create_file(file_path.to_s)\n end\n file_path\nend\n") |
#remove_column(class_name) ⇒ Object
91 92 93 94 |
# File 'lib/souls/cli/db/index.rb', line 91 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
79 80 81 82 |
# File 'lib/souls/cli/db/index.rb', line 79 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 |
#reset ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/souls/cli/db/index.rb', line 60 def reset case [:env] when "production" db_system("rake db:migrate:reset RACK_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1") db_system("rake db:seed RACK_ENV=production") else db_system("rake db:migrate:reset") db_system("rake db:migrate RACK_ENV=test") db_system("rake db:seed") end 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(" RSpec.describe \"\#{class_name.camelize} Model \u30C6\u30B9\u30C8\", type: :model do\n describe \"\#{class_name.camelize} \u30C7\u30FC\u30BF\u3092\u66F8\u304D\u8FBC\u3080\" do\n it \"valid \#{class_name.camelize} Model\" do\n expect(FactoryBot.build(:\#{class_name.singularize})).to be_valid\n end\n end\n end\n TEXT\n end\n SOULs::Painter.create_file(file_path.to_s)\n file_path\nend\n") |
#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 |