Skip to content
  • Stan Lo's avatar
    44c13162
    [ruby/irb] Centralize coloring control (https://github.com/ruby/irb/pull/374) · 44c13162
    Stan Lo authored
    * Use colorable: argument as the only coloring control
    
    * Centalize color controling logic at Color.colorable?
    
    There are 2 requirements for coloring output:
    
    1. It's supported on the platform
    2. The user wants it: `IRB.conf[:USE_COLORIZE] == true`
    
    Right now we check 1 and 2 separately whenever we colorize things.
    But it's error-prone because while 1 is the default of `colorable`
    parameter, 2 always need to manually checked. When 2 is overlooked, it
    causes issues like https://github.com/ruby/irb/pull/362
    
    And there's 0 case where we may want to colorize even when the user
    disables it. So I think we should merge 2 into `Color.colorable?` so it
    can be automatically picked up.
    
    * Add tests for all inspect modes
    
    * Simplify inspectors' coloring logic
    
    * Replace use_colorize? with Color.colorable?
    
    * Remove Context#use_colorize cause it's redundant
    
    https://github.com/ruby/irb/commit/1c53023ac4
    44c13162
    [ruby/irb] Centralize coloring control (https://github.com/ruby/irb/pull/374)
    Stan Lo authored
    * Use colorable: argument as the only coloring control
    
    * Centalize color controling logic at Color.colorable?
    
    There are 2 requirements for coloring output:
    
    1. It's supported on the platform
    2. The user wants it: `IRB.conf[:USE_COLORIZE] == true`
    
    Right now we check 1 and 2 separately whenever we colorize things.
    But it's error-prone because while 1 is the default of `colorable`
    parameter, 2 always need to manually checked. When 2 is overlooked, it
    causes issues like https://github.com/ruby/irb/pull/362
    
    And there's 0 case where we may want to colorize even when the user
    disables it. So I think we should merge 2 into `Color.colorable?` so it
    can be automatically picked up.
    
    * Add tests for all inspect modes
    
    * Simplify inspectors' coloring logic
    
    * Replace use_colorize? with Color.colorable?
    
    * Remove Context#use_colorize cause it's redundant
    
    https://github.com/ruby/irb/commit/1c53023ac4
Loading