class Rum::Docker::Options

Collection of Docker command options to be applied on execution.

Public Class Methods

new(options = {}, &block) click to toggle source

Initialize a new OPTIONS collection for Docker executable. Evaluates the &block if given.

# File lib/rumrunner/docker.rb, line 113
def initialize(options = {}, &block)
  @data = Hash.new{|hash, key| hash[key] = [] }.update(options)
  instance_eval(&block) if block_given?
end

Public Instance Methods

each() { |option| ... } click to toggle source

Yield each option as a CLI flag/option, with - or -- prefix.

Example:

opts = Options.new
opts.fizz "buzz"
opts.to_a
# => ["--fizz", "buzz"]
# File lib/rumrunner/docker.rb, line 141
def each
  @data.each do |name, values|
    option = flagify name
    values.each do |value|
      if value.is_a?(Hash)
        value.map{|kv| kv.join("=") }.each do |val|
          yield option
          yield val
        end
      elsif [true, false].include? value
        yield "#{option}=#{value}"
      else
        yield option
        yield value.to_s
      end
    end
  end
end
method_missing(m, *args, &block) click to toggle source

Missing methods are interpreted as options to be added to the underlying collection.

Example:

opts = Options.new
opts.fizz "buzz"
# => @data={:fizz=>["buzz"]}
# File lib/rumrunner/docker.rb, line 127
def method_missing(m, *args, &block)
  @data[m] += args unless args.empty?
  self
end
to_s() click to toggle source

Convert options to string.

Example:

opts = Options.new
opts.fizz "buzz"
opts.to_s
# => "--fizz buzz"
# File lib/rumrunner/docker.rb, line 169
def to_s
  to_a.join(" ")
end

Private Instance Methods

flagify(name) click to toggle source

Convert OPTION to --option

# File lib/rumrunner/docker.rb, line 177
def flagify(name)
  name.length == 1 ? "-#{name}" : "--#{name.to_s.gsub(/_/, "-")}"
end