lib/pastel/alias_importer.rb
# frozen_string_literal: true
module Pastel
# A class responsible for importing color aliases
class AliasImporter
# Create alias importer
#
# @example
# importer = Pastel::AliasImporter.new(Pastel::Color.new, {})
#
# @api public
def initialize(color, env, output = $stderr)
@color = color
@env = env
@output = output
end
# Import aliases from the environment
#
# @example
# importer = Pastel::AliasImporter.new(Pastel::Color.new, {})
# importer.import
#
# @return [nil]
#
# @api public
def import
color_aliases = env["PASTEL_COLORS_ALIASES"]
return unless color_aliases
color_aliases.split(",").each do |color_alias|
new_color, old_colors = color_alias.split("=")
if !new_color || !old_colors
output.puts "Bad color mapping `#{color_alias}`"
else
color.alias_color(new_color.to_sym,
*old_colors.split(".").map(&:to_sym))
end
end
end
protected
attr_reader :color, :output, :env
end # AliasImporter
end # Pastel