Sha256: e03062d3d525049580cbfb07801eebfa453b8400976be1b2f45abf8704951de4

Contents?: true

Size: 1.11 KB

Versions: 5

Compression:

Stored size: 1.11 KB

Contents

# 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

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
lotrd-0.1.9 vendor/cache/ruby/2.6.0/gems/pastel-0.8.0/lib/pastel/alias_importer.rb
lotrd-0.1.8 vendor/cache/ruby/2.6.0/gems/pastel-0.8.0/lib/pastel/alias_importer.rb
lotrd-0.1.6 vendor/cache/ruby/2.6.0/gems/pastel-0.8.0/lib/pastel/alias_importer.rb
lotrd-0.1.5 vendor/cache/ruby/2.6.0/gems/pastel-0.8.0/lib/pastel/alias_importer.rb
pastel-0.8.0 lib/pastel/alias_importer.rb