Sha256: 7d56f6819ebb9a9cdb04f7e0deef94fbf4966bdf51fd110af17b565ab2c44b82

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require_relative 'list'
require_relative 'key_value'

module CommandMapper
  module Types
    #
    # Represents a list of `key=value` pairs.
    #
    class KeyValueList < List

      #
      # Initializes the key-value list.
      #
      # @param [String] separator
      #   The list separator character (ex: `,`).
      #
      # @param [String] key_value_separator
      #   The key-value separator (ex: `=`).
      #
      # @param [Hash{Symbol => Object}] kwargs
      #   Additional keyword arguments for {KeyValue#initialize}.
      #
      def initialize(separator: ',', key_value_separator: '=', **kwargs)
        super(
          type:      KeyValue.new(separator: key_value_separator, **kwargs),
          separator: separator
        )
      end

      #
      # Formats the value.
      #
      # @param [Hash, Array((key, value))] value
      #   The list of key-value pairs to format.
      #
      # @return [String]
      #   The formatted key-value list.
      #
      # @api semipublic
      #
      def format(value)
        super(Array(value).map(&@type.method(:format)))
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
command_mapper-0.3.2 lib/command_mapper/types/key_value_list.rb