Class: Db::Clone::Base
- Inherits:
-
Object
- Object
- Db::Clone::Base
- Includes:
- CmdPrompt
- Defined in:
- lib/db/clone/base.rb
Class Method Summary collapse
Instance Method Summary collapse
- #clone!(invoke_cli) ⇒ Object
-
#initialize ⇒ Base
constructor
A new instance of Base.
Methods included from CmdPrompt
#ask_yes_no, #fmt, #frame, #prompt
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
10 11 12 13 14 15 16 |
# File 'lib/db/clone/base.rb', line 10 def initialize @db_yml = YAML.load_file Db::Clone.database_yml_path raise ArgumentError.new("#{Db::Clone.database_yml_path} does not have at least 2 database blocks.") unless @db_yml.length >= 2 @default_src = Db::Clone.default_source_database @default_dest = Db::Clone.default_destination_database end |
Class Method Details
.clone!(invoke_cli) ⇒ Object
6 7 8 |
# File 'lib/db/clone/base.rb', line 6 def self.clone! invoke_cli self.new.clone! invoke_cli end |
Instance Method Details
#clone!(invoke_cli) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/db/clone/base.rb', line 18 def clone! invoke_cli src_db, dest_db = invoke_cli ? prompt_for_src_and_dest : default_src_and_dest cmd_builder = CmdBuilder.new src: @db_yml[src_db], dest: @db_yml[dest_db] frame("Cloning #{src_db} into #{dest_db}") do unless !invoke_cli || ask_yes_no("Continue?", default_to_yes: dest_db != @default_src) puts fmt("\n{{x}} Cloning canceled.") abort end puts fmt("\n Executing: {{cyan:#{cmd_builder.cmd}}}\n\n") Process.wait spawn(cmd_builder.cmd) puts fmt("\n{{v}} Cloning complete!") end end |