Module: Pcli::Util::Cli

Defined in:
lib/pcli/util/cli.rb

Defined Under Namespace

Classes: FieldsFlagsError

Class Method Summary collapse

Class Method Details

.analyze_fields_flags(all, fields, hash) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pcli/util/cli.rb', line 8

def self.analyze_fields_flags(all, fields, hash)
  result = {}

  is_negative = nil

  fields.each do |field|
    if all
      result[field] = true
      next
    end

    is_negative = hash[field] if is_negative.nil? && !hash[field].nil?

    if !hash[field].nil? && is_negative != hash[field]
      raise FieldsFlagsError, 'Cannot parsed mixed negative and positive flags!'
    end

    result[field] = hash[field].nil? ? !is_negative : hash[field]
  end

  result
end