module DbSucker::Application::Container::Variation::Helpers

Public Instance Methods

parse_flags(flags) click to toggle source
# File lib/db_sucker/application/container/variation/helpers.rb, line 6
def parse_flags flags
  flags.to_s.split(" ").map(&:strip).reject(&:blank?).each_with_object({}) do |fstr, res|
    if m = fstr.match(/\+(?<key>[^=]+)(?:=(?<value>))?/)
      res[m[:key].strip] = m[:value].nil? ? true : m[:value]
    elsif m = fstr.match(/\-(?<key>[^=]+)/)
      res[m[:key]] = false
    else
      raise InvalidImporterFlagError, "invalid flag `#{fstr}' for variation `#{cfg.name}/#{name}' (in `#{cfg.src}')"
    end
  end
end