class CLIChef::Ingredient

Public Instance Methods

allowed?(value) click to toggle source
# File lib/cli_chef/components/ingredient.rb, line 33
def allowed?(value)
  return true if allowed_values.empty?
  allowed_values.any? do |av|
    av === value || av.nil? && (value == true || value == false)
  end
end
cleaned_argument(value = nil) click to toggle source
# File lib/cli_chef/components/ingredient.rb, line 21
def cleaned_argument(value = nil)
  allowed!(value)
  return '' if boolean_argument?
  [value].flatten(1).map(&:to_s).map do |arg|
    arg.match?(/\s/) && !arg.encap_by?('"') ? "\"#{arg.gsub('"','\\"')}\"" : arg
  end.join(delimiter)
end
match?(name) click to toggle source
# File lib/cli_chef/components/ingredient.rb, line 29
def match?(name)
  self.name == name || aliases.include?(name)
end
to_s(value = nil) click to toggle source
# File lib/cli_chef/components/ingredient.rb, line 15
def to_s(value = nil)
  return '' if boolean_argument? && value == false
  cleaned_arg = cleaned_argument(value)
  argument == false ? '' : "#{flag}#{flag && !cleaned_arg.empty? ? flag_delimiter : nil}#{cleaned_arg}"
end

Protected Instance Methods

allowed!(value) click to toggle source
# File lib/cli_chef/components/ingredient.rb, line 42
def allowed!(value)
  raise ArgumentError, "#{name} does not accept the value passed to it: #{value} (#{value.class})" unless allowed?(value)
end