module Velcro::Flags
Parsing flag options passed in by the CLI
Public Class Methods
included(base)
click to toggle source
# File lib/velcro/concerns/flags.rb, line 4 def self.included(base) base.send(:attr_reader, :includes) end
Public Instance Methods
establish_inclusions(flags, options)
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/velcro/concerns/flags.rb, line 9 def establish_inclusions(flags, options) options = Hash[options.map{|k, v| [k.to_s, v] }] inclusions = Hash[*flags.map { |k| [k, nil] }.flatten].merge(options).dup if inclusions.values.compact.empty? # If no options were specified include all options inclusions.each{|k, _| inclusions[k] = true } elsif inclusions.values.include?(true) # If any options were specified as false, default the rest to true inclusions.each{|k, _| inclusions[k] = false if inclusions[k].nil? } else # If options were specified, but not as false, default the rest to false inclusions.each{|k, _| inclusions[k] = true if inclusions[k].nil? } end @includes = inclusions end
included?(flag)
click to toggle source
rubocop:enable Metrics/AbcSize
# File lib/velcro/concerns/flags.rb, line 28 def included?(flag) includes[flag.to_s] end