module Colored2
Constants
- COLORS
- EFFECTS
- VERSION
Public Class Methods
background_next!()
click to toggle source
# File lib/colored2/ascii_decorator.rb, line 11 def self.background_next! Colored2::AsciiDecorator.background_next! end
background_next?()
click to toggle source
# File lib/colored2/ascii_decorator.rb, line 17 def self.background_next? Colored2::AsciiDecorator.background_next? end
decorate(a_class)
click to toggle source
# File lib/colored2.rb, line 5 def self.decorate(a_class) a_class.send(:include, Colored2) end
disable!()
click to toggle source
# File lib/colored2/ascii_decorator.rb, line 8 def self.disable! Colored2::AsciiDecorator.disable! end
enable!()
click to toggle source
# File lib/colored2/ascii_decorator.rb, line 5 def self.enable! Colored2::AsciiDecorator.enable! end
foreground_next!()
click to toggle source
# File lib/colored2/ascii_decorator.rb, line 14 def self.foreground_next! Colored2::AsciiDecorator.foreground_next! end
included(from_class)
click to toggle source
# File lib/colored2.rb, line 9 def self.included(from_class) from_class.class_eval do def surround_with_color(color: nil, effect: nil, color_self: nil, string: nil, &block) color_type = if Colored2.background_next? && effect.nil? Colored2.foreground_next! :background else :foreground end opts = {} opts.merge!(color_type => color) if color opts.merge!(effect: effect) if effect if color_self then opts.merge!( beginning: :on, end: :off) colored = Colored2::AsciiDecorator.new(self).decorate(opts) if string || block arg = "#{string}#{block.call if block}" colored << Colored2::AsciiDecorator.new(arg).decorate(opts) if arg.length > 0 end else opts.merge!( end: :on ) colored = Colored2::AsciiDecorator.new(self).decorate(opts) if string || block arg = "#{string}#{block.call if block}" colored << Colored2::AsciiDecorator.new(arg).decorate(opts.merge(end: :off)) if arg.length > 0 end end colored end def on Colored2.background_next! self end end from_class.instance_eval do COLORS.keys.each do |color| define_method(color) do |string = nil, &block| surround_with_color(color: color, color_self: true, string: string, &block) end define_method("#{color}!".to_sym) do |string = nil, &block| surround_with_color(color: color, color_self: false, string: string, &block) end end EFFECTS.keys.each do |effect| next if effect == 'no_color' define_method(effect) do |string = nil, &block| surround_with_color(effect: effect, color_self: true, string: string, &block) end define_method("#{effect}!".to_sym) do |string = nil, &block| surround_with_color(effect: effect, color_self: false, string: string, &block) end end define_method(:to_eol) do tmp = sub(/^(\e\[[\[\e0-9;m]+m)/, "\\1\e[2K") if tmp == self return "\e[2K" << self end tmp end define_method(:to_bol) do "#{self}\033[#{length}D\033[0D" end end end
integer_class()
click to toggle source
# File lib/colored2/numbers.rb, line 4 def self.integer_class major, minor = RUBY_VERSION.split(/\./).map(&:to_i) major >= 2 && minor >= 4 ? Integer : Kernel.const_get(:Fixnum) end
Public Instance Methods
on()
click to toggle source
# File lib/colored2.rb, line 42 def on Colored2.background_next! self end
surround_with_color(color: nil, effect: nil, color_self: nil, string: nil, &block)
click to toggle source
# File lib/colored2.rb, line 12 def surround_with_color(color: nil, effect: nil, color_self: nil, string: nil, &block) color_type = if Colored2.background_next? && effect.nil? Colored2.foreground_next! :background else :foreground end opts = {} opts.merge!(color_type => color) if color opts.merge!(effect: effect) if effect if color_self then opts.merge!( beginning: :on, end: :off) colored = Colored2::AsciiDecorator.new(self).decorate(opts) if string || block arg = "#{string}#{block.call if block}" colored << Colored2::AsciiDecorator.new(arg).decorate(opts) if arg.length > 0 end else opts.merge!( end: :on ) colored = Colored2::AsciiDecorator.new(self).decorate(opts) if string || block arg = "#{string}#{block.call if block}" colored << Colored2::AsciiDecorator.new(arg).decorate(opts.merge(end: :off)) if arg.length > 0 end end colored end