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