module DockerCore::Paser

Public Class Methods

arguments(*items) click to toggle source

@param [Array] items

# File lib/docker_core.rb, line 300
def self.arguments(*items)
  list = []

  items.each do |item|
    if item.is_a?(Array)
      list.concat(item.map { |value| "#{value}" })
      next
    end

    if item.is_a?(Hash)
      list.concat(self.options(item))
      next
    end

    list << "#{item}"
    next
  end

  return list
end
boolean(text) click to toggle source

@param [String] text

# File lib/docker_core.rb, line 263
def self.boolean(text)
  return %w[true yes on].include?("#{text}".strip.downcase)
end
kebab(text) click to toggle source

@param [String] text

# File lib/docker_core.rb, line 268
def self.kebab(text)
  return "#{text}".gsub(/_/, '-')
end
options(hash) click to toggle source

@param [Hash] hash

# File lib/docker_core.rb, line 273
def self.options(hash)
  items = []

  if hash.is_a?(Hash)
    hash.each do |key, value|
      short = 1 == key.length
      prefix = short ? '-' : '--'
      separator = short ? ' ' : '='
      name = prefix + self.kebab(key)

      if true == value
        items << name
        next
      end

      [value].flatten.each do |item|
        item = "#{item}".gsub(/\\/, '\&\&').gsub('"', '\"')
        items << %(#{name}#{separator}"#{item}")
      end
      next
    end
  end

  return items
end