Class: Perennial::Application::CommandEnv
- Includes:
- Loggable
- Defined in:
- lib/perennial/application.rb
Direct Known Subclasses
Class Method Summary collapse
-
.execute(blk, arguments) ⇒ Object
Executes a given block with given arguments in a specified environment.
Instance Method Summary collapse
- #ask(question, default = nil) ⇒ Object
- #ask_password(question) ⇒ Object
- #die!(message) ⇒ Object
- #yes?(question) ⇒ Boolean
Methods included from Loggable
Class Method Details
.execute(blk, arguments) ⇒ Object
Executes a given block with given arguments in a specified environment. Used to provide the logger functionality as well as the ability to do things such as easily write generators.
12 13 14 15 16 |
# File 'lib/perennial/application.rb', line 12 def self.execute(blk, arguments) klass = Class.new(self) klass.class_eval { define_method(:apply, &blk) } klass.new.apply(*arguments) end |
Instance Method Details
#ask(question, default = nil) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/perennial/application.rb', line 23 def ask(question, default = nil) question_text = question.to_s.strip question_text << " " question_text << "(default: #{default}) " unless default.nil? result = Readline.readline(question_text) result.blank? ? default : result end |
#ask_password(question) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/perennial/application.rb', line 31 def ask_password(question) system "stty -echo" line = Readline.readline("#{question.to_s.strip} ").strip system "stty echo" print "\n" return line end |
#die!(message) ⇒ Object
39 40 41 42 |
# File 'lib/perennial/application.rb', line 39 def die!() $stderr.puts exit! 1 end |
#yes?(question) ⇒ Boolean
18 19 20 21 |
# File 'lib/perennial/application.rb', line 18 def yes?(question) result = Readline.readline("#{question.to_s.strip} (y/n) ") result.downcase[0] == ?y end |