class Envo::CmdReset
Constants
- Name
Attributes
helper[RW]
name[RW]
Public Class Methods
new(name, helper)
click to toggle source
# File lib/envo/cmd_reset.rb, line 46 def initialize(name, helper) @name = name @helper = helper end
parse_cli(args)
click to toggle source
# File lib/envo/cmd_reset.rb, line 19 def self.parse_cli(args) opts = CliParser.filter_opts(args) parse_tokens(args, opts) end
parse_script(args)
click to toggle source
# File lib/envo/cmd_reset.rb, line 42 def self.parse_script(args) puts "#{Name} parse_script" end
parse_tokens(args, opts)
click to toggle source
# File lib/envo/cmd_reset.rb, line 24 def self.parse_tokens(args, opts) raise Envo::Error.new "reset: missing name. Use 'reset <name> [= [<val>]]'" if args.empty? || args[0][0] == '=' if args.size == 1 arg = args[0] cnt = arg.count('=') return ParsedCmd.new(CmdReset.new(arg, nil), opts) if cnt == 0 if cnt == 1 && arg[-1] == '=' split = arg.split('=') return ParsedCmd.new(CmdReset.new(split[0], nil), opts) if split.size == 1 end elsif args.size == 2 return ParsedCmd.new(CmdReset.new(args[0], nil), opts) if args[1] == '=' end helper = CmdSet.parse_cli(args).cmd ParsedCmd.new(CmdReset.new(helper.name, helper), opts) end
register_cli_parser(parser)
click to toggle source
# File lib/envo/cmd_reset.rb, line 11 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_reset.rb, line 4 def self.register_help(help) help.add_cmd 'reset <name>[=[<val>]]', <<~EOF set or unset value of an existing environment variable produce an error if the variable doesn't exist EOF end
register_script_parser(parser)
click to toggle source
# File lib/envo/cmd_reset.rb, line 15 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_reset.rb, line 53 def execute(ctx) ename = ctx.expand_name(@name) raise Envo::Error.new "reset: no such var '#{ename}'" if !ctx.raw_get(ename) if !@helper ctx.unset(ename) else @helper.name = @name @helper.execute(ctx) end end