Sha256: 1ac27157a477beea533de8a587fd5695cce6e5b628193ea55bbe339a119013bf
Contents?: true
Size: 1.63 KB
Versions: 5
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true module Pastel # A class representing detached color class Detached # Initialize a detached object # # @param [Pastel::Color] color # the color instance # @param [Array[Symbol]] styles # the styles to be applied # # @api private def initialize(color, *styles) @color = color @styles = styles.dup freeze end # Decorate the values corresponding to styles # # @example # Detached(Color.new, :red, :bold).call("hello") # # => "\e[31mhello\e[0m" # # @param [String] value # the stirng to decorate with styles # # @return [String] # # @api public def call(*args) value = args.join @color.decorate(value, *styles) end alias [] call # @api public def to_proc self end # Compare detached objects for equality of attributes # # @return [Boolean] # # @api public def eql?(other) instance_of?(other.class) && styles.eql?(other.styles) end # Compare detached objects for equivalence of attributes # # @return [Boolean] # # @api public def ==(other) other.is_a?(self.class) && styles == other.styles end # Inspect this instance attributes # # @return [String] # # @api public def inspect "#<#{self.class.name} styles=#{styles.inspect}>" end # Hash for this instance and its attributes # # @return [Numeric] # # @api public def hash [self.class, styles].hash end protected # @api private attr_reader :styles end # Detached end # Pastel
Version data entries
5 entries across 5 versions & 2 rubygems