Module: Bashly::Script::Introspection::Flags

Included in:
Command
Defined in:
lib/bashly/script/introspection/flags.rb

Instance Method Summary collapse

Instance Method Details

#default_flagsObject

Returns an array of all the default Flags



6
7
8
# File 'lib/bashly/script/introspection/flags.rb', line 6

def default_flags
  flags.select(&:default)
end

#fixed_flags?Boolean

Returns true if there is at least one fixed flag (–version / –help) Root command always has –version and subcommands always have –help except when it is consumed by catch_all



22
23
24
# File 'lib/bashly/script/introspection/flags.rb', line 22

def fixed_flags?
  root_command? || !catch_all.catch_help?
end

#flagsObject

Returns an array of Flags



11
12
13
14
15
16
17
# File 'lib/bashly/script/introspection/flags.rb', line 11

def flags
  return [] unless options['flags']

  options['flags'].map do |options|
    Flag.new options
  end
end

#global_flags?Boolean

Returns true if this command’s flags should be considered as gloal flags, and cascade to subcommands



28
29
30
# File 'lib/bashly/script/introspection/flags.rb', line 28

def global_flags?
  flags.any? and commands.any?
end

#needy_flagsObject

Returns an array of all fpags that need other flags



33
34
35
# File 'lib/bashly/script/introspection/flags.rb', line 33

def needy_flags
  flags.select(&:needs)
end

#public_flagsObject

Returns only flags that are not private



38
39
40
# File 'lib/bashly/script/introspection/flags.rb', line 38

def public_flags
  flags.reject(&:private)
end

#required_flagsObject

Returns an array of all the required Flags



43
44
45
# File 'lib/bashly/script/introspection/flags.rb', line 43

def required_flags
  flags.select(&:required)
end

#short_flag_exist?(flag) ⇒ Boolean

Returns true if one of the flags matches the provided short code



48
49
50
# File 'lib/bashly/script/introspection/flags.rb', line 48

def short_flag_exist?(flag)
  flags.any? { |f| f.short == flag }
end

#visible_flagsObject

Returns only public flags, or both public and private flags if Settings.private_reveal_key is set



54
55
56
# File 'lib/bashly/script/introspection/flags.rb', line 54

def visible_flags
  Settings.private_reveal_key ? flags : public_flags
end

#whitelisted_flagsObject

Returns an array of all the flags with a whitelist arg



59
60
61
# File 'lib/bashly/script/introspection/flags.rb', line 59

def whitelisted_flags
  flags.select(&:allowed)
end