Module: Chromate::Formattable
- Defined in:
- lib/chromate/formattable.rb
Overview
The ‘Formattable` module allows any class easy access to Chromate formatting, so long as it provides an `effects` method, which is expected to return an `EffectSet`.
Class Method Summary collapse
-
.format_attr(name, question_name = name.to_s + '?') ⇒ Object
private
Introduce a format attribute.
Instance Method Summary collapse
-
#bg(what) ⇒ Formattable
Set the background and return self.
-
#fg(what) ⇒ Formattable
Set the foreground and return self.
- #to_s ⇒ String
Class Method Details
.format_attr(name, question_name = name.to_s + '?') ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Introduce a format attribute. Each format attribute comes with two methods, which generally differ only by addition of a ‘?’ character ( although this behavior can be overriden). The first method sets the format attribute with the given name, and the second queries whether it is set.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/chromate/formattable.rb', line 20 def self.format_attr(name, question_name = name.to_s + '?') if EFFECTS.include?(name) module_eval(" define_method :\#{name} do\n effects << Effect[:\#{name}]\n self\n end\n\n define_method :\#{question_name} do\n effects.include?(Effect[:\#{name}])\n end\n EOF\n )\n else\n raise ArgumentError, \"no such effect: \#{name}\"\n end\nend\n" |
Instance Method Details
#bg(what) ⇒ Formattable
Set the background and return self.
59 60 61 62 |
# File 'lib/chromate/formattable.rb', line 59 def bg(what) effects << Color[what].as_bg self end |
#fg(what) ⇒ Formattable
Set the foreground and return self.
48 49 50 51 |
# File 'lib/chromate/formattable.rb', line 48 def fg(what) effects << Color[what] self end |
#to_s ⇒ String
65 66 67 |
# File 'lib/chromate/formattable.rb', line 65 def to_s effects + self + OFF end |