<commit_before>class Pry
  module Helpers

    module Color
 
      extend self

      COLORS = 
      {
        "black"   => 0,
        "red"     => 1,
        "green"   => 2,
        "yellow"  => 3,
        "blue"    => 4,
        "purple"  => 5,
        "magenta" => 5,
        "cyan"    => 6,
        "white"   => 7
      }

      COLORS.each_pair do |color, value|
        define_method color do |text|
          Pry.color ? "\033[0;#{30+value}m#{text}\033[0m" : text.to_s
        end

        define_method "bright_#{color}" do |text|
          Pry.color ? "\033[1;#{30+value}m#{text}\033[0m" : text.to_s
        end
      end

      alias_method :grey, :bright_black
      alias_method :gray, :bright_black
      
      def strip_color text
        text.gsub /\e\[.*?(\d)+m/, ''
      end

      def bold text
        Pry.color ? "\e[1m#{text}\e[0m" : text.to_s
      end

      def no_color &block
        boolean = Pry.color
        Pry.color = false
        yield
      ensure
        Pry.color = boolean<commit_msg>Document Pry::Helpers::Color …<commit_after>class Pry
  module Helpers

    # The methods defined on {Color} are available to custom commands.
    module Color
 
      extend self

      COLORS = 
      {
        "black"   => 0,
        "red"     => 1,
        "green"   => 2,
        "yellow"  => 3,
        "blue"    => 4,
        "purple"  => 5,
        "magenta" => 5,
        "cyan"    => 6,
        "white"   => 7
      }

      COLORS.each_pair do |color, value|
        define_method color do |text|
          Pry.color ? "\033[0;#{30+value}m#{text}\033[0m" : text.to_s
        end

        define_method "bright_#{color}" do |text|
          Pry.color ? "\033[1;#{30+value}m#{text}\033[0m" : text.to_s
        end
      end

      alias_method :grey, :bright_black
      alias_method :gray, :bright_black
      

      # Remove any color codes from _text_.
      #
      # @param  [String, #to_s] text
      # @return [String] _text_ stripped of any color codes.
      def strip_color text
        text.to_s.gsub /\e\[.*?(\d)+m/, ''
      end

      # Returns _text_ as bold text for use on a terminal.  
      # _Pry.color_ must be true for this method to perform any transformations.
      #
      # @param [String, #to_s] text
      # @return [String] _text_ 
      def bold text
        Pry.color ? "\e[1m#{text}\e[0m" : text.to_s
      end

      # Executes _block_ with _Pry.color_ set to false.
      #
      # @param [Proc]
      def no_color &block
        boolean = Pry.color
        Pry.color = false
        yield
      ensure
        Pry.color = boolean
{'fraction_non_alphanumeric': 0.12687427912341406, 'fraction_numerical': 0.023836985774702037, 'mean_word_length': 1.578790882061447, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4299021', 'n_tokens_mistral': 950, 'n_tokens_neox': 891, 'n_words': 222}