class Milestoner::CLI::Parsers::Security

Handles parsing of Command Line Interface (CLI) security options.

Attributes

client[R]
configuration[R]

Public Class Methods

call(configuration = Configuration::Loader.call, client: CLIENT) click to toggle source
# File lib/milestoner/cli/parsers/security.rb, line 8
def self.call configuration = Configuration::Loader.call, client: CLIENT
  new(configuration, client: client).call
end
new(configuration = Configuration::Loader.call, client: CLIENT) click to toggle source
# File lib/milestoner/cli/parsers/security.rb, line 12
def initialize configuration = Configuration::Loader.call, client: CLIENT
  @configuration = configuration
  @client = client
end

Public Instance Methods

call(arguments = []) click to toggle source
# File lib/milestoner/cli/parsers/security.rb, line 17
def call arguments = []
  client.separator "\nSECURITY OPTIONS:\n"
  add_sign
  arguments.empty? ? arguments : client.parse!(arguments)
end

Private Instance Methods

add_sign() click to toggle source
# File lib/milestoner/cli/parsers/security.rb, line 27
def add_sign
  client.on(
    "--[no-]sign",
    %(Sign with GPG key. Default: #{configuration.git_tag_sign}.)
  ) do |value|
    compute_git_tag_sign value
  end
end
compute_git_tag_sign(value) click to toggle source
# File lib/milestoner/cli/parsers/security.rb, line 36
def compute_git_tag_sign value
  truth_table = [true, false].repeated_permutation(2).to_a

  case truth_table.index [value, configuration.git_tag_sign]
    when 0..1 then configuration.git_tag_sign = true
    when 2..3 then configuration.git_tag_sign = false
    else fail Error, "--sign must be a boolean. Check gem configuration."
  end
end