module Train::Options::InstanceOptions

Attributes

options[R]

@return [Hash] options, which created this Transport

Public Instance Methods

default_options() click to toggle source
# File lib/train/options.rb, line 51
def default_options
  self.class.default_options
end
merge_options(base, opts) click to toggle source
# File lib/train/options.rb, line 55
def merge_options(base, opts)
  res = base.merge(opts || {})
  default_options.each do |field, hm|
    next unless res[field].nil? and hm.key?(:default)
    default = hm[:default]
    if default.is_a? Proc
      res[field] = default.call(res)
    else
      res[field] = default
    end
  end
  res
end
validate_options(opts) click to toggle source
# File lib/train/options.rb, line 69
def validate_options(opts)
  default_options.each do |field, hm|
    if opts[field].nil? and hm[:required]
      fail Train::ClientError,
           "You must provide a value for #{field.to_s.inspect}."
    end
  end
  opts
end