Class: Fmt::RainbowRegistry

Inherits:
Registry show all
Defined in:
lib/fmt/registries/rainbow_registry.rb

Overview

Note:

Rainbow macros convert the Object to a String

Extends native Ruby String format specifications with Rainbow methods

Instance Method Summary collapse

Methods inherited from Registry

#add, #any?, #delete, #fetch, #key_for, #merge!, #none?, #with_overrides

Constructor Details

#initializeRainbowRegistry

Constructor



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/fmt/registries/rainbow_registry.rb', line 11

def initialize
  super

  if defined? Rainbow
    add([Object, :rainbow]) { Rainbow self }
    add([Object, :bg]) { |*args, **kwargs| Rainbow(self).bg(*args, **kwargs) }
    add([Object, :color]) { |*args, **kwargs| Rainbow(self).color(*args, **kwargs) }

    methods = Rainbow::Presenter.public_instance_methods(false).select do
      Rainbow::Presenter.public_instance_method(_1).arity == 0
    end

    method_names = methods
      .map { _1.name.to_sym }
      .concat(Rainbow::X11ColorNames::NAMES.keys)
      .sort

    method_names.each do |name|
      add([Object, name]) { Rainbow(self).public_send name }
    end
  end
rescue => error
  puts "#{self.class.name} - Error adding filters! #{error.inspect}"
end