Module: DockerCore::Paser

Defined in:
lib/docker_core.rb

Class Method Summary collapse

Class Method Details

.arguments(*items) ⇒ Object

Parameters:

  • items (Array)


82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/docker_core.rb', line 82

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)


45
46
47
# File 'lib/docker_core.rb', line 45

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

.kebab(text) ⇒ Object

Parameters:

  • text (String)


50
51
52
# File 'lib/docker_core.rb', line 50

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

.options(hash) ⇒ Object

Parameters:

  • hash (Hash)


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/docker_core.rb', line 55

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