class Cyoi::Cli::Address
Public Class Methods
address_cli(name)
click to toggle source
# File lib/cyoi/cli/address.rb, line 50 def self.address_cli(name) @address_clis[name] end
new(argv, stdin=STDIN, stdout=STDOUT, stderr=STDERR, kernel=Kernel)
click to toggle source
# File lib/cyoi/cli/address.rb, line 7 def initialize(argv, stdin=STDIN, stdout=STDOUT, stderr=STDERR, kernel=Kernel) @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel @settings_dir = @argv.shift || "/tmp/provider_settings" @settings_dir = File.expand_path(@settings_dir) end
register_address_cli(name, klass)
click to toggle source
# File lib/cyoi/cli/address.rb, line 45 def self.register_address_cli(name, klass) @address_clis ||= {} @address_clis[name] = klass end
Public Instance Methods
address_cli()
click to toggle source
Continue the interactive session with the user specific to the address/infrastructure they have chosen.
The returned object is a class from cyoi/cli/addresss/provier_cli_NAME.rb The class loads itself into `@address_clis` via `register_address_cli`
Returns nil if settings.address.name not set
# File lib/cyoi/cli/address.rb, line 34 def address_cli @address_cli ||= begin provider_name = settings.exists?("provider.name") return nil unless provider_name require "cyoi/cli/provider_addresses/address_cli_#{settings.provider.name}" klass = self.class.address_cli(settings.provider.name) settings["address"] ||= {} klass.new(provider_client, settings.address, hl) end end
execute!()
click to toggle source
TODO run Cyoi::Cli::Provider first if settings.provider.name missing
# File lib/cyoi/cli/address.rb, line 14 def execute! unless settings.exists?("provider.name") $stderr.puts("Please run 'cyoi provider' first") exit 1 end unless valid_address? settings["address"] = address_cli.perform_and_return_attributes save_settings! end address_cli.display_confirmation end
Protected Instance Methods
valid_address?()
click to toggle source
# File lib/cyoi/cli/address.rb, line 55 def valid_address? address_cli && address_cli.valid_address? end