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) ⇒ 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) ⇒ Object
23 24 25 26 |
# File 'lib/perennial/application.rb', line 23 def ask(question, default) result = Readline.readline("#{question.to_s.strip} (default: #{default}) ") result.blank? ? default : result end |
#ask_password(question) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/perennial/application.rb', line 28 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
36 37 38 39 |
# File 'lib/perennial/application.rb', line 36 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 |