module AwsAssumeRole::Ui
Public Instance Methods
ask_with_validation(variable_name, question, type: Dry::Types["coercible.string"], &block)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 40 def ask_with_validation(variable_name, question, type: Dry::Types["coercible.string"], &block) STDOUT.puts pastel.yellow question validator = Dry::Validation.Schema do configure do config.messages = :i18n end required(variable_name) { instance_eval(&block) } end result = validator.call(variable_name => type[(STDIN.gets || "").chomp]) return result.to_h[variable_name] if result.success? show_validation_errors result ask_with_validation variable_name, question, &block end
error(text)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 32 def error(text) puts pastel.red(text) end
input()
click to toggle source
# File lib/aws_assume_role/ui.rb, line 21 def input @input ||= HighLine.new($stdin, $stderr) end
out(text)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 13 def out(text) puts text end
pastel()
click to toggle source
# File lib/aws_assume_role/ui.rb, line 17 def pastel @pastel ||= Pastel.new end
show_validation_errors(result)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 36 def show_validation_errors(result) error validation_errors_to_s(result) end
t(*options)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 54 def t(*options) ::I18n.t(options).first end
validation_errors_to_s(result)
click to toggle source
# File lib/aws_assume_role/ui.rb, line 25 def validation_errors_to_s(result) text = result.errors.keys.map do |k| result.errors[k].join(";") end.join(" ") text end