class Envo::CmdUnset

Constants

Name

Attributes

names[R]

Public Class Methods

new(names) click to toggle source
# File lib/envo/cmd_unset.rb, line 25
def initialize(names)
  raise Envo::Error.new 'unset: no names provided' if names.empty?
  @names = names
end
parse_cli(args) click to toggle source
# File lib/envo/cmd_unset.rb, line 16
def self.parse_cli(args)
  opts = CliParser.filter_opts(args)
  ParsedCmd.new(CmdUnset.new(args), opts)
end
parse_tokens(tokens, opts) click to toggle source
# File lib/envo/cmd_unset.rb, line 21
def self.parse_tokens(tokens, opts)
  ParsedCmd.new(CmdUnset.new(tokens), opts)
end
register_cli_parser(parser) click to toggle source
# File lib/envo/cmd_unset.rb, line 8
def self.register_cli_parser(parser)
  parser.add_cmd(Name, ->(cmd, args) { parse_cli(args) })
end
register_help(help) click to toggle source
# File lib/envo/cmd_unset.rb, line 4
def self.register_help(help)
  help.add_cmd 'unset <name> ...', "unset values of one or more environment variables"
end
register_script_parser(parser) click to toggle source
# File lib/envo/cmd_unset.rb, line 12
def self.register_script_parser(parser)
  parser.add_cmd(Name, ->(cmd, tokens, opts) { parse_tokens(tokens, opts) })
end

Public Instance Methods

execute(ctx) click to toggle source
# File lib/envo/cmd_unset.rb, line 32
def execute(ctx)
  @names.each do |name|
    ename = ctx.expand_name(name)
    raw_old_val = ctx.raw_get(ename)

    if raw_old_val
      ctx.unset(ename)
    else
      raise Envo::Error.new "unset: no such var '#{ename}'" if !ctx.force?
    end
  end
end