Module: DockerCore::Paser

Defined in:
lib/docker_core.rb

Class Method Summary collapse

Class Method Details

.arguments(*items) ⇒ Object

Parameters:

  • items (Array)


301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'lib/docker_core.rb', line 301

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) ⇒ Object

Parameters:

  • text (String)


264
265
266
# File 'lib/docker_core.rb', line 264

def self.boolean(text)
  return %w[true yes on].include?("#{text}".strip.downcase)
end

.kebab(text) ⇒ Object

Parameters:

  • text (String)


269
270
271
# File 'lib/docker_core.rb', line 269

def self.kebab(text)
  return "#{text}".gsub(/_/, '-')
end

.options(hash) ⇒ Object

Parameters:

  • hash (Hash)


274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/docker_core.rb', line 274

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