Method: PgVerify::Colorizer.define_methods

Defined in:
lib/pg-verify/core/shell/colorizer.rb

.define_methods(hash) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/pg-verify/core/shell/colorizer.rb', line 37

def self.define_methods(hash)
    Rainbow::X11ColorNames::NAMES.each do |color_name, _|
        define_method "c_#{color_name}".to_sym do
            Rainbow(self).color(color_name.to_sym)
        end
        define_method "bg_#{color_name}".to_sym do
            Rainbow(self).send(:background, color_name)
        end
    end

    hash.each do |key, color_names|
        array = color_names.is_a?(Array) ? color_names : [ color_names ]
        define_method "c_#{key}".to_sym do
            rainbow = Rainbow(self)
            array.each { |color_name|
                rainbow = Colorizer.send_call(rainbow, color_name)
            }
            rainbow
        end
        define_method "bg_#{key}".to_sym do
            rainbow = Rainbow(self)
            array.each { |color_name|
                rainbow = Colorizer.send_call(rainbow, "_#{color_name}")
            }
            rainbow
        end
    end
end