Sha256: c07efab25960231d4054dac739323569541a928224df8304e13b01a348eff71c

Contents?: true

Size: 563 Bytes

Versions: 97

Compression:

Stored size: 563 Bytes

Contents

module Rainbow
  class StringUtils
    def self.wrap_with_sgr(string, codes)
      return string if codes.empty?

      seq = "\e[" + codes.join(";") + "m"
      match = string.match(/^(\e\[([\d;]+)m)*/)
      seq_pos = match.end(0)
      string = string[0...seq_pos] + seq + string[seq_pos..-1]

      string += "\e[0m" unless string =~ /\e\[0m$/

      string
    end

    def self.uncolor(string)
      # See http://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed
      string.gsub(/\e\[[0-9;]*m/, '')
    end
  end
end

Version data entries

97 entries across 90 versions & 19 rubygems

Version Path
plaid-14.12.1 vendor/bundle/ruby/3.0.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
plaid-14.12.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
plaid-14.11.1 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha43 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha42 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
phillipug-foodie-0.1.0 .vendor/ruby/3.0.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha41 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha40 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha39 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha38 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha37 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha36 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-kratos-client-0.8.2.alpha1 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha31 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
plaid-14.10.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
primary_connect_proto-0.4.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
primary_connect_proto-0.3.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
primary_connect_proto-0.2.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
primary_connect_proto-0.1.0 vendor/bundle/ruby/2.6.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb
ory-client-0.0.1.alpha30 vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/lib/rainbow/string_utils.rb